Foros del Web » Programando para Internet » PHP »

$_SESSION['user']) no funciona

Estas en el tema de $_SESSION['user']) no funciona en el foro de PHP en Foros del Web. Saludos a todos, me ocurre lo siguiente, tengo este formulario : Cita: <form action="validar_usuario.php" method="post"> <div id="usuario"> <input type="text" name="usuario" size="25" class= "estilotextarea" /></div> <div ...
  #1 (permalink)  
Antiguo 15/01/2010, 17:38
 
Fecha de Ingreso: agosto-2009
Mensajes: 95
Antigüedad: 14 años, 7 meses
Puntos: 0
$_SESSION['user']) no funciona

Saludos a todos, me ocurre lo siguiente, tengo este formulario :

Cita:
<form action="validar_usuario.php" method="post">
<div id="usuario"> <input type="text" name="usuario" size="25" class= "estilotextarea" /></div>
<div id="password"><input type="password" name="password" size="25" class= "estilotextarea" /></div>
<div id="bt_registro"><a href="formulario1.html"><img src="images/registrate_ahora.png" width="109" height="23" border="0"/></a></div>
<div id="bt_enviar"><input type="image" src="images/entrar.png" /></div>
</form>
y se procesa en el siguiente script validar_usuario.php:

Cita:
<?php
@session_start();
mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('xpomundo')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
$visita = $_POST['usuario'];
$password = $_POST["password"];
$result = mysql_query('SELECT usuario,password FROM visitantes WHERE usuario=\''.$usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["password"] == $password){
$_SESSION['user'] = $row["usuario"];
echo "secion iniciada.....redireccionando...";
print "<meta http-equiv=Refresh content=\"2 ; url=index.php\">";
}
else{
echo "<script> alert (\"Password incorrecto.\"); </script>";
print "<meta http-equiv=Refresh content=\"2 ; url=index.php#login\">";
}
}
else{
echo "<script> alert (\"El usuario no existe en la Base de Datos... porfavor Registrate es .\"); </script>";
print "<meta http-equiv=Refresh content=\"2 ; url=index.php#login\">";
}
mysql_free_result($result);
}else{
echo "<script> alert (\"Es necesario que hagas login; pon tu nombre de usuario (mail) y tu password en los cuadros de texto del formulario de login.\"); </script>";
echo "<script language=Javascript> location.href=\"index.php\"; </script>";
}
mysql_close();
?>
hasta aqui todo bien he imprimido en pantalla el contenido de $_SESSION['user'] = $row["usuario"] y todo bien, el detalla esta cuando quiero engresar a una pag "restringida"...para eso tengo lo siguiente, archivo.php :

Cita:
<?php
@session_start();
if(isset($_SESSION['user'])){
?>
<html>
<head>
--------algunos <javascript></script>
</head>
<body>
contenido de la pag
</body>
</html>
<?php
}else{
echo "No ha iniciado secion";
}
?>
la cosa es que, escribo nombre de usuario y password en el formulario, doy enviar, me redirecciona a index.php y al pulsar el boton que lleva a archivo.php me dice que no he iniciado seccion, intento esto 2 o 3 veces y me permite el acceso, o hay veces que no me da acceso... por que hace esto? que tengo mal en el codigo?
  #2 (permalink)  
Antiguo 15/01/2010, 19:00
 
Fecha de Ingreso: enero-2010
Mensajes: 12
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: $_SESSION['user']) no funciona

No estoy muy seguro pero he estado trabajando mucho con variables de session
y cuando quiero asignarle un valor lo hago sin las comillas simples.

donde dice

Código PHP:
$_SESSION['user'] = $row["usuario"]; 
lo haria

Código PHP:
$_SESSION[user] = $row["usuario"]; 
Supongo que parecera bastante chusco
  #3 (permalink)  
Antiguo 15/01/2010, 23:56
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: $_SESSION['user']) no funciona

Para que pones:
Código PHP:
Ver original
  1. @session_start(); // EL @, se que es para evitar error. Pero si tu codigo esta todo bien, no te deveria dar error ;)

Antes de redireccionarte, te imprime: secion iniciada.....redireccionando...??

Despues cambia $HTTP_POST_VARS por $_POST

Intenta poner esto en el index, y en la pagina restringida:
Código PHP:
Ver original
  1. var_dump($_SESSION); // Es un dump de la variable, dinos que te imprime :p

Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #4 (permalink)  
Antiguo 16/01/2010, 00:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: $_SESSION['user']) no funciona

@Maverick_cold45

La forma que lo haces es completamente incorrecta y en servidores corriendo en forma strict te va a dar error.

Te recomiendo que busques en el foro como usar las comillas bien.

Saludos.

Etiquetas: Ninguno
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:36.