Autor
|
Tema: Problema con sesiones (Leído 3,161 veces)
|
fede_cp
Desconectado
Mensajes: 527
"porque pensar nunca fue entender"
|
bueno me pasa lo siguiente... estoy haciendo una pagina con registro de usuarios. al registrarse, voy al login e hice una cosa para probar y no me funciona,me pasa lo siguiente, al entrar con el login le pido que me de el nombre de usuario,pero no me lo da,voy al logout, se cierra la sesion, voy a user.php y me muestra la sesion anterior!! igual voy a restringir el user.php aca van los codigos: user.php <?php require('config.php'); require('functions.php'); //make connection to dbase //build and issue the query $sql ="SELECT * FROM $table_name"; ?> <html> <head> <title>Bienvenidos</title> </head> <body> <p>Entraste con el Nick:</p> <?php echo $_SESSION[user_name]; ?> <form name="form1" method="post" action="username.php"> <label>Cambiar nombre de usuario <input type="text" name="username.php"> </label> <p> </p> <label></label> <input type="submit" name="Submit" value="Cambiar"> </form> <p> </p> </body> </html>
config.php no hace falta... username.php <?php //function to get the date function last_login() { return $date; } //function that sets the session variable function sess_vars($base_dir, $server, $dbusername, $dbpassword, $db_name, $table_name, $user, $pass) { //make connection to dbase $sql = "SELECT * FROM $table_name WHERE username = '$user' and password = password('$pass')"; //get the number of rows in the result set //set session variables if there is a match if ($num != 0) { { $_SESSION[first_name] = $sql -> firstname; $_SESSION[last_name] = $sql -> lastname; $_SESSION[user_name] = $sql -> username; $_SESSION[password] = $sql -> password; $_SESSION[group1] = $sql -> group1; $_SESSION[group2] = $sql -> group2; $_SESSION[group3] = $sql -> group3; $_SESSION[pchange] = $sql -> pchange; $_SESSION[email] = $sql -> email; $_SESSION[redirect] = $sql -> redirect; $_SESSION[verified] = $sql -> verified; $_SESSION[last_login] = $sql -> last_login; } }else{ $_SESSION[redirect] = "$base_dir/errorlogin.html"; } } //functions that will determine if access is allowed function allow_access($group) { if ($_SESSION[group1] == "$group" || $_SESSION[group2] == "$group" || $_SESSION[group3] == "$group" || $_SESSION[group1] == "Administrators" || $_SESSION[group2] == "Administrators" || $_SESSION[group3] == "Administrators" || $_SESSION[user_name] == "$group") { $allowed = "yes"; }else{ $allowed = "no"; } return $allowed; } //function to check the length of the requested password function password_check($min_pass, $max_pass, $pass) { $valid = "yes"; { $valid = "no"; } return $valid; } ?>
en functions.php hay mas cosas pero esta lo que seria la parte de username. alguna idea?
|
|
« Última modificación: 27 Mayo 2009, 01:35 am por fede_cp »
|
En línea
|
somos lo que hacemos para cambiar lo que somos
http://elhackerblog.blogspot.com el blog de elhacker.net!!
|
|
|
sclub
Desconectado
Mensajes: 591
|
Parto de la base que el segundo codigo que pones es el username.php. He visto que en ese archivo, te pones a guardar variables de session, sin haber abierto ninguna session... alomejor es por eso. Por otra parte, como le pasas las sessiones de una pagina a otra? Al mismo tiempo que le indicas el archivo al que tiene que ir, le tienes que indicar el nombre de session y la id. No lo acabo de ver claro... pero bueno, tampoco se mucho de php... C u!
|
|
|
En línea
|
... because making UNIX friendly is easier than debugging Windows.
|
|
|
fede_cp
Desconectado
Mensajes: 527
"porque pensar nunca fue entender"
|
el id eso si me falta... la sesion empieza con session_start() voy a ver que hago si alguien tiene ganas de revisar un poco el codigo y darme una mano muchas gracias adios
|
|
« Última modificación: 27 Mayo 2009, 02:07 am por fede_cp »
|
En línea
|
somos lo que hacemos para cambiar lo que somos
http://elhackerblog.blogspot.com el blog de elhacker.net!!
|
|
|
fede_cp
Desconectado
Mensajes: 527
"porque pensar nunca fue entender"
|
perodon gente el username.php no tiene nada que ver con el user.php
el user.php es donde esta mi duda.. si quieren fijarse lo del username es para cambiar el nombre de usuario que tampoco me funciona bien ya que no reconoce bien cuando inicia sesion
adios!
|
|
|
En línea
|
somos lo que hacemos para cambiar lo que somos
http://elhackerblog.blogspot.com el blog de elhacker.net!!
|
|
|
fede_cp
Desconectado
Mensajes: 527
"porque pensar nunca fue entender"
|
problema solucionado! codeando un rato me di cuenta de que nunca puse el nombre de inicio de sesion (en mi caso es $_SESSION[user_name]). osea que quedaria: session_start($_SESSION[user_name]); ahoram e falta restringir el acceso y listo! adios y gracias
|
|
|
En línea
|
somos lo que hacemos para cambiar lo que somos
http://elhackerblog.blogspot.com el blog de elhacker.net!!
|
|
|
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
Desconectado
Mensajes: 5.110
|
problema solucionado! codeando un rato me di cuenta de que nunca puse el nombre de inicio de sesion (en mi caso es $_SESSION[user_name]). osea que quedaria: session_start($_SESSION[user_name]); ahoram e falta restringir el acceso y listo! adios y gracias No es necesario... Usa: session_start(); $_SESSION[user_name]; O session_registrer(). Y respondiendo al otro usuario, las sesiones se pasan a cualquier pagina que las use mediante la variable $_SESSION que es una variable global. Saludos
|
|
|
En línea
|
|
|
|
sclub
Desconectado
Mensajes: 591
|
Entonces cuando ya tienes una session abierta, con sus variables y todo(de session), y pasas a otra pagina, para que las variables se mantengan no le tienes que poner aquello de: loquesea.php?".session_name()."=".session_id(); despues del nombre del archivo?? Yo creia que si no lo ponias no reconocia las variables.... Ok, thks! C u!
|
|
|
En línea
|
... because making UNIX friendly is easier than debugging Windows.
|
|
|
fede_cp
Desconectado
Mensajes: 527
"porque pensar nunca fue entender"
|
Gracias por responder cuando pense que ya estaba todo arreglado y no era asi..
entonces no hay que poner como dijo Sclub para que te reconzca cuando cambias de pagina? osea que siga en la misma sesion
un saludo
|
|
|
En línea
|
somos lo que hacemos para cambiar lo que somos
http://elhackerblog.blogspot.com el blog de elhacker.net!!
|
|
|
Littl3
Desconectado
Mensajes: 239
Tarde o temprano aparece el hombre
|
Hasta donde yo se, con declarar session_start(); al principio de cada pagina donde quieras usar estas variables, todas las variables de session estan disponibles haciendo:
$_SESSION['variable']
Y si quieres terminar la session y destruir todas las variables yo utilizo session_destroy(); pero antes has de haber iniciando la session con session_start();
Corregirme si me equivoco, un saludo
|
|
|
En línea
|
|
|
|
sclub
Desconectado
Mensajes: 591
|
Buenas!
Puede que si... no te niego que suele funcionar igual, pero creia que era la manera "chapuzera" de hacerlo, por llamarlo de alguna manera. Yo esque aprendi directamente la teoria, y decia que era con el name y el id, pero bien.
Por otra parte, yo para cerrar session uso el session_unset(), supongo que la funcion sera similar.
C u!
|
|
|
En línea
|
... because making UNIX friendly is easier than debugging Windows.
|
|
|
|
|