Problema con login y sesiones
Publicado por Unexes (124 intervenciones) el 02/10/2013 21:27:30
hola a tod@s.
Vereis tengo un problema, con el fin de aprender segui un tutorial sobre PHP y Mysql y parece ser que ese tutorial es algo antiguo y el código que viene en el da algunos problemas con las nuevas versiones de PHP, de ese tutorial saque unas páginas para hacer login con sesiones y me dio varios avisos de error, así que sustitui las lineas que me daban error por lo que yo crei que debian de ser las correctas y los avisos de error desaparecierón, pero no me funciona, necesito vuestra ayuda para solucionarlo os pongo el código de las 3 páginas porque son muy cortas.
En la página index.php cuando coloco el login correcto no pasa a la página siguiente, y cuando pongo el incorrecto se me recarga la página index.php, pero no me dice que he puesto el login incorrectamente.
Espero me podais ayudar, supongo que deben haber errores en las 3 páginas, Gracias a tod@s.
Index.php
Logout.php
members_only.php
Gracias a tod@s
Vereis tengo un problema, con el fin de aprender segui un tutorial sobre PHP y Mysql y parece ser que ese tutorial es algo antiguo y el código que viene en el da algunos problemas con las nuevas versiones de PHP, de ese tutorial saque unas páginas para hacer login con sesiones y me dio varios avisos de error, así que sustitui las lineas que me daban error por lo que yo crei que debian de ser las correctas y los avisos de error desaparecierón, pero no me funciona, necesito vuestra ayuda para solucionarlo os pongo el código de las 3 páginas porque son muy cortas.
En la página index.php cuando coloco el login correcto no pasa a la página siguiente, y cuando pongo el incorrecto se me recarga la página index.php, pero no me dice que he puesto el login incorrectamente.
Espero me podais ayudar, supongo que deben haber errores en las 3 páginas, Gracias a tod@s.
Index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
session_start();
if (isset($userid) && isset ($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"); // ESTE ERA EL ORIGINAL Y COMO ME DABA ERROR LO SUSTITUI POR EL SIGUIENTE
$_SESSION['valid_user'];
}
}
?>
<html>
<body>
<h1>Página Inicio</h1>
<?php
//if (session_is_registered("valid_user")) ESTE ERA EL ORIGINAL Y COMO ME DABA ERROR LO SUSTITUI POR EL SIGUIENTE
if (isset($_SESSION['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=\"index.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>";
}
?>
<br>
<a href="members_only.php">Sección de Miembros</a>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
session_start();
$old_user = (isset($valid_user)); // almacenado para comprobar si ellos estuvieron logged in
//$result = session_unregister("valid_user");
//$SESSION['valid_user']='';
(isset($_SESSION['valid_user']));
session_destroy();
?>
<html>
<body>
<h1>Log out</h1>
<?php
if (!empty($old_user))
{
if ($result)
{
// si estuvieron logged in y no están logged out
echo "Logged out.<br>";
}
else
{
// Estaban logged in y no pueden logged out
echo "No se ha podido hacer logged out.<br>";
}
}
else
{
// si ellos no estaban logged in pero llegan a esta página de algún modo
echo "No estás logged in, y por tanto no puedes hacer logged out.<br>";
}
?>
<a href="index.php">Volver a la página principal</a>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start();
echo "<h1>Sólo Miembros</h1>";
// comprobar variables de sesión
//if (session_is_registered("valid_user"))
if (isset($_SESSION['valid_user']))
{
echo "<p>Estás logged in como $valid_user.</p>";
echo "<p>El contenido sólo para miembros va aquí</p>";
}
else
{
echo "<p>No estás logged in.</p>";
echo "<p>Sólo los miembros logueados pueden ver esta página.</p>";
}
echo "<a href=\"index.php\">Volver a la página principal</a>";
?>
Valora esta pregunta


0