En esta oportunidad les voy a dejar un tutorial básico para desarrollar un sistema de registro usuarios con PHP y MySQL (phpMyAdmin),.
(antes debes tomar en cuenta que ) Es recomendable trabajar con una DB de tipo InnoDB por que ofrece una fiabilidad y consistencia muy superior a MyISAM. tablas relacionales muy grandes debes aplicar: InnoDB.
Para empezar, crearemos nuestra base de datos :('userdatasql') y la tabla de ('usuarios') con los siguientes campos:
CREATE TABLE IF NOT EXISTS usuarios (
usuario_id int(5) NOT NULL AUTO_INCREMENT,
usuario_nombre varchar(15) NOT NULL DEFAULT '',
usuario_clave varchar(32) NOT NULL DEFAULT '',
usuario_email varchar(50) NOT NULL DEFAULT '',
usuario_freg datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (usuario_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Como podrán notar, el campo usuario_clave tiene una longitud de 32 caracteres, ya que la contraseña de los usuarios registrados las encriptaremos en md5(). Ahora pasamos a crear nuestro scripts PHP.
Creación de archivo de configuración de acceso a MySQL:
A este archivo lo llamaremos acceso_db.php y va a contener los datos de acceso a nuestra Base de Datos.
<?php
$host_db ="localhost"; //nombre de la bd
$usuario_db =" ";// usuario dela BD
$clave_db =" "; // clave de user DB
$nombre_db =" "; //nombre la BD
//CONECTAMOS Y SELECCIONAMOS LA BD:
mysql_connect($host_db, $usuario_db, $clave_db) or exit('Datos de conexion incorrectos.');
mysql_select_db($nombre_db) or exit('no se encontro la BD.');
echo 'se conecto correctamente con la BD';
?>
Formulario de Registro:
Ahora procederemos a crear nuestro formulario de registro, al cual llamaremos registro.php
<?php
include('acceso_db.php'); // incluimos el archivo de conexión a la Base de Datos
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos desde el formulario
// creamos una función que nos parmita validar el email
function valida_email($correo) {
if (preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/', $correo)) return true;
else return false;
}
// Procedemos a comprobar que los campos del formulario no estén vacíos
$sin_espacios = count_chars($_POST['usuario_nombre'], 1);
if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco
echo "El campo <em>usuario_nombre</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_nombre'])) { // comprobamos que el campo usuario_nombre no esté vacío
echo "No haz ingresado tu usuario. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_clave'])) { // comprobamos que el campo usuario_clave no esté vacío
echo "No haz ingresado contraseña. <a href='javascript:history.back();'>Reintentar</a>";
}elseif($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) { // comprobamos que las contraseñas ingresadas coincidan
echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(!valida_email($_POST['usuario_email'])) { // validamos que el email ingresado sea correcto
echo "El email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
}else {
// "limpiamos" los campos del formulario de posibles códigos maliciosos
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
$usuario_email = mysql_real_escape_string($_POST['usuario_email']);
// comprobamos que el usuario ingresado no haya sido registrado antes
$sql = mysql_query("SELECT usuario_nombre FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'");
if(mysql_num_rows($sql) > 0) {
echo "El nombre usuario elegido ya ha sido registrado anteriormente. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_clave = md5($usuario_clave); // encriptamos la contraseña ingresada con md5
// ingresamos los datos a la BD
$reg = mysql_query("INSERT INTO usuarios (usuario_nombre, usuario_clave, usuario_email, usuario_freg) VALUES ('".$usuario_nombre."', '".$usuario_clave."', '".$usuario_email."', NOW())");
if($reg) {
echo "Datos ingresados correctamente.";
}else {
echo "ha ocurrido un error y no se registraron los datos.";
}
}
}
}else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" maxlength="15" /><br />
<label>Contraseña:</label><br />
<input type="password" name="usuario_clave" maxlength="15" /><br />
<label>Confirmar Contraseña:</label><br />
<input type="password" name="usuario_clave_conf" maxlength="15" /><br />
<label>Email:</label><br />
<input type="text" name="usuario_email" maxlength="50" /><br />
<input type="submit" name="enviar" value="Registrar" />
<input type="reset" value="Borrar" />
</form>
<?php
}
?>
Formulario de acceso:
Ahora pasaremos a crear nuestro formulario de acceso o Login, a este archivo lo llamaremos acceso.php
<?php
session_start();
include('acceso_db.php');
if(empty($_SESSION['usuario_nombre'])) { // comprobamos que las variables de sesión estén vacías
?>
<form action="comprobar.php" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" /><br />
<label>Contraseña:</label><br />
<input type="password" name="usuario_clave" /><br />
<input type="submit" name="enviar" value="Ingresar" />
</form>
<?php
}else {
?>
<p>Hola <strong><?=$_SESSION['usuario_nombre']?></strong> | <a href="logout.php">Salir</a></p>
<?php
}
?>
Este es el archivo que comprueba los datos ingresados en el formulario de login, lo llamaremos comprobar.php
<?php
session_start();
include('acceso_db.php');
if(isset($_POST['enviar'])) { // comprobamos que se hayan enviado los datos del formulario
// comprobamos que los campos usuarios_nombre y usuario_clave no estén vacíos
if(empty($_POST['usuario_nombre']) || empty($_POST['usuario_clave'])) {
echo "El usuario o la contraseña no han sido ingresados. <a href='javascript:history.back();'>Reintentar</a>";
}else {
// "limpiamos" los campos del formulario de posibles códigos maliciosos
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
$usuario_clave = md5($usuario_clave);
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD
$sql = mysql_query("SELECT usuario_id, usuario_nombre, usuario_clave FROM usuarios WHERE usuario_nombre='".$usuario_nombre."' AND usuario_clave='".$usuario_clave."'");
if($row = mysql_fetch_array($sql)) {
$_SESSION['usuario_id'] = $row['usuario_id']; // creamos la sesion "usuario_id" y le asignamos como valor el campo usuario_id
$_SESSION['usuario_nombre'] = $row["usuario_nombre"]; // creamos la sesion "usuario_nombre" y le asignamos como valor el campo usuario_nombre
header("Location: acceso.php");
}else {
?>
Error, <a href="acceso.php">Reintentar</a>
<?php
}
}
}else {
header("Location: acceso.php");
}
?>
Cerrando la sesión del usuario:
Con este pequeño script cerramos la sesión del usuario, a este archivo lo llamamos logout.php
<?php
session_start();
include('acceso_db.php'); // incluímos los datos de acceso a la BD
// comprobamos que se haya iniciado la sesión
if(isset($_SESSION['usuario_nombre'])) {
session_destroy();
header("Location: index.php");
}else {
echo "Operación incorrecta.";
}
?>
Página Personal de Usuarios:
Ahora pasaremos a crear una página personal para cada usuario registrado en el sistema, para ello, mostraremos el perfil de usuario, según su ID. Creamos un archivo llamado perfil.php
<?php
session_start();
include('acceso_db.php');
$perfil = mysql_query("SELECT * FROM usuarios WHERE usuario_id='".$_GET['id']."'") or die(mysql_error());
if(mysql_num_rows($perfil)) { // Comprobamos que exista el registro con la ID ingresada
$row = mysql_fetch_array($perfil);
$id = $row["usuario_id"];
$nick = $row["usuario_nombre"];
$email = $row["usuario_email"];
$freg = $row["usuario_freg"];
?>
<strong>Nick:</strong> <?=$nick?><br />
<strong>Email:</strong> <?=$email?><br />
<strong>Registrado el:</strong> <?=$freg?><br />
<strong>URL del perfil:</strong> <a href="perfil.php?id=<?=$id?>">Click aquí</a>
<?php
}else {
?>
<p>El perfil seleccionado no existe o ha sido eliminado.</p>
<?php
}
?>
Páginas restringidas:
Como en toda web con sistema de usuarios, siempre habrán zonas restringidas a las que sólo podrán acceder usuarios registrados, entonces para ello partimos del siguiente código:
<?php
session_start();
include('acceso_db.php'); // incluímos los datos de acceso a la BD
// comprobamos que se haya iniciado la sesión
if(isset($_SESSION['usuario_nombre'])) {
?>
<!-- Aquí ponemos todo el código HTML de nuestra página restringida, desde <html> a </html>-->
<?php
}else {
echo "Estás accediendo a una página restringida, para ver su contenido debes estar registrado.<br />
<a href='acceso.php'>Ingresar</a> / <a href='registro.php'>Regitrarme</a>";
}
?>
Recuperación de la contraseña:
Si el usuario ha olvidado su contraseña, habrá que facilitársela, para ello generaremos una nueva contraseña de forma aleatoria y se la enviaremos a su correo, a este archivo lo llamaremos recuperar_contrasena.php
<?php
include('acceso_db.php'); // incluímos los datos de acceso a la BD
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario
if(empty($_POST['usuario_nombre'])) {
echo "No ha ingresado el usuario. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_nombre = trim($usuario_nombre);
$sql = mysql_query("SELECT usuario_nombre, usuario_clave, usuario_email FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'");
if(mysql_num_rows($sql)) {
$row = mysql_fetch_assoc($sql);
$num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña
$nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
$usuario_nombre = $row['usuario_nombre'];
$usuario_clave = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario
$usuario_clave2 = md5($usuario_clave); // encriptamos la nueva contraseña para guardarla en la BD
$usuario_email = $row['usuario_email'];
// actualizamos los datos (contraseña) del usuario que solicitó su contraseña
mysql_query("UPDATE usuarios SET usuario_clave='".$usuario_clave2."' WHERE usuario_nombre='".$usuario_nombre."'");
// Enviamos por email la nueva contraseña
$remite_nombre = ""; // Tu nombre o el de tu página
$remite_email = ""; // tu correo
$asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar)
$mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$usuario_nombre."</strong>. La nueva contraseña es: <strong>".$usuario_clave."</strong>.";
$cabeceras = "From: ".$remite_nombre." <".$remite_email.">\r\n";
$cabeceras = $cabeceras."Mime-Version: 1.0\n";
$cabeceras = $cabeceras."Content-Type: text/html";
$enviar_email = mail($usuario_email,$asunto,$mensaje,$cabeceras);
if($enviar_email) {
echo "La nueva contraseña ha sido enviada al email asociado al usuario ".$usuario_nombre.".";
}else {
echo "No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
}
}else {
echo "El usuario <strong>".$usuario_nombre."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
}
}
}else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>
<?php
}
?>
Cambiando la contraseña:
Con este script, los usuarios podrán cambiar su contraseña, a este archivo lo llamaremos cambiar_contrasena.php
<?php
session_start();
include('acceso_db.php'); // incluímos los datos de conexión a la BD
if(isset($_SESSION['usuario_nombre'])) { // comprobamos que la sesión esté iniciada
if(isset($_POST['enviar'])) {
if($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) {
echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_nombre = $_SESSION['usuario_nombre'];
$usuario_clave = mysql_real_escape_string($_POST["usuario_clave"]);
$usuario_clave = md5($usuario_clave); // encriptamos la nueva contraseña con md5
$sql = mysql_query("UPDATE usuarios SET usuario_clave='".$usuario_clave."' WHERE usuario_nombre='".$usuario_nombre."'");
if($sql) {
echo "Contraseña cambiada correctamente.";
}else {
echo "Error: No se pudo cambiar la contraseña. <a href='javascript:history.back();'>Reintentar</a>";
}
}
}else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Nueva contraseña:</label><br />
<input type="password" name="usuario_clave" maxlength="15" /><br />
<label>Confirmar:</label><br />
<input type="password" name="usuario_clave_conf" maxlength="15" /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>
<?php
}
}else {
echo "Acceso denegado.";
}
?>
Agregando mensaje de bienvenida con enlace hacia el perfil personal y un enlace para cerrar sesión, en cualquier página:
Ahora lo que haremos será agregar un mensaje de bienvenida al usuario logueado, además de un enlace para que éste mismo cierre su sesión:
Al inicio de todo el documento HTML de nuestras páginas agregamos lo siguiente:
<?php
session_start();
include('acceso_db.php');
?>
Y en cualquier zona de nuestras páginas insertamos el siguiente código:
<?php
if(isset($_SESSION['usuario_nombre'])) {
?>
Bienvenido: <a href="perfil.php?id=<?=$_SESSION['usuario_id']?>"><strong><?=$_SESSION['usuario_nombre']?></strong></a><br />
<a href="logout.php">Cerrar Sesión</a>
<?php
}
?>
domingo, 4 de mayo de 2014
miércoles, 26 de junio de 2013
inició de sesión con un perfil temporal en Windows 7 solución
Opción (1):

El otro día me encontré que un usuario arrancaba su ordenador con su perfil de dominio y le aparecía el error de perfil temporal. El entorno es el siguiente un SBS 2003 R2 y cliente Windows 7 Pro 64 bits. Para poderlo solucionar hice lo siguiente:
El error:

1- Abrimos una sesión como administrador local en el pc.
2- Vamos a INICIO y escribimos "regedit".
3- Buscamos la siguiente ruta:
HKey_Local_Machine\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
4- Una vez en la ruta veremos que en uno de los valores aparece el perfil con el error. Lo marcamos y realizamos una exportación de esta clave.
2- Vamos a INICIO y escribimos "regedit".
3- Buscamos la siguiente ruta:
HKey_Local_Machine\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
4- Una vez en la ruta veremos que en uno de los valores aparece el perfil con el error. Lo marcamos y realizamos una exportación de esta clave.
5- Ahora eliminamos la clave del perfil y reiniciamos el pc.
6- Ahora ya no tendríamos que tener el problema del perfil temporal.
6- Ahora ya no tendríamos que tener el problema del perfil temporal.
Opción (1):
sigan este paso:
http://blog.aisha.es/2011/03/como-solucionar-error-de-inicio-de.html
jueves, 13 de junio de 2013
Configurar Outlook 2010 con una Gmail
Configurar el correo electrónico en Outlook 2010 o Outlook 2013
Si desea configurar Outlook 2010 o Outlook 2013 para obtener
acceso a su cuenta, escriba la dirección de correo electrónico y la contraseña.
Outlook usa un proceso denominado Detección automática para buscar
automáticamente los valores de configuración correspondientes y configurar la
conexión de Exchange con la cuenta.
Si es un usuario de Office 365, deberá configurar el escritorio
para poder configurar Outlook para obtener acceso a su cuenta. Para más
información, vea Configurar
su escritorio para Office 365.
Nota Puede
que sea capaz de configurar Outlook 2010 o Outlook 2013 manualmente para
obtener acceso a su cuenta de correo electrónico mediante POP o IMAP. Sin
embargo, se recomienda el uso del proceso de detección automática para
configurar una conexión de Exchange a su cuenta. Si usa POP o IMAP, no podrá
disfrutar del calendario ni de otras características de colaboración que sí se
encontrarán disponibles si decide conectar a la cuenta a través de Exchange.
Para obtener más información, vea Más
información de utilidad más adelante en este artículo.
Cuál es el servidor de correo entrante (POP3) y saliente (SMTP) ?
Para que puedas configurar tu cliente de correo electrónico,
ponemos a tu disposición los datos del servidor entrante (POP3) y saliente
(SMTP). Si requieres instrucciones para configurar tu cliente de correo
electrónico, da click aquí.
Google Apps.- En caso de
que tu cuenta de correo esté en google apps:
Servidor de entrada (POP3): pop.gmail.com
Puerto: 995, Activar SSL
Puerto: 995, Activar SSL
Servidor de salida (SMTP): smtp.gmail.com
Puerto: 465, Activar SSL o bien Puerto: 587, Activar TLS/STARTTLS
Activar autenticación
Puerto: 465, Activar SSL o bien Puerto: 587, Activar TLS/STARTTLS
Activar autenticación
Nombre de la cuenta: tu cuenta de correo completa
Dirección de correo: la dirección de correo completa
Contraseña: la asignada a tu cuenta
Dirección de correo: la dirección de correo completa
Contraseña: la asignada a tu cuenta
Mayor información
http://mail.google.com/support/a/google.com/bin/answer.py?answer=33384
http://mail.google.com/support/a/google.com/bin/answer.py?answer=33384
Servidor Angeleon/Linuxreal
En caso de que tu servicio de correo se encuentre alojado en el mismo servidor, los datos son los siguientes:
En caso de que tu servicio de correo se encuentre alojado en el mismo servidor, los datos son los siguientes:
Servidor de entrada (POP3): mail.angeleon.net
Puerto: 110
Puerto: 110
Servidor de salida (SMTP): mail.angeleon.net
Puerto: 26
Activar autenticación
Puerto: 26
Activar autenticación
Webmail
En ambos casos, la dirección de acceso al webmail es de la siguiente forma:
En ambos casos, la dirección de acceso al webmail es de la siguiente forma:
Cuáles son los servidores de nombres (DNS) ?
En caso de que cuentes con tu nombre de dominio y desees
configurarlo para utilizar nuestros servidores de nombres, ponemos a tu
disposición las direcciones que tienes que utilizar:
- DNS 1: ns1.angeleon.net [174.37.144.176]
- DNS 2: ns2.angeleon.net [148.243.70.3]
Cuál es la dirección del servidor FTP ?
La dirección siempre corresponde con el nombre de dominio de tu
sitio, por ejemplo, si el dominio es angeleon.net, el servidor ftp es angeleon.net.
Sin embargo, en caso de que dicha dirección no sea accesible por alguna razón,
siempre se puede utilizar la siguiente:
Dirección:ftp.angeleon.net
Puerto: 21
********************************************Puerto: 21
Dicho esto aca les dejo un video
*********************************************
Suscribirse a:
Entradas (Atom)
