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
|