Una consulta: tengo un sistema de registro e inicio de sesión funcionando perfectamente, ahora quiero crear una sección de actualización de perfil.
Primeramente en el script de logeo tomo la variable nick, por medio de $_session para limitar el acceso a la sección de edición de pefil solo a usuarios registrados y logeados.
Esa misma función me sirve para agregar en el formulario de actualización de perfil la variable nick. En el campo value del input agrego:
Código:
Y satisfactoriamente el formulario muestra la variable nick. El problema se me presenta al querer mostrar en pantalla más datos. Los agrego en el script de logeo pero en el formulario no se muestran.<?php echo "$_SESSION[nick]" ?>"
A continuación, agregaré el script de logeo y el formulario para que me orienten a agregar por medio de la variable global $_SESSION datos ya registrados en un formulario de actualización.
Código:
<?php session_start();// Iniciamos sesión //variables para base de datos $dbhost = 'localhost'; $dbusername = 'prueba'; $dbuserpass = 'prueba'; $dbname = 'prueba'; mysql_connect($dbhost, $dbusername, $dbuserpass) or die(mysql_error()); mysql_select_db($dbname) or die (mysql_error()); $nick = trim($_POST['nick']); $password = trim($_POST['password']); /*Validamos si el nick y el pass fueron escritos*/ if( $nick == "" || $password == "" ) { echo '<script>alert("Tanto Nick como Password son necesarios"); history.go(-1);</script>'; exit; } $query = mysql_query("SELECT password FROM registro WHERE nick = '".$nick."'") or die(mysql_error()); $data = mysql_fetch_array($query); /*Validamos si ese nick es correcto*/ if( mysql_num_rows($query) == 0 ) { echo '<script>alert("El nick proporcionado no existe en la base de datos"); history.go(-1);</script>'; exit; } /*validamos si el pass que se dio es igual al de la BD*/ if( $data['password'] != $password ) { echo '<script>alert("El password proporcionado es incorrecto"); history.go(-1);</script>'; $result = mysql_query("SELECT email, nombre, email FROM registro WHERE nick = '".$nick."'") or die(mysql_error()); exit; } /*Si todo va bien generamos la sesion*/ $_SESSION["nick"] = $nick; $_SESSION["password"] = $password; $_SESSION["email"] = $email; $_SESSION["nombre"] = $nombre; $_SESSION["apellido"] = $apellido; echo '<script>alert("Bienvenido"); location.href = "prueba.php";</script>'; ?>
Código:
En el segundo código solo coloque la parte que nos incumbe ya que sería demasiado código y muy fastidioso de leer.<?php session_start(); if( $_SESSION["nick"] == "" ) { echo '<script>alert("Zona solo para usuarios logueados."); location.href="index.php";</script>'; exit; } $_SESSION["email"] = $email; $_SESSION["nombre"] = $nombre; $_SESSION["apellido"] = $apellido; $_SESSION["password"] = $password; ?> <body> <div id="contenedor" #contenedor> <div id="logo" #logo></div> <div id="menu"> <div id="content_center" #content_center class="scroll"> <div id="personales" #personales> <h2>Datos Personales</h2> <form id="form" #form action="registrar.php" method="post" target="_top" > <div id="div" #div> <fieldset> <label for="nick"> Nick </label> <input type="text" name="nick" size="20" maxlength="25" value="<?php echo "$_SESSION[nick]" ?>" onkeyup="checkNickForLength(this);"/> <span class="hint">El Nick, debe tener más de ocho caracteres.</span> </div> <div id="div" #div> <fieldset> <label for="password">Contraseña </label> <input type="password" name="password" size="20" maxlength="50" onkeyup="checkPassword(this);" /> <span class="hint">Por seguridad no se muestra la contraseña actual. Se recomienda generar una contraseña mayor a quince caracteres con la finalidad de mejorar su seguridad.</span> </div> <div id="div" #div> <fieldset> <label for="email">Email </label> <input type="text" name="email" size="20" maxlength="80" value="<?php echo "$_SESSION[email]" ?>" onkeyup="checkEmail(this);"/> <span class="hint">Debe ingresar una dirección de Correo electrónico válido.</span> </div> <div id="div" #div> <fieldset> <label for="nombre">Nombre </label> <input type="text" name="nombre" size="20" maxlength="40" value="<?php echo "$_SESSION[nombre]" ?>" onkeyup="checkNombre(this);"/> <span class="hint"> Escriba su Nombre. Se recomienda colocar datos reales ya que al momento de acreditar algún premio se necesitan los verdaderos datos personales.</span> </div> </div> </form>
Gracias de antemano, espero una pronta ayuda.