Foros del Web » Programando para Internet » PHP »

sesiones con php

Estas en el tema de sesiones con php en el foro de PHP en Foros del Web. hola a todos, estoy realizando una pagina en la cual quiero realizar el manejo de sesiones.. y para aprender lei un poco de como funcionan ...
  #1 (permalink)  
Antiguo 09/12/2008, 09:33
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
sesiones con php

hola a todos, estoy realizando una pagina en la cual quiero realizar el manejo de sesiones.. y para aprender lei un poco de como funcionan las sesiones. este codigo lo arme para que inicie sesion un usuario y se mande a otra pagina el nombre sel usuario que ingreso.

desde ya muchas gracias¡¡

esta es la pagina donde tengo el formulario en el cual el usuario ingresa los datos.


<?
session_start();
?>
<html>
<head>
<title>Generar variable de sesión</title>
</head>
<body> <form action="sesioniniciada.php" method="post">
<span class="Estilo6">Usuario</span>:
<input type="text" name="Usuario" size="22" maxlength="150">
</p>
<span class="Estilo6">Contraseña</span>:
<input type="text" name="Contraseña" size="22" maxlength="150">
<input type="submit" value="Login">
</form>
<?


$userlogin=$_POST["Usuario"];
$userpass=$_POST["Contraseña"];
$host="localhost";
$user="root";
$pass="20404";
if(!($id=mysql_connect($host,$user,$pass))){
echo "No se pudo realizar la conexion<br> Intente mas Tarde";
exit();
}else {
mysql_select_db("usuarios",$id);
$consulta = "select * from usuarios where Usuario = '$userlogin' AND Contraseña = $userpass";
$resultado = mysql_query($consulta,$id);
$numerode_resultados = mysql_num_rows($resultado);
if($numerode_resultados=="1"){
$Nombre = mysql_result($resultado,0,"Usuario");
$Contraseña = mysql_result($resultado,0,"Contraseña");
echo $Nombre."<br>".$Contraseña;

}
}

$_SESSION["usuario"]=$Nombre;
?>

</body>
</html>

la pagina donde recivo la variable es
<?
session_start();
?>
<html>
<head>
<title>Leo variable se sesión</title>
</head>
<body>
Muestro esa variable:
<?
echo $_SESSION["usuario"];

?>
</body>
</html>

el error que me da es : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\iniciasesion.php on line 31



no se puede conectar a la base de datos pero confimre y los campos estan correctamente ingresados en las consulta a la base de dato... ya que verifique que esa consulta funciona a la perfeccion en otra pagina que arme a modo de prueba.
  #2 (permalink)  
Antiguo 09/12/2008, 11:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: sesiones con php

hola... a tus sentencias agrégales esto...

Código PHP:
mysql_select_db(/* DB */) or die(mysql_error());
mysql_query(/* SQL */) or die(mysql_error()); 
con esto, si ocurre un error del SQL (que es lo que seguro te pasa) te lo mostrara...


Edito: estas comparando el nombre Usuario = '$userlogin' ... pero en la Contraseña no estas usando comillas!!!

de hecho, tampoco debiste usar ñ en tu campo de la tabla...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/12/2008, 11:57
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: sesiones con php

Tambien recuerda siempre usar <?php en vez de <?,
Si te topas con un servidor que tienes short_tags off, te romperas la cabeza por nada.
  #4 (permalink)  
Antiguo 10/12/2008, 13:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: sesiones con php

hola muchas gracias por las respuestas¡¡¡ logre solucionarlo a medias.... pero algo anda.. el problema que se me presenta es que si paso a otra pagina la sesion continua activa pero al hacer dos pasajes consecutivos de pagina en pagina la sesion expira lo cual no es la idea.. ayuda¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ me esta volviendo locooooooooooooooooo¡¡¡¡¡¡¡¡¡¡¡¡¡ este es el codigo final¡¡¡ aclaro que el codio es parte de un diseño modular y solo esta presente en un marco izquiero que se mantiene constante en toda la pagina.

<?php if($_SESSION["s_username"]==NULL){ ?>
<form action="bajodemanda.php" method="post">
<span class="Estilo6">Usuario</span>:
<input type="text" name="Usuario" size="22" maxlength="150">
</p>
<span class="Estilo6">Contraseña</span>:
<input type="text" name="Contraseña" size="22" maxlength="150">
<input type="submit" value="Login">
</form> <? }else{ echo "Bienvenido ".$_SESSION['s_username'] ."<br>";; $ban="1";

?><form action="bajodemanda.php" method="post"><input type="submit" value="Cerrar sesion">
</form>
<?php if(!isset($_POST["Cerrar sesion"])){ session_destroy();}
}


$username=$_POST["Usuario"];
$password=$_POST["Contraseña"];
$host="localhost";
$user="root";
$pass="20404";

if(!(mysql_connect($host,$user,$pass))){
echo "No se pudo realizar la conexion<br> Intente mas Tarde";
exit();
}else {


mysql_select_db(usuarios) or die('Cannot select database');


if (($password==NULL) || ($username==NULL))
{if ($ban!=1){
echo "La password y/o el usuario no fueron enviada";}
}
else
{
$query = mysql_query("SELECT * FROM usuarios WHERE Usuario = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['Contraseña'] != $password)
{
echo "Login incorrecto";
}
else
{
$query = mysql_query("SELECT * FROM usuarios WHERE Usuario = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['Usuario'];
echo "Has sido logueado correctamente ".$_SESSION['s_username'];
}
}

}


?>



gracias por las respuestas anteriores¡¡¡ me fueron muy utiles como podran ver¡¡¡
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 00:11.