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
:http://yoyahack.blogspot.com/2010/06/empty-o-isset.html
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
Si pasaras el login... :silbar:
<?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
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.
$propietarioArticulo=$_SESSION['noUsuario'];
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:
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.