Foros del Web » Programando para Internet » PHP »

sistema de usuarios....la pesadilla continua

Estas en el tema de sistema de usuarios....la pesadilla continua en el foro de PHP en Foros del Web. pues nada despues de estar unos dias descansando del php vuelvo a enfrentarme a mi peor enemigo........cokies+sesiones He hecho lo siguiente: <? session_start(); echo "<html><body>"; ...
  #1 (permalink)  
Antiguo 16/06/2004, 04:28
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
sistema de usuarios....la pesadilla continua

pues nada despues de estar unos dias descansando del php vuelvo a enfrentarme a mi peor enemigo........cokies+sesiones

He hecho lo siguiente:
<?
session_start();
echo "<html><body>";
echo "Bienvenido tu ID es";
echo $_SESSION["user_id"] OR $_COOKIE['cookvguser_id'];
echo "<br>Has entrado con el nombre de usuario ";
echo $_SESSION["login"] OR $_COOKIE['cookvglogin'];
echo "<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
echo "</body></html>";
?>

pero aunque me detecta las sesiones y las cookies siempre me da en ambos casos el valor 1.

Alguna idea mas????ayuda!!!!!!! pofi
  #2 (permalink)  
Antiguo 16/06/2004, 09:26
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 15 años, 9 meses
Puntos: 8
Me fijo en una línea:

Código PHP:
echo $_SESSION["user_id"] OR $_COOKIE['cookvguser_id']; 
No lo he probado porque no tengo el PHP instalado, pero no comprendo la utilidad del 'OR'. Lo que debería imprimir en esa línea es un valor lógico, el resultado de comparar los dos valores. Es decir, que debería imprimir 'verdadero' o 'falso' (verdadero si está alguna de las dos variables y falso si no está ninguna). Te está imprimiendo un '1' (Que es verdadero) lo que quiere decir que al menos una de las variables está definida.

Según esto, lo hace bién si realmente están definidas.

Evidentemente, si quieres mostrar el contenido de las variables, deberías emplear alguna otra construcción del tipo
Código PHP:
if !isset($_SESSION["user_id"]) || empty($_SESSION["user_id"]){
   if !isset(
$_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"]){
      
//No están definidas
   
}else{
      
//Poner el valor de la cookie
      
echo($_SESSION['cookvguser_id']);
   }
}else{
   
//Está la de la sesión
   
echo($_SESSION["user_id"]);

Puede que mne equivoque porque no lo he probado .

Saludos
__________________
Kelpie
  #3 (permalink)  
Antiguo 17/06/2004, 05:12
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
muchas gracias :D creo que funciona :D luego te cuento :D
  #4 (permalink)  
Antiguo 17/06/2004, 05:33
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
me lanza el siguiente error :(

Parse error: parse error, unexpected '!', expecting '(' in c:\appserv\www\usuarios\user.php on line 2

codigo php:

Código PHP:
<?
if !isset($_SESSION["user_id"]) ||(empty($_SESSION["user_id"]){ 
   if !isset(
$_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"]){ 
   }else{ 
      echo(
$_SESSION['cookvguser_id']); 
   } 
}else{ 
   echo(
$_SESSION["user_id"]); 

?>

Gracias :D
  #5 (permalink)  
Antiguo 17/06/2004, 16:32
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
Up........Up.......Up.....
  #6 (permalink)  
Antiguo 17/06/2004, 19:20
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 14 años, 2 meses
Puntos: 4
aslo asi:

Código PHP:
<? 
if ((! isset($_SESSION["user_id"])) || (empty($_SESSION["user_id"])){ 
   if !isset(
$_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"]){ 
   }else{ 
      echo(
$_SESSION['cookvguser_id']); 
   } 
}else{ 
   echo(
$_SESSION["user_id"]); 

?>
  #7 (permalink)  
Antiguo 18/06/2004, 03:25
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
muchas gracias pero mira que me dice Parse error: parse error, unexpected '{' in c:\appserv\www\usuarios\user.php on line 2

raro...raro...raro......no se nota no que en errores voy de culo?:$
  #8 (permalink)  
Antiguo 18/06/2004, 04:00
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
if !isset($_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"])

te falta encerrarlo entre parentesis

if (!isset($_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"]))
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #9 (permalink)  
Antiguo 18/06/2004, 04:03
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
aparte veo que el if nohace nada, sería mejor poner esto

if (!(!isset($_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"]))){
echo($_SESSION['cookvguser_id']);
}

y quitaría el else
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #10 (permalink)  
Antiguo 18/06/2004, 04:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
esto es una maldicion

mirad:

Código PHP:
<? 
if ((! isset($_SESSION["user_id"])) || (empty($_SESSION["user_id"])){ 
  if (!isset(
$_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"])){ 
   }else{ 
      echo(
$_SESSION['cookvguser_id']); 
   } 
}else{ 
   echo(
$_SESSION["user_id"]); 

?>
pues me sigue dando elmismo error
  #11 (permalink)  
Antiguo 18/06/2004, 04:52
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
<?
if (!isset($_SESSION["user_id"]) || empty($_SESSION["user_id"])){
if (!isset($_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"])){
}else{
echo($_SESSION['cookvguser_id']);
}
}else{
echo($_SESSION["user_id"]);
}
?>
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #12 (permalink)  
Antiguo 18/06/2004, 06:05
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
de momento gracias a dios :D ya no da error....bueno gracias a dios no gracias a vosotros :D,ahora para poder mostrar la ID o el nick del user que tendria que hacer?toy muuu pes ^^uuuuuu lo hago con un "echo"?
  #13 (permalink)  
Antiguo 18/06/2004, 06:23
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Hombre, yo lo que haría es guardar el id del usuario en una variable y así podría meterlo sin dificultad en cualquier parte del html. Ejemplo:

<?
if (!isset($_SESSION["user_id"]) || empty($_SESSION["user_id"])){
if (!isset($_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"])){
}else{
$idUsuario=$_SESSION['cookvguser_id'];
}
}else{
$idUsuario=$_SESSION["user_id"];
}
?>

y despues en cualquier parte de tu página pondría:

<?=$idUsuario?>
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #14 (permalink)  
Antiguo 18/06/2004, 06:42
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
otia tio la has clavado esta tarde lo pruebo y te cuento :D muchas gracias :D
  #15 (permalink)  
Antiguo 18/06/2004, 10:57
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
no vaaaaaa!!!!!


no da ningun error pero no me coge la ID,mira lo tengo asi:

Código PHP:
<?
if (!isset($_SESSION["user_id"]) || empty($_SESSION["user_id"])){ 
if (!isset(
$_SESSION["cookvguser_id"]) || empty($_SESSION["cookvguser_id"])){ 
}else{ 
$idUsuario=$_SESSION['cookvguser_id']; 

}else{ 
$idUsuario=$_SESSION["user_id"]; 

?>

bienvenido tu ID es <?=$idUsuario?>
qe podria ser?::::

que podra ser???
  #16 (permalink)  
Antiguo 18/06/2004, 13:20
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Mira, yo lo haría así porque supongo que no hay id de usuario igual a 0.

<?
$idUsuario=$_COOKIE["cookvguser_id"];
if (!$idUsuario){
$idUsuario=$_SESSION["user_id"];
}
?>
bienvenido tu ID es <?=$idUsuario?>
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #17 (permalink)  
Antiguo 18/06/2004, 13:44
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
si te confirmo que no hay ninguna ID= 0 empizan con 1 ^^,el nuevo codigo va de coña :D pero solo con cookies,con las sesiones no em consigue la ID gracias tio te lo estas currando y mucho :D
  #18 (permalink)  
Antiguo 18/06/2004, 14:13
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Haces un session_start() en la página donde pillas el id de la sesión?
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #19 (permalink)  
Antiguo 18/06/2004, 14:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
aqui esta el codigo que mira si el usuario esta registrado y en caso de estarlo crea las sesiones/cookies.

Código PHP:
<?
$server
="localhost";
$database="BD";
$dbpass="mysql";
$dbuser="mysql";
$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)==0){
echo 
"No existe el login introducido";
} else {
$array=mysql_fetch_array($result);
if(
$array["password"]==crypt($pass,"semilla") ){
session_start();
$_SESSION["user_id"]=$array["user_id"];
$_SESSION["login"]=$array["login"];
session_register("_SESSION");
} else {
echo 
"Password incorrecto!";
}
 if(isset(
$_POST['autologin'])){
      
setcookie("cookvguser_id"$_SESSION["user_id"], time()+60*60*24*100"/");
      
setcookie("cookvglogin"$_SESSION["login"], time()+60*60*24*100"/");
      
setcookie("cookvgpass"$_SESSION["password"], time()+60*60*24*100"/");
}
}
?>
gracias por seguir ayudandome
  #20 (permalink)  
Antiguo 18/06/2004, 14:20
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Pero el session_start() lo tienes que poner aquí

<?
$idUsuario=$_COOKIE["cookvguser_id"];
if (!$idUsuario){
session_start();
$idUsuario=$_SESSION["user_id"];
}
?>
bienvenido tu ID es <?=$idUsuario?>
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #21 (permalink)  
Antiguo 18/06/2004, 14:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
love youuuu

me va de coña :D ahora solo me queda una pregunta:D
mira lo he cambiado un poco para que con las sesiones me detecte tambien el login :D:

Código PHP:
<? 
$idUsuario
=$_COOKIE["cookvguser_id"];
if (!
$idUsuario){
session_start();
$idUsuario=$_SESSION["user_id"]; 
$nick=$_SESSION["login"]; 
}
?>
bienvenido tu ID es <?=$idUsuario?>tu nick es <?=$nick?>
pero no se como podria hacerlo con las cookies :D

Gracias por todo :D parece que mi pesadilla a llegado a su fin xD
  #22 (permalink)  
Antiguo 18/06/2004, 14:52
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Código PHP:
<?
session_start
();

$idUsuario=$_SESSION["user_id"];
if (!
$idUsuario){
    
$idUsuario=$_COOKIE["cookvguser_id"]; 
}

$nick=$_SESSION["login"];
if (!
$nick){
    
$nick=$_COOKIE["cookvglogin"];
    }

?> 
bienvenido tu ID es <?=$idUsuario?>tu nick es <?=$nick?>
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #23 (permalink)  
Antiguo 18/06/2004, 14:55
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
TE AMOOOOOO gracias tio :D porfin a todo como quiero,osea erfecto :D una espina menos clavada :D
  #24 (permalink)  
Antiguo 18/06/2004, 15:02
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Para, para, que mi novia se cabrea

Me alegro de que te haya servido
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #25 (permalink)  
Antiguo 18/06/2004, 15:34
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
dile a tu novia que a sido la euforia ;)xD que no este celosilla ;)
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 22:06.