Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: mokoMonster en 5 Agosto 2010, 01:41 am



Título: Ayuda con $_SESSION
Publicado por: mokoMonster en 5 Agosto 2010, 01:41 am
Buenas!  :-(

Tengo un formulario que recoge los datos de los productos de el catalogo, estos se ingresan a la tabla Catalogo, la cual tiene los campos propietarioArticulo, etc etc.. todos funcionan bien, pero cuando trato de pasar el valor de $_SESSION['noUsuario'] es = 0.. pero no entiendo por que, en el login puse el siguiente script para ver si se guarda el valor de la sesion:

 if (isset($_SESSION['noUsuario'])) {
echo "Usuario logged in ".($_SESSION['noUsuario']);
exit; }
Y me devuelve el valor de el usuario, en este caso admin, lo que no entiendo es por que si ahi si me pasa el valor, porque entonces
$propietarioArticulo=($_SESSION['noUsuario']);
en realidad es =''...

Saludos


Título: Re: Ayuda con $_SESSION
Publicado por: Shell Root en 5 Agosto 2010, 01:47 am
:http://yoyahack.blogspot.com/2010/06/empty-o-isset.html


Título: Re: Ayuda con $_SESSION
Publicado por: mokoMonster en 5 Agosto 2010, 01:52 am
Gracias, pero si entiendo la diferencia, pero lo que pasa es que el valor si se pasa en la pag de login.php, es decir el valor si existe y esta definido, pero cuando paso a la pagina catalogo.php el valor ya no existe, me explico ??

Saludos


Título: Re: Ayuda con $_SESSION
Publicado por: Dznp en 5 Agosto 2010, 02:12 am
Si pasaras el login...  :silbar:


Título: Re: Ayuda con $_SESSION
Publicado por: mokoMonster en 5 Agosto 2010, 02:16 am
<?php include('conex.php');
$link=Conectarse();
$noUsuario=$_POST['noUsuario'];
$password=$_POST['password'];
$password=md5($password);
$query= mysql_query("SELECT noUsuario,password FROM Usuarios WHERE noUsuario = '$noUsuario' AND password='$password'",$link) or die(mysql_error());
$data = mysql_fetch_array($query);

if (empty($noUsuario)) {
echo '
<table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#FFF"><br/><br/><br/>';
    echo "<center><strong>Campos Usuario o Contraseña Incorrectos<br/>Por favor llene correctamente los campos. USER<br/><a href='javascript:history.go(-1)'> Atras</a></strong></center>";
echo '</td>
  </tr>
</table><br/><br/><br/>';
mysql_close($link);
exit;
}

// Si el campo Password esta vacio o no es igual a Consulta muestra mensaje de error
   elseif (empty($password) || ($data['password']!=$password)) {
echo '
<table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#FFF"><br/><br/><br/>';
    echo "<center><strong>Campos Usuario o Contraseña Incorrectos<br/>Por favor llene correctamente los campos. PWD<br/><a href='javascript:history.go(-1)'> Atras</a></strong></center>";
echo '</td>
  </tr>
</table><br/><br/><br/>';
mysql_close($link);
exit;

// Si los campos son correctos se envia a la zona protegida.
}else{
$query = mysql_query("SELECT noUsuario,password FROM Usuarios WHERE noUsuario = '".$noUsuario."' AND password='$password'",$link) or die(mysql_error());
    $row = mysql_fetch_array($query);
    $_SESSION['noUsuario'] = $row['noUsuario']; 
$_SESSION['password'] = $row['password'];
echo '<br /><br /><br />';
echo '<br/><br/><br/>
<table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#FFF">';
// Mensaje con nombre de Usuario
echo "<center><strong>".$row['noUsuario']."<br/><a href='javascript:history.go(-1)'> Atras</a></strong></center>";
echo '</td>
  </tr>
</table><br/><br/><br/>';
mysql_close($link);
exit;
}
?>
es este, bueno es el que valida el login xD


Título: Re: Ayuda con $_SESSION
Publicado por: Dznp en 5 Agosto 2010, 03:06 am
Perdoname que te diga pero... TOTALMENTE mal optimizado ese codigo.  ;)

Sobre tu problema, no es necesario usar ( ) para poner una sesión.
Eso puede ser el problema (aunque ni siquiera entendí cual era)  proba esto.

Código
  1. $propietarioArticulo=$_SESSION['noUsuario'];


Título: Re: Ayuda con $_SESSION
Publicado por: mokoMonster en 5 Agosto 2010, 20:08 pm
haha si me imagino lo de el codigo, pero ya sabes uno aprende poco a poco :)
y en cuanto a lo de "( )" lo puse porque antes lo tenia normal y en el editor me mostraba {session.noUsuario} y si le ponia las ( ) ya no lo mostraba.. pero de las dos maneras no funciono :(

Estoy pensando en hacer una funcion la cual llamar en el header de la pag para comprobar si el usuario es visitiante o esta ya esta registrado, y desde ahi llamar a $_session['noUsuario'].. para tener la variable disponiblen en toda pagina que lo necesite..

que piensan?
Saludos :laugh:


Título: Re: Ayuda con $_SESSION
Publicado por: mokoMonster en 5 Agosto 2010, 21:38 pm
Ya encontre el error, no incluí
session_start();
if(!isset($_SESSION['noUsuario'])||!isset($_SESSION['password']))
{
   header('Location: http://www.server.com/secure/login.php');
   exit;
}
Duuuh, que despistado, saludos.