• Lunes 23 de Diciembre de 2024, 03:49

Autor Tema:  Problema muy extraño con COOKIES  (Leído 2088 veces)

th3r0rn

  • Miembro activo
  • **
  • Mensajes: 49
  • Nacionalidad: mx
    • Ver Perfil
    • http://imgeek.net
Problema muy extraño con COOKIES
« en: Jueves 12 de Noviembre de 2009, 01:36 »
0
Tengo un problema con un script, no me crea la cookie, ya lo hice en mi localhost y lo subi a mi servidor y nada, lo pase a varios amigos y les pasa lo mismo. Solo a un amigo dice que si le crea la cookie bien, y no entiendo por que. Lo puso en su localhost el cual es: 200.87.221.49/stuff/sessiones/cookies.php
Muestro mi codigo:
COOKIES.PHP
Código: PHP
  1. <?PHP
  2. if (!$_COOKIE["idiomaUser"]){
  3.     $pagina="pediridioma.html";
  4. }
  5. elseif($_COOKIE["idiomaUser"]=="sp"){
  6.     $pagina="spanish.html";
  7. }
  8. else{
  9.     $pagina="english.html";
  10. }
  11. ?>
  12. <html>
  13.     <head>
  14. <script language="javascript" type="text/javascript">
  15. location.href="<?php echo($pagina); ?>";
  16. </script>
  17.     </head>
  18. </html>
  19.  
PedirIdioma.html
Código: Text
  1. <html>
  2.     <head>
  3.         <title>Pedir Idioma</title>
  4.         <script language="javascript" type="text/javascript">
  5.             function enviarIdioma(idioma){
  6.                 location.href="grabarCookie.php?idiomaUser="+idioma;
  7.             }
  8.         </script>
  9.     </head>
  10.  
  11. <body>
  12.     <a href="javascript:enviarIdioma('sp');">Castellano</a>
  13.     <a href="javascript:enviarIdioma('en');">Ingles</a>
  14. </body>
  15. </html>  
  16.  
GrabarCookies.php
Código: PHP
  1. <?PHP
  2. //Se graba la cookie con una valides de 24 horas.
  3. setcookie("idiomaUser",$idiomaUser,time()+86400);
  4. ?>
  5. <html>
  6.     <body>
  7.         <script language="javascript" type="text/javascript">
  8.     location.href="cookies.php";
  9.     </script>
  10.     </body>
  11. </html>
  12.  
Si lo desean, pueden bajar los archivos ya comprimidos en:
phpmexico.net/sessiones.tar
Espero puedan ayudarme ya que segun todo esta bien en mi codigo :(
Saludos

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: Problema muy extraño con COOKIES
« Respuesta #1 en: Jueves 12 de Noviembre de 2009, 02:18 »
0
Pue mira, no he probado los archivos pero a simple vista veo un problema. En el archivo PedirIdioma.html tienes código JavaScript que invoca a la página grabarCookie.php pasándole por GET una variable, nada malo con esto pero en el archivo grabarCookie.php nunca tomas ese parámetro usando $_GET.

Creo que lo que has querido hacer en grabarCookie.php es:
[php:2c103n2d]
  1.  
  2. setcookie("idiomaUser",$_GET["idiomaUser"],time()+86400);
  3.  
[/php:2c103n2d]

Me parece que has querido programar en PHP como si Register_Globals estuviera en On, mala idea, siempre de debe programar como si estuviera en Off.

th3r0rn

  • Miembro activo
  • **
  • Mensajes: 49
  • Nacionalidad: mx
    • Ver Perfil
    • http://imgeek.net
Re: Problema muy extraño con COOKIES
« Respuesta #2 en: Jueves 12 de Noviembre de 2009, 02:44 »
0
Citar
Me parece que has querido programar en PHP como si Register_Globals estuviera en On, mala idea, siempre de debe programar como si estuviera en Off.
Hola. gracias por el consejo, pero me podrias decir por que???
Sobre el codigo, deje la direccion ip de mi amigo, con el archivo, ayi puedes ingresar y segun por lo q veo si corre el programa :(
----
EDIT:
HOLA!!! ya agregue el $_GET["idiomaUser"] y si me funcionoo!!
Muchas gracias, me puedes decir por que debo prgoramar con registres globals desactivado??
Muchas gracias

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: Problema muy extraño con COOKIES
« Respuesta #3 en: Jueves 12 de Noviembre de 2009, 06:27 »
0
Cita de: "th3r0rn"
EDIT:
HOLA!!! ya agregue el $_GET["idiomaUser"] y si me funcionoo!!
Muchas gracias, me puedes decir por que debo prgoramar con registres globals desactivado??
Muchas gracias
Register_globals controla la registración automática de variables. Cuando Register_globals está activado (on) las variables superglobales automáticamente se registran como variables de usuario de forma tal que si PHP detecta pase de parámetros GET o POST crea esas variables ahorrándote tener que crearlas tú. Por ejemplo si tienes un script PHP tal como test.php y lo invocas pasándole parámetros tal como http://example.com/test.php?variable=valor PHP creará automáticamente una variable $variable y le asigna el valor "valor". Esto podría ser cómodo para el programador pero implica un agujero de seguridad pues considera este código:
[php:14ut78ds]
  1.  
  2. if ($loggin == true) {
  3.   echo "Mostrar mensaje secreto";
  4. }
  5.  
[/php:14ut78ds]
$loggin al no estar inicializado a ningún valor específico se presta para que un usuario malicioso le ponga un valor invocando el script con parámetros ?loggin=1 (1 evalua true, por lo tanto el if es verdadero).

Por el contrario con register_globals apagado (off) esto no ocurre y tienes que tomar los parámetros GET y POST explícitamente usando las variables superglobales $_GET y $_POST. En el ejemplo anterior con register_globals en off tendrás un aviso de variable no definida aún cuando se invoque el script con parámetros con el mismo nombre.

Cuando se dice que se debe programar como si register_globals estuviera en off se quiere decir que inicialices todas las variables explícitamente y no asumas que PHP las inicializará por ti. ¿Se entiende?.

th3r0rn

  • Miembro activo
  • **
  • Mensajes: 49
  • Nacionalidad: mx
    • Ver Perfil
    • http://imgeek.net
Re: Problema muy extraño con COOKIES
« Respuesta #4 en: Viernes 13 de Noviembre de 2009, 00:13 »
0
Hola, si ya entendi muchas gracias, solo una duda, el register globals creo que lo tengo en off :
Código: Text
  1. ; NOTE: applications relying on this feature will not recieve full
  2. ;       support by the security team.  For more information please
  3. ;       see /usr/share/doc/php5-common/README.Debian.security
  4. ;
  5. register_globals = Off
  6.  
  7.  
O estoy mal?  :unsure:

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: Problema muy extraño con COOKIES
« Respuesta #5 en: Sábado 14 de Noviembre de 2009, 17:07 »
0
Lo tienes off (por eso no te funcionaba el programa como esperabas).