Ver Mensaje Individual
  #9 (permalink)  
Antiguo 16/10/2007, 14:39
ThunderFx
 
Fecha de Ingreso: diciembre-2003
Ubicación: Campehce, Mexico
Mensajes: 325
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Problema con caracter "?" en cadena ...

huuuu realmente no entiendo que es lo que pasa!!
brother, agradezco realmente el interes que tienes en ayudarme, muchas gracias... comenzemos con toda la explicación del script ... solamente en esa pagina la cookie como que fantagoricamente vuelve a existir

Tengo un archivo principal que es inicio.php, en el tengo los includes:
Código PHP:
<?
ob_start
();
?>
.... codigo html ...
        <div id="incluir">
    <?
    
switch($go)
    {
    default:
    echo 
"x";
    break; case 
"preguntar":
    include(
'preguntar.php');
    break; case 
"registrar":
    include(
'registrar.php');
    break; case 
"login":
    include(
'login.php');
    break; case 
"categorias":
    include(
'preguntas.php');
    }
    
?>
    </div>
... </html>
<? ob_end_flush(); ?>
Ahora bien, el archivo donde al visualizarme la variable toma el valor es en preguntas.php, que lo miro desde la direccion (.htaccess) "RewriteRule ^categorias/([^/]+)/([^/]+)/([^/]+) inicio.php?go=categorias&seccion=$1&sub=$2&preg=$3 [NC,L]" ....

preguntas.php
Código PHP:
<?
include("security.php");
// Pequeña funcion para que pueda ver si el login es correcto o no, en este caso de la URL del htacess, $user y $contrasena toman el valor de la cookie que se al registrar la misma.
  
if($loginCorrecto){
    echo 
"$user y $contrasena";
    } else {
    echo 
"in";
    }
Ahora de igual manera visualizo el mismo archivo preguntas.php pero desde otra direccion del htacess, que es la siguiente:
RewriteRule ^categorias/([a-z_a-z]+)/([a-z_a-z]+) inicio.php?go=categorias&seccion=$1&sub=$2 [NC]
<-- Aquí, la variable de $user deja de existir y la funcion no se válida...

Ahora aqui pongo el archivo de security.php
Código PHP:
<?
include("conexion.php");
$loginCorrecto false;

if(isset(
$HTTP_COOKIE_VARS["Nick"]) && isset($HTTP_COOKIE_VARS["Pass"])){

   
$result mysql_query("SELECT * FROM usuarios WHERE usuario='".$HTTP_COOKIE_VARS["Nick"]."' AND contrasena='".$HTTP_COOKIE_VARS["Pass"]."'");

   if(
$row mysql_fetch_array($result)){

    
setcookie("Nick",$HTTP_COOKIE_VARS["Nick"],time()+7776000,'/');
    
setcookie("Pass",$HTTP_COOKIE_VARS["Pass"],time()+7776000,'/');
    
$user $HTTP_COOKIE_VARS["Nick"];
    
$contrasena $HTTP_COOKIE_VARS["Pass"];
    
$loginCorrecto true;

   } else {
    
setcookie("Nick","x",time()-3600);
    
setcookie("Pass","x",time()-3600);
   }
}

?>
Ahora bien, para dar una conclusión en general, lo que esta pasando que en esa direccion ^categorias/([^/]+)/([^/]+)/([^/]+) inicio.php?go=categorias&seccion=$1&sub=$2&preg=$3 [NC,L]" las variables de user y contrasena toman el valor de la cookie, cuando en teoria las cookies deberian estar destruidas, en su caso tener otro valor que es el que asignamos al salir.php.

salir.php
Código PHP:
<?
include("security.php");

    
$u $HTTP_COOKIE_VARS["Nick"];
    
$p $HTTP_COOKIE_VARS["Pass"];

echo 
"u: $user  p: $p";

    
setcookie("Nick","x",time()-3600,'/');
    
setcookie("Pass","x",time()-3600,'/');

    
$newu $HTTP_COOKIE_VARS["Nick"];
    
$newp $HTTP_COOKIE_VARS["Pass"];

echo 
"newu: $newu  newp: $newp";

?>
Curiosamente en el archivo de salir.php realmente ninguna variable toma valor, osea tienen valor de nada "" ... lo que trato de hacer ahi es que primero me imprima las variables con el valor actual y luego que me imprima los nuevos valores, pero ahi curiosamente ninguna variable toma valor.

Espero puedas ayudarme brother, estoy tratando de solucionar el problema y no le encuentro salida. De verdad muchas gracias.