![lloron](http://static.forosdelweb.com/fdwtheme/images/smilies/chillando.png)
Gracias! anticipadasss
Saludos!
| |||
envia el pass encriptado al usuario :S podrian ayudarme... soy principante en programacion y pues tengo un problema... veran pues el sistema envia el mail te envia el usuario y el pass, pero el pass te lo envia encriptado... cosa q el usuario no lo entendera... como hago para que le llegue el pass normal... sin estos caracteres por ejemplo d4gsd4gsd54g por favor ayudenn!! ![]() Gracias! anticipadasss Saludos! |
| |||
Respuesta: envia el pass encriptado al usuario :S aca posteo el script... aca la tabla login.sql CREATE TABLE `login` ( `loginid` int(10) unsigned NOT NULL auto_increment, `username` varchar(30) NOT NULL, `password` varchar(50) NOT NULL, `email` varchar(255) NOT NULL, `actcode` varchar(45) NOT NULL, `disabled` tinyint(1) NOT NULL default '0', `activated` tinyint(1) NOT NULL default '0', PRIMARY KEY (`loginid`) ); activate.php Cita: <?php require_once "header.php"; $uid = (int)htmlentities(strip_tags($_GET['uid'])); $actcode = htmlentities(strip_tags($_GET['actcode'])); if (activateUser($uid, $actcode) == true) { echo "Thank you for activating your account, You can now login. <a href='./index.php'>Click here to login.</a>"; } else { echo "Activation failed! Please try again."; echo "If problem presists please contact the webmaster."; } require_once "footer.php"; ?> changepassword.php <?php require_once "header.php"; if (isLoggedIn() == true) { if (isset($_POST['change'])) { if (changePassword($_POST['username'], $_POST['oldpassword'], $_POST['password'], $_POST['password2'])) { echo "Your password has been changed ! <br /> <a href='./index.php'>Return to homepage</a>"; } else { echo "Password change failed! Please try again."; show_changepassword_form(); } } else { show_changepassword_form(); } } else { // user is not loggedin show_loginform(); } require_once "footer.php"; ?> db_connect.inc.php <?php // Database settings // database hostname or IP. default:localhost // localhost will be correct for 99% of times define("HOST", "localhost"); // Database user define("DBUSER", "user"); // Database password define("PASS", "pass"); // Database name define("DB", "basedatos"); ############## Make the mysql connection ########### $conn = mysql_connect(HOST, DBUSER, PASS) or die('Could not connect !<br />Please contact the site\'s administrator.'); $db = mysql_select_db(DB) or die('Could not connect to database !<br />Please contact the site\'s administrator.'); ?> display.functions.inc.php <?php #### Display Functions #### function show_userbox() { // retrieve the session information $u = $_SESSION['username']; $uid = $_SESSION['loginid']; // display the user box echo "<div id='userbox'> Welcome $u <ul> <li><a href='./changepassword.php'>Change Password</a></li> <li><a href='./logout.php'>Logout</a></li> </ul> </div>"; } function show_changepassword_form(){ echo '<form action="./changepassword.php" method="post"> <fieldset> <legend>Change Password</legend> <input type="hidden" value="'.$_SESSION['username'].'" name="username"> <dl> <dt> <label for="oldpassword">Current Password:</label> </dt> <dd> <input name="oldpassword" type="password" id="oldpassword" maxlength="15"> </dd> </dl> <dl> <dt> <label for="password">New Password:</label> </dt> <dd> <input name="password" type="password" id="password" maxlength="15"> </dd> </dl> <dl> <dt> <label for="password2">Re-type new password:</label> </dt> <dd> <input name="password2" type="password" id="password2" maxlength="15"> </dd> </dl> <p> <input name="reset" type="reset" value="Reset"> <input name="change" type="submit" value="Reset Password"> </p> </fieldset> </form> '; } function show_loginform($disabled = false) { echo '<form name="login-form" id="login-form" method="post" action="./index.php"> <fieldset> <legend>Please login</legend> <dl> <dt><label title="Username">Username: </label></dt> <dd><input tabindex="1" accesskey="u" name="username" type="text" maxlength="30" id="username" /></dd> </dl> <dl> <dt><label title="Password">Password: </label></dt> <dd><input tabindex="2" accesskey="p" name="password" type="password" maxlength="15" id="password" /></dd> </dl> <ul> <li><a href="./register.php" title="Register">Register</a></li> <li><a href="./lostpassword.php" title="Lost Password">Lost password?</a></li> </ul> <p><input tabindex="3" accesskey="l" type="submit" name="cmdlogin" value="Login" '; if ($disabled == true) { echo 'disabled="disabled"'; } echo ' /></p></fieldset></form>'; } function show_lostpassword_form(){ echo '<form action="./lostpassword.php" method="post"> <fieldset><legend>Reset Password</legend> <dl> <dt><label for="username">Username:</label></dt> <dd><input name="username" type="text" id="username" maxlength="30"> </dd> </dl> <dl> <dt><label for="email">email:</label></dt> <dd><input name="email" type="text" id="email" maxlength="255"> </dd> </dl> <p> <input name="reset" type="reset" value="Reset"> <input name="lostpass" type="submit" value="Reset Password"> </p> </fieldset> </form>'; } function show_registration_form(){ echo '<form action="./register.php" method="post"> <fieldset><legend>Register</legend> <dl> <dt><label for="username">Username:</label></dt> <dd><input name="username" type="text" id="username" maxlength="30"> </dd> </dl> <dl> <dt><label for="password">Password:</label></dt> <dd><input name="password" type="password" id="password" maxlength="15"> </dd> </dl> <dl> <dt><label for="password2">Re-type password:</label></dt> <dd><input name="password2" type="password" id="password2" maxlength="15"> </dd> </dl> <dl> <dt><label for="email">email:</label></dt> <dd><input name="email" type="text" id="email" maxlength="255"> </dd> </dl> <p> <input name="reset" type="reset" value="Reset"> <input name="register" type="submit" value="Register"> </p> </fieldset> </form>'; } ?> footer.php <hr> <div id='footer'>Copyright 2007-2008 © <?php echo $domain; ?></div> </body> </html> functions.inc.php <?php require_once("mail.functions.inc.php"); require_once("user.functions.inc.php"); require_once("display.functions.inc.php"); require_once("login.functions.inc.php"); require_once("validation.functions.inc.php"); function generate_code($length = 10) { if ($length <= 0) { return false; } $code = ""; $chars = "abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXY Z123456789"; srand((double)microtime() * 1000000); for ($i = 0; $i < $length; $i++) { $code = $code . substr($chars, rand() % strlen($chars), 1); } return $code; } ?> header.php <?php error_reporting(0); // we don't want to see errors on screen // Start a session session_start(); require_once ('db_connect.inc.php'); // include the database connection require_once ("functions.inc.php"); // include all the functions $seed="0dAfghRqSTgx"; // the seed for the passwords $domain = "sonidof.com"; // the domain name without http://www. ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Complete Member Login / System tutorial - <?php echo $domain; ?></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> index.php <?php require_once "header.php"; //content include "login.php"; // more content require_once "footer.php"; ?> login.php <?php if (!isLoggedIn()) { // user is not logged in. if (isset($_POST['cmdlogin'])) { // retrieve the username and password sent from login form & check the login. if (checkLogin($_POST['username'], $_POST['password'])) { show_userbox(); } else { echo "Incorrect Login information !"; show_loginform(); } } else { // User is not logged in and has not pressed the login button // so we show him the loginform show_loginform(); } } else { // The user is already loggedin, so we show the userbox. show_userbox(); } ?> |
| |||
Respuesta: envia el pass encriptado al usuario :S login.functions.inc.php <?php #### Login Functions ##### function isLoggedIn() { if (session_is_registered('loginid') && session_is_registered('username')) { return true; // the user is loged in } else { return false; // not logged in } return false; } function checkLogin($u, $p) { global $seed; // global because $seed is declared in the header.php file if (!valid_username($u) || !valid_password($p) || !user_exists($u)) { return false; // the name was not valid, or the password, or the username did not exist } //Now let us look for the user in the database. $query = sprintf(" SELECT loginid FROM login WHERE username = '%s' AND password = '%s' AND disabled = 0 AND activated = 1 LIMIT 1;", mysql_real_escape_string($u), mysql_real_escape_string(sha1($p . $seed))); $result = mysql_query($query); // If the database returns a 0 as result we know the login information is incorrect. // If the database returns a 1 as result we know the login was correct and we proceed. // If the database returns a result > 1 there are multple users // with the same username and password, so the login will fail. if (mysql_num_rows($result) != 1) { return false; } else { // Login was successfull $row = mysql_fetch_array($result); // Save the user ID for use later $_SESSION['loginid'] = $row['loginid']; // Save the username for use later $_SESSION['username'] = $u; // Now we show the userbox return true; } return false; } ?> logout.php <?php session_start(); if( session_unregister('loginid') == true && session_unregister('username')==true ) { session_destroy(); header('Location: index.php'); } else { unset($_SESSION['loginid']); unset($_SESSION['username']); session_destroy(); header('Location: index.php'); } ?> lostpassword.php <?php require_once "header.php"; if (isset($_POST['lostpass'])){ if (lostPassword($_POST['username'], $_POST['email'])){ echo "Your password has been reset, an email containing your new password has been sent to your inbox.<br /> <a href='./index.php'>Click here to return to the homepage.</a> "; }else { echo "Username or email was incorrect !"; show_lostpassword_form(); } } else { //user has not pressed the button show_lostpassword_form(); } require_once "footer.php"; ?> mail.functions.inc.php <?php ##### Mail functions ##### function sendLostPasswordEmail($username, $email, $newpassword) { global $domain; $message = " You have requested a new password on http://www.$domain/, Your new password information: username: $username password: $newpassword Regards $domain Administration "; if (sendMail($email, "Your password has been reset.", $message, "no-reply@$domain")) { return true; } else { return false; } } function sendMail($to, $subject, $message, $from) { $from_header = "From: $from"; if (mail($to, $subject, $message, $from_header)) { return true; } else { return false; } return false; } function sendActivationEmail($username, $password, $uid, $email, $actcode) { global $domain; $link = "http://www.$domain/activate.php?uid=$uid&actcode=$actcode"; $message = " Thank you for registering on http://www.$domain/, Your account information: username: $username password: $password Please click the link below to activate your account. $link Regards $domain Administration "; if (sendMail($email, "Please activate your account.", $message, "no-reply@$domain")) { return true; } else { return false; } } ?> register.php <?php require_once "header.php"; if (isset($_POST['register'])){ if (registerNewUser($_POST['username'], $_POST['password'], $_POST['password2'], $_POST['email'])){ echo "Thank you for registering, an email has been sent to your inbox, Please activate your account. <a href='./index.php'>Click here to login.</a> "; }else { echo "Registration failed! Please try again."; show_registration_form(); } } else { // has not pressed the register button show_registration_form(); } require_once "footer.php"; ?> user.functions.inc.php <?php ##### User Functions ##### function changePassword($username,$currentpassword,$newpass word,$newpassword2){ global $seed; if (!valid_username($username) || !user_exists($username)) { return false; } if (! valid_password($newpassword) || ($newpassword != $newpassword2)){ return false; } // we get the current password from the database $query = sprintf("SELECT password FROM login WHERE username = '%s' LIMIT 1", mysql_real_escape_string($username)); $result = mysql_query($query); $row= mysql_fetch_row($result); // compare it with the password the user entered, if they don't match, we return false, he needs to enter the correct password. if ($row[0] != sha1($currentpassword.$seed)){ return false; } // now we update the password in the database $query = sprintf("update login set password = '%s' where username = '%s'", mysql_real_escape_string(sha1($newpassword.$seed)) , mysql_real_escape_string($username)); if (mysql_query($query)) { return true; }else {return false;} return false; } function user_exists($username) { if (!valid_username($username)) { return false; } $query = sprintf("SELECT loginid FROM login WHERE username = '%s' LIMIT 1", mysql_real_escape_string($username)); $result = mysql_query($query); if (mysql_num_rows($result) > 0) { return true; } else { return false; } return false; } function activateUser($uid, $actcode) { $query = sprintf("select activated from login where loginid = '%s' and actcode = '%s' and activated = 0 limit 1", mysql_real_escape_string($uid), mysql_real_escape_string($actcode)); $result = mysql_query($query); if (mysql_num_rows($result) == 1) { $sql = sprintf("update login set activated = '1' where loginid = '%s' and actcode = '%s'", mysql_real_escape_string($uid), mysql_real_escape_string($actcode)); if (mysql_query($sql)) { return true; } else { return false; } } else { return false; } } function registerNewUser($username, $password, $password2, $email) { global $seed; if (!valid_username($username) || !valid_password($password) || !valid_email($email) || $password != $password2 || user_exists($username)) { return false; } $code = generate_code(20); $sql = sprintf("insert into login (username,password,email,actcode) value ('%s','%s','%s','%s')", mysql_real_escape_string($username), mysql_real_escape_string(sha1($password . $seed)) , mysql_real_escape_string($email), mysql_real_escape_string($code)); if (mysql_query($sql)) { $id = mysql_insert_id(); if (sendActivationEmail($username, $password, $id, $email, $code)) { return true; } else { return false; } } else { return false; } return false; } function lostPassword($username, $email) { global $seed; if (!valid_username($username) || !user_exists($username) || !valid_email($email)) { return false; } $query = sprintf("select loginid from login where username = '%s' and email = '%s' limit 1", $username, $email); $result = mysql_query($query); if (mysql_num_rows($result) != 1) { return false; } $newpass = generate_code(8); $query = sprintf("update login set password = '%s' where username = '%s'", mysql_real_escape_string(sha1($newpass.$seed)), mysql_real_escape_string($username)); if (mysql_query($query)) { if (sendLostPasswordEmail($username, $email, $newpass)) { return true; } else { return false; } } else { return false; } return false; } ?> |
| |||
Respuesta: envia el pass encriptado al usuario :S validation.functions.inc.php <?php #### Validation functions #### function valid_email($email) { // First, we check that there's one @ symbol, and that the lengths are right if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { // Email invalid because wrong number of characters in one section, or wrong number of @ symbols. return false; } // Split it into sections to make life easier $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false; } } if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { return false; // Not enough parts to domain } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { return false; } } } return true; } function valid_username($username, $minlength = 3, $maxlength = 30) { $username = trim($username); if (empty($username)) { return false; // it was empty } if (strlen($username) > $maxlength) { return false; // to long } if (strlen($username) < $minlength) { return false; //toshort } $result = ereg("^[A-Za-z0-9_\-]+$", $username); //only A-Z, a-z and 0-9 are allowed if ($result) { return true; // ok no invalid chars } else { return false; //invalid chars found } return false; } function valid_password($pass, $minlength = 6, $maxlength = 15) { $pass = trim($pass); if (empty($pass)) { return false; } if (strlen($pass) < $minlength) { return false; } if (strlen($pass) > $maxlength) { return false; } $result = ereg("^[A-Za-z0-9_\-]+$", $pass); if ($result) { return true; } else { return false; } return false; } ?> |
| |||
Respuesta: envia el pass encriptado al usuario :S Pero como te dice jaronu si la encriptas con md5 o sha no podras desencritar el password en todo caso enviarle una peticio para uqe se haga una nueva... |
| ||||
Respuesta: envia el pass encriptado al usuario :S en el los codigos que posteas, ya tienes un form para que el user cambie su password. al estar codificada con sha1, la unica manera de recuperar la clave es esa, hacer una nueva y es normal que al user le llegue la pass asi pero el ha de sabre cual fue la que introdujo, al logearse o al cambiarla pero el problema cual es, que no sabes manejer todos esos codigos? si a cabas de empezar lo mejor es que leeas algun manual basico de php, en google hay muchos. y el las FAQ´S del foro hay mucha informacion de como programar en PHP Y en APORTES Y SISTEMA DE PHP, en este foro hay un sistema de autentificacion bastante sencillo para empezar, y otro de como recuperar una contraseña olvidada, codificada con md5, que no se puede descodificar, y el sistema te orienta de como hacerlo. http://www.forosdelweb.com/f18/faqs-php-530600/ http://www.forosdelweb.com/f18/aport...as-php-569025/ Lee un poco y ya veras que no es tan dificil Un saludo y suerte. |
| |||
Respuesta: envia el pass encriptado al usuario :S Cita: pufff yo creo que tiene un cacao el colega.... yo al verlo pufff.... me he perdido funciones con las consultas todo mezclado... tela!
Iniciado por jaronu ![]() en el los codigos que posteas, ya tienes un form para que el user cambie su password. al estar codificada con sha1, la unica manera de recuperar la clave es esa, hacer una nueva y es normal que al user le llegue la pass asi pero el ha de sabre cual fue la que introdujo, al logearse o al cambiarla pero el problema cual es, que no sabes manejer todos esos codigos? |
| |||
Respuesta: envia el pass encriptado al usuario :S en este script... alguien me puede ayudar para que NO se encripte el pass del usuario, cosa que cuando el usuario pida su pass, pues se envie su pass normal y no encriptadoo, alguiien q me ayude plis :( |
| ||||
Respuesta: envia el pass encriptado al usuario :S Cita: Eso es ineficiente, no encriptar la contraseña solo porque no quieres que se envie esta.Si quieres hacerlo asi, alla tu: Código PHP: Si deseas hacerlo de la manera correcta seria: 1. Resettear el password al enviarlo. 2. Crear 2 campos en la base de datos, 1 para saber si la password temporal esta activa o no, otro para almacenar la contraseña temporal. Le permites al usuario loguearse con esa contraseña temporal, que cambie su pass y luego cambias el campo que dice si la pass temporal esta activa o no a su estado inactivo. |
| ||||
Respuesta: envia el pass encriptado al usuario :S Es muy inseguro quitar la codificacion de la pass y encima enviarla por mail. pero lo que te dijo Ronruby, donde veas, en el code, sha1() lo quita y listo. pero cuando te hagan sql injection, no te quejes. Un saludo |
| |||
Respuesta: envia el pass encriptado al usuario :S disculpen mi ignorancia, recien estoy empezando recien en esto... no soy programador, solo hago animaciones, pero en esta ocacion se me presento esto.. y lo acepte... va mi pregunta ¿? que es sql injection ?? no digo q soy ignorante :$ |
| ||||
Respuesta: envia el pass encriptado al usuario :S Pueden sacarte toda la informacion que quieran de la base de datos y acceder a zonas de la pagina sin registrarse, pero al enviar la pass sin codificar por mail, ya lo pones en bandeja. no es que todos los piratas de la red vayan a estar pendientes de tu pagina o de tu base de datos, pero no es aconsejable usar passwords sin codificar, y menos mandarlas por mail. pero ya te dije, donde veas en el code sha1(), QUITALO, y ya esta. Por ejemplo: en esta linea mysql_real_escape_string(sha1($newpass.$seed)), mysql_real_escape_string($username)); la dejas asi: mysql_real_escape_string($newpass.$seed), mysql_real_escape_string($username)); Y asi donde veas sha1 Un saludo |