Ayuda con $_SESSION

Iniciado por mokoMonster, 5 Agosto 2010, 01:41 AM

0 Miembros y 1 Visitante están viendo este tema.

mokoMonster

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
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

mokoMonster

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
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

Dznp


mokoMonster

<?php include('conex.php');
$link=Conectarse();
$noUsuario=$_POST['noUsuario'];
$password=$_POST['password'];
$password=md5($password);
$querymysql_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
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

Dznp

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 (php) [Seleccionar]
$propietarioArticulo=$_SESSION['noUsuario'];

mokoMonster

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:
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

mokoMonster

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.
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange