Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Función rand y session error

Estas en el tema de Función rand y session error en el foro de PHP en Foros del Web. Tengo varias paginas: index.php ir.php index.php: Código PHP: <? session_start (); $_SESSION [ 'token' ]= rand ( 1 , 2 ); echo  $_SESSION [ 'token' ...
  #1 (permalink)  
Antiguo 24/03/2013, 08:44
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 14 años, 9 meses
Puntos: 2
Pregunta Función rand y session error

Tengo varias paginas:
index.php
ir.php

index.php:
Código PHP:
<?
session_start
();
$_SESSION['token']=rand(1,2);
echo 
$_SESSION['token'];
?>
resultado ejemplo:
1

ir.php:
Código PHP:
<?
session_start
();
echo 
$_SESSION['token'];
resultado ejemplo:
2

Siempre que guardo en una variable un rand, si por ejemplo pongo un rand entre 1 y 2. Si en index.php se muestra 1 en ir.php se muestra 2.

Pero necesito que en los dos se muestre o 1 o 2 (los números iguales)

PD: si pongo un rand mas grande, en ir.php se muestra un numero distinto a index.php

Que sucede?
  #2 (permalink)  
Antiguo 24/03/2013, 09:01
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Función rand y session error

... de lujo. si pongo estos códigos en archivos nuevos funciona como debe, pero si lo pongo donde necesito ya no va -.-''

Lo mejor es que si asigno la variable de sesión a una variable fija esta funciona como debe y muestra los mismos valores...

No entiendo la verdad lo que pasa...
  #3 (permalink)  
Antiguo 24/03/2013, 09:07
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: Función rand y session error

Podria pasar que estes ejecutando ese rand en otro lado.

ademas el rand entre 1 y 2 siempre deberia entregar 1 por que es de x hasta y-1.

prueba colocando simplemente $_SESSION['token']= 1;
y si cambia es porque tambien esta haciendo un rand en otro lado
  #4 (permalink)  
Antiguo 24/03/2013, 09:11
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Función rand y session error

el valor no cambia he puesto: $_SESSION['token']= 998
y el resultado de ambas paginas es: 998.

Es muy extraño.
  #5 (permalink)  
Antiguo 24/03/2013, 09:23
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: Función rand y session error

Raro.
podrias buscar la session en la carpeta tmp que deberia estar por la ruta que instalaste apache(mi ejemplo: C:\xampp\tmp)

para saber cual de todas esas sesiones es la tuya tienes que mirar el valor de la cookie de session (PHPSESSIONID por defecto)
seria algo asi desde php:
<?php
session_start();
echo $_COOKIE[session_name()];
?>

cuando tengas ese valor podrias buscar tu session en la carpeta deberia llamarse sess_XXXXX y con todo esto podrias ver cuando va cambiando el valor del token(deberia cambiar solo cuando visitas el index y una sola vez)
  #6 (permalink)  
Antiguo 24/03/2013, 09:30
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Función rand y session error

no estoy trabajando sobre xampp, sino sobre un hosting.
el problema tiene que estar en el resto de codigo. ya que si borro todo menos lo de rand, funciona.

Pero es que no hay nada que pueda interferir con la variable de sesion ya que ninguna se llama así.

Es como si generara 2 rand distintos y los guardara en distintas variables, otra logica no le veo pero bueno.
  #7 (permalink)  
Antiguo 24/03/2013, 09:35
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Función rand y session error

lo dicho. la pagina se carga varias veces pero no hay nada que aga algo asi...

probe poner el codigo:

$fp = fopen("ejemplo.txt","a");
fwrite($fp, $_SESSION['tokenid']);
fclose($fp);

y el resultado del archivo fue:
40
90

y respectivamente si que coinciden con los valores de las diferentes paginas.
index.php : 40
ir.php : 90

WTF?
  #8 (permalink)  
Antiguo 24/03/2013, 09:42
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: Función rand y session error

podrias escribir esto

fwrite($fp, $_SESSION['tokenid'] .$_SERVER['HTTP_REFERER']);

para saber quien cargo al index.php. no creo que sea tu propio index porque sino seria un bucle infinito y solo se carga 2 vecez.... puede ser tu navegador, algun antivirus o tu equipo.

avecez pasa que en el .htaccess redireccionamos al index cuando no encuentra algo(una imagen por ejemplo) y puede ser que no este encontrando una imagen o incluso el favicon.ico y lo redireccione al index.

Última edición por Rodrhigo; 24/03/2013 a las 09:51
  #9 (permalink)  
Antiguo 24/03/2013, 10:03
 
Fecha de Ingreso: junio-2009
Mensajes: 80
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Función rand y session error

MADRE MIA!
ya encontré el fallo pero es algo super raro la verdad.
Lo provocaba un css:
<div id="barra" style="background-image:url(''); top:0px; position: fixed; z-index: 90;">

lo cambie por:
<div id="barra" style="top:0px; position: fixed; z-index: 90;">

y a funcionar. wtf? background-image:url('');

Etiquetas: rand, session
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 13:13.