
CREATE TABLE `jugadores` ( `id` INT( 32 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `nick` TINYTEXT NOT NULL , `contra` TINYTEXT NOT NULL , `correo` TINYTEXT NOT NULL ) ENGINE = MYISAM
<form method="post" action="registrar.php"> Usuario:<br /> <input type="text" name="r_user" /><br /> Contraseсa:<br /> <input type="password" name="r_pass" /><br /> Confirmar contraseсa:<br /> <input type="password" name="r_pass_c" /><br /> Correo:<br /> <input type="text" name="r_mail" /><br /> <br /> <input type="submit" value="Registrarse" /> </form>
<?php
// Primero, transformamos los datos recibidos en entidades html para evitar inyecciones sql
$r_user = htmlentities($_POST['r_user'], ENT_QUOTES);
$r_pass = htmlentities($_POST['r_pass'], ENT_QUOTES);
$r_pass_c = htmlentities($_POST['r_pass_c'], ENT_QUOTES);
$r_mail = htmlentities($_POST['r_mail'], ENT_QUOTES);
// Comprobamos que se haya escrito un nombre de usuario
if($r_user != "") {
// Ahora comprobamos lo mismo para el mail
if($r_mail != "") {
// Para la contraseсa... {
if($r_pass != "") {
// Bien, ahora comprobaremos que las 2 contraseсas escritas sean iguales:
if($r_pass === $r_pass_c) {
/* Todo comprobado. Aquн irб el cуdigo de ejecuciуn.
Pero antes, cerraremos los ifs con el mensaje de error */
} else {
echo 'Las contraseсas ingresadas no coinciden.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
} else {
echo 'Debes ingresar una contraseсa.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
} else {
echo 'Debes ingresar una direcciуn de correo electrуnico.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
} else {
echo 'Debes ingresar un nombre de usuario.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
?>
<?php
// Primero, transformamos los datos recibidos en entidades html para evitar inyecciones sql
$r_user = htmlentities($_POST['r_user'], ENT_QUOTES);
$r_pass = htmlentities($_POST['r_pass'], ENT_QUOTES);
$r_pass_c = htmlentities($_POST['r_pass_c'], ENT_QUOTES);
$r_mail = htmlentities($_POST['r_mail'], ENT_QUOTES);
// Comprobamos que se haya escrito un nombre de usuario
if($r_user != "") {
// Ahora comprobamos lo mismo para el mail
if($r_mail != "") {
// Para la contraseсa... {
if($r_pass != "") {
// Bien, ahora comprobaremos que las 2 contraseсas escritas sean iguales:
if($r_pass === $r_pass_c) {
// Todo comprobado.
// Ejecutamos la sentencia
mysql_query("INSERT INTO jugadores(nick, contra, correo) VALUES('{$r_user}','{$r_pass}','{$r_mail}')");
// Ahora mostramos la confirmaciуn:
echo 'Te has registrado con йxito. Ahora puedes iniciar sesiуn con tu usuario y contraseсa';
} else {
echo 'Las contraseсas ingresadas no coinciden.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
} else {
echo 'Debes ingresar una contraseсa.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
} else {
echo 'Debes ingresar una direcciуn de correo electrуnico.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
} else {
echo 'Debes ingresar un nombre de usuario.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
?>
<form method="post" action="login.php"> Usuario:<br /> <input type="text" name="l_user" /><br /> Contraseсa:<br /> <input type="password" name="l_pass" /><br /> <br /> <input type="submit" value="Iniciar sesiуn" /> </form>
<?php
// Primero, transformamos los datos recibidos en entidades html para evitar inyecciones sql
$l_user = htmlentities($_POST['l_user'], ENT_QUOTES);
$l_pass = htmlentities($_POST['l_pass'], ENT_QUOTES);
// Ahora creamos una sentencia sql en busca del usuario ingresado:
$select = mysql_query("SELECT * FROM jugadores WHERE nick='{$l_user}'");
// Ahora comprobamos que el usuario exista.
if(mysql_num_rows($select) != 0) {
// Bien, ahora que sabemos que existe, creamos un bucle para obtener los datos...
while($row = mysql_fetch_array($select)) {
/* Ahora con los datos obtenidos, comprobamos que la contraseсa sea correcta. */
if($l_pass) {
// En caso de que estй correcto, establecemos la sesiуn como iniciada. Para ello, usamos cookies.
setcookie('session', md5($row['user'] . $row['pass']), time()+3600);
// Tambiйn creamos una cookie con la id del usuario...
setcookie('session_id', $row['id'], time()+3600);
// El contenido de la cookie es usuario+contraseсa encriptados, y durarб una hora.
// Ahora cerramos los ifs, con sus respectivos mensajes opuestos.
} else {
echo 'Usuario encontrado, pero la contraseсa es incorrecta.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
// La siguiente llave cierra el bucle while, no necesita else.
}
} else {
echo 'El usuario no existe.<br /><a href="history.back();return false;"<< Atrбs</a>';
}
?>
<?php
// Comprobamos que haya alguna sesiуn iniciada.
if($_COOKIE['session']) {
// Ahora sobreescribimos las cookies.
setcookie('session', 'dada', time()-3600);
setcookie('session_id', 'dada', time()-3600);
// Mensaje de confirmaciуn.
echo 'Sesiуn cerrada exitosamente.';
}?>
<?php
function isonline() {
// Comprobamos que existan las cookies..
if($_COOKIE['session'] && $_COOKIE['session_id']) {
// Transformamos las cookies en entidades html para evitar inyecciones sql
$session = htmlentities($_COOKIE['session'], ENT_QUOTES);
$session_id = htmlentities($_COOKIE['session_id'], ENT_QUOTES);
// Armamos con la id guardada la sentencia sql para buscar el usuario.
$find = mysql_query("SELECT * FROM jugadores WHERE id='{$session_id}'");
// Comprobamos que el usuario exista.
if($mysql_num_rows($find) != 0) {
// Armamos el bucle para obtener la informaciуn del usuario..
while($row = mysql_fetch_array($find)) {
// Comprobamos que la cookie 'session' coincida con los datos guardados..
if(md5($row['user'] . $row['pass']) == $_COOKIE['session']) {
// Devolvemos true.
return 1;
}
}
}
}
}
?>
<?php
if(isonline()) {
?>
<?php } ?>
|
Originally Posted by the_chaoz
alto tutorial, muy util, por lo menos para mi
|
los Dialogs.. Todavнa no los estudio a fondo
pero si entenderia un poco mas el php y como usarlo seria genial para aprender a aserlo