Foros del Web » Programando para Internet » PHP »

register_globals y sesiones ¿alguien sabe como...?

Estas en el tema de register_globals y sesiones ¿alguien sabe como...? en el foro de PHP en Foros del Web. Hola, tengo el siguiente script para hacer el login en una página, y me funciona perfectamente, ahora bien, si desactivo las register_globals, ya no funciona, ...
  #1 (permalink)  
Antiguo 09/09/2005, 11:08
 
Fecha de Ingreso: julio-2005
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
register_globals y sesiones ¿alguien sabe como...?

Hola, tengo el siguiente script para hacer el login en una página, y me funciona perfectamente, ahora bien, si desactivo las register_globals, ya no funciona, no se logea. ¿alguien me puede echar una mano? He provado con $_POST, $_SESSION, etc.. y no soy capaz. Se que tiene que ver con las variables $userid y $password. El formulario del final de este script se envia a éste mismo script, pero no consigo que pase las variables correctamente!!!



<?
session_start();

if ($userid && $password)
{
// Si el usuario ha intentado hacer log in

$db_conn = mysql_connect("localhost", "nombreusuario", "contraseña");
mysql_select_db("nombreBaseDatos", $db_conn);
$query = "select * from auth "
."where name='$userid' "
." and pass=password('$password')";
$result = mysql_query($query, $db_conn);
if (mysql_num_rows($result) >0 )
{
// si están en la base de datos registra la id de usuario
$valid_user = $userid;
session_register("valid_user");
}
}
?>
<html>
<body>
<h1>Página Inicio</h1>
<?

if (session_is_registered("valid_user"))
{
echo "Ahora estás logged in como: $valid_user <br>";
echo "<a href=\"logout.php\">Log out</a><br>";
}
else
{
if (isset($userid))
{
// si han intentado hacer login y ha fallado
echo "No has podido hacer login";
}
else
{
// si no han intentado hacer login y no han hecho logged out
echo "No has hecho logged in.<br>";
}

// provee el formulario para hacer log in
echo "<form method=post action=\"authmain.php\">";
echo "<table>";
echo "<tr><td>Userid:</td>";
echo "<td><input type=text name=userid></td></tr>";
echo "<tr><td>Contraseña:</td>";
echo "<td><input type=password name=password></td></tr>";
echo "<tr><td colspan=2 align=center>";
echo "<input type=submit value=\"Log in\"></td></tr>";
echo "</table></form>";
}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 09/09/2005, 11:14
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Seguro que no probaste esto?
Código PHP:
<?
session_start
();

// Esto
$userid=$_POST['userid'];
$password=$_POST['password'];

if (
$userid && $password)
{
// Si el usuario ha intentado hacer log in

$db_conn mysql_connect("localhost""nombreusuario""contraseña");
mysql_select_db("nombreBaseDatos"$db_conn);
$query "select * from auth "
."where name='$userid' "
." and pass=password('$password')";
$result mysql_query($query$db_conn);
if (
mysql_num_rows($result) >)
{
// si están en la base de datos registra la id de usuario
$valid_user $userid;
session_register("valid_user");
}
}
?>
<html>
<body>
<h1>Página Inicio</h1>
<?

if (session_is_registered("valid_user"))
{
echo 
"Ahora estás logged in como: $valid_user <br>";
echo 
"<a href=\"logout.php\">Log out</a><br>";
}
else
{
if (isset(
$userid))
{
// si han intentado hacer login y ha fallado
echo "No has podido hacer login";
}
else
{
// si no han intentado hacer login y no han hecho logged out
echo "No has hecho logged in.<br>";
}

// provee el formulario para hacer log in
echo "<form method=post action=\"authmain.php\">";
echo 
"<table>";
echo 
"<tr><td>Userid:</td>";
echo 
"<td><input type=text name=userid></td></tr>";
echo 
"<tr><td>Contraseña:</td>";
echo 
"<td><input type=password name=password></td></tr>";
echo 
"<tr><td colspan=2 align=center>";
echo 
"<input type=submit value=\"Log in\"></td></tr>";
echo 
"</table></form>";
}
?>
</body>
</html>
  #3 (permalink)  
Antiguo 09/09/2005, 11:22
 
Fecha de Ingreso: julio-2005
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Hola lado2mx, ante todo muchas gracias por responder.
Si, eso ya lo he probado pero me da el siguiente error
Fatal error: Function name must be a string
en dichas linea

Última edición por plande; 09/09/2005 a las 11:39
  #4 (permalink)  
Antiguo 09/09/2005, 15:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Echale un vistazo al código de mi "Autentificator" .. ahí veras el uso de sesiones con los arrays superglobales (todos .. $_POST, $_SESSION) .. como definir variables de sesión y como accederas con un ejemplo práctico.

Autentificator
http://php.cluster-web.com/autentificator

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:58.