Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/01/2011, 11:28
manuel2788
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Recoger variables con $_SESSION

Buenas tardes,

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:
<?php echo "$_SESSION[nick]" ?>"
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.

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:
<?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&aacute;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&ntilde;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&oacute;n de Correo electr&oacute;nico v&aacute;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&uacute;n premio se necesitan los verdaderos datos personales.</span>         
         </div>
</div>
		
    		            
       	</form>
En el segundo código solo coloque la parte que nos incumbe ya que sería demasiado código y muy fastidioso de leer.

Gracias de antemano, espero una pronta ayuda.