Foros del Web » Programando para Internet » PHP »

Ayuda con la creacion de cookies

Estas en el tema de Ayuda con la creacion de cookies en el foro de PHP en Foros del Web. Hola a todos, les comento que es la primera vez que me registro y comento en este foro, si bien ya lo conocia previamente (motivo ...
  #1 (permalink)  
Antiguo 16/02/2011, 07:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Ayuda con la creacion de cookies

Hola a todos, les comento que es la primera vez que me registro y comento en este foro, si bien ya lo conocia previamente (motivo mismo por el cual posteo aqui ya que siempre veo que dan una gran mano).

Les comento mi problemita: Resulta que estoy haciendo un sistema de registro y validacion de usuarios con su contraseña. El registro funciona de diez, pero resulta que al momento de setear las cookies en el ingreso me indica el error:

Warning: Cannot modify header information - headers already sent by (output started at /www/docs/sarazeroo.com.ar/public_html/ingresar.php:1) in /www/docs/sarazeroo.com.ar/public_html/ingresar.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /www/docs/sarazeroo.com.ar/public_html/ingresar.php:1) in /www/docs/sarazeroo.com.ar/public_html/ingresar.php on line 14
Ingreso exitoso, ahora sera dirigido a la pagina principal.


Aqui les indico puntualmente los archivos "ingresar.html" y "ingresar.php"

"ingresar.html"

Código HTML:
<FORM ACTION="ingresar.php" METHOD="post">
Usuario:
<input type="text" size="20" maxlegth="20" name="user"><br>
Password:
<input type="password" size="20" maxlegth="20" name="pass"><br>
<INPUT TYPE="submit" CLASS="boton" VALUE="Ingresar">
</FORM> 
"ingresar.php"

Código PHP:
      <?php
        
include("mysql.php");
    if(
trim($HTTP_POST_VARS["user"]) != "" && trim($HTTP_POST_VARS["pass"]) != "")
    {
      
$userN $HTTP_POST_VARS["user"];
      
$passN $HTTP_POST_VARS["pass"];
      
$result mysql_query("SELECT pass FROM Datos WHERE user='$userN'");
        if(
$row mysql_fetch_array($result))
        {
            if(
$row["pass"] == $passN)
            {
            
//90 dias dura la cookie
            
setcookie("ckuser",$userN,time()+7776000);
            
setcookie("ckpass",$passN,time()+7776000);
            echo 
"Ingreso exitoso, ahora sera dirigido a la pagina principal.";
            echo 
"<meta http-equiv='refresh' content='3;URL=/index.html'>";
            }
            else
            {
            echo 
"Password incorrecto";
            }
        }
        else
       {
       echo 
"Usuario no existente en la base de datos";
       }
      
mysql_free_result($result);
     }
     else
     {
      echo 
"Debe especificar un nick y password";
     }
      
mysql_close();
      
?>


Desde ya agradeceria mucho a quien me pueda dar una manito ya que estoy entrando en el mundo de este lenguaje ya que me es de gran interes.

Un saludo a todos y suerte.
  #2 (permalink)  
Antiguo 16/02/2011, 08:30
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Ayuda con la creacion de cookies

Amigo lo que esta pasando es que le pasas el control de la cabeza lectora al ECHO que dice echo "Ingreso exitoso, ahora sera dirigido a la pagina principal."; entonces el no podrá redirigir si esta imprimiendo en esa misma pagina ese mensaje... debes buscar la forma de que se almacene ese echo en una variable la pases a la otra pagina y la imprimas allá... o un if que muestre el mensaje y después redirija al index... ;) espero que eso te ayude
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 16/02/2011, 09:04
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Ayuda con la creacion de cookies

Cita:
Iniciado por jotaincubus Ver Mensaje
Amigo lo que esta pasando es que le pasas el control de la cabeza lectora al ECHO que dice echo "Ingreso exitoso, ahora sera dirigido a la pagina principal."; entonces el no podrá redirigir si esta imprimiendo en esa misma pagina ese mensaje... debes buscar la forma de que se almacene ese echo en una variable la pases a la otra pagina y la imprimas allá... o un if que muestre el mensaje y después redirija al index... ;) espero que eso te ayude
Te comento que eh probado eso, hasta eh tratado de hacerlo mediante javascript (desde ya excluido del codigo php cerrandolo y volviendolo a abrir .... ?> codigo java <?) y no da resultado alguno. No hay caso, hasta trate sacando cualquier echo...alguna otra idea del porque este problema?
  #4 (permalink)  
Antiguo 16/02/2011, 09:11
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Ayuda con la creacion de cookies

quitale esto:

Cita:
echo "Ingreso exitoso, ahora sera dirigido a la pagina principal.";
echo "<meta http-equiv='refresh' content='3;URL=/index.html'>";
y colocale un

Cita:
header("location:/index.html");
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 16/02/2011, 11:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Ayuda con la creacion de cookies

Lo realize y no hay caso:


Warning: Cannot modify header information - headers already sent by (output started at /www/docs/sarazeroo.com.ar/public_html/ingresar.php:1) in /www/docs/sarazeroo.com.ar/public_html/ingresar.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /www/docs/sarazeroo.com.ar/public_html/ingresar.php:1) in /www/docs/sarazeroo.com.ar/public_html/ingresar.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /www/docs/sarazeroo.com.ar/public_html/ingresar.php:1) in /www/docs/sarazeroo.com.ar/public_html/ingresar.php on line 15


el ingresar.php quedo asi



Código PHP:
      <?php
        
include("mysql.php");
    if(
trim($HTTP_POST_VARS["user"]) != "" && trim($HTTP_POST_VARS["pass"]) != "")
    {
      
$userN $HTTP_POST_VARS["user"];
      
$passN $HTTP_POST_VARS["pass"];
      
$result mysql_query("SELECT pass FROM Datos WHERE user='$userN'");
        if(
$row mysql_fetch_array($result))
        {
            if(
$row["pass"] == $passN)
            {
            
//90 dias dura la cookie
            
setcookie("ckuser",$userN,time()+7776000);
            
setcookie("ckpass",$passN,time()+7776000);
            
header("location:/index.html");
            }
            else
            {
            echo 
"Password incorrecto";
            }
        }
        else
       {
       echo 
"Usuario no existente en la base de datos";
       }
      
mysql_free_result($result);
     }
     else
     {
      echo 
"Debe especificar un usuario y password";
     }
      
mysql_close();
      
?>
  #6 (permalink)  
Antiguo 16/02/2011, 11:09
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Ayuda con la creacion de cookies

Dato adicional por las dudas...uso php5
  #7 (permalink)  
Antiguo 16/02/2011, 20:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda con la creacion de cookies

Antes de crear una cookie no puedes enviar nada al navegador, asegurate que no IMPRIMAS nada y que no haya nada antes de <?php ... Nisiquiera un ESPACIO EN BLANCO.
  #8 (permalink)  
Antiguo 16/02/2011, 20:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Ayuda con la creacion de cookies

lo unico que ven es todo lo que contiene la funcion, si hubiese un error indiquenmelo porfavor y no veo que imprima nada ni tenga espacios
  #9 (permalink)  
Antiguo 16/02/2011, 20:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda con la creacion de cookies

Segun lo imprimes en el codigo, si hay espacios antes de <?php
  #10 (permalink)  
Antiguo 17/02/2011, 00:07
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con la creacion de cookies

Almasenas la pass del usuario en una cookie :|

Esto no es seguro . . .
  #11 (permalink)  
Antiguo 17/02/2011, 00:13
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta

listo, funciono...gracias ron! ahora una consulta, ya que indican que no es seguro, como seria seguro? ademas, porque puede ser que el codigo que llama a "login.php" el cual mostrare a continuacion no marque error en un archivo pero en otro totalmente igual pero de distinto nombre si indica error.

ERROR:

Warning: Cannot modify header information - headers already sent by (output started at /www/docs/sarazeroo.com.ar/public_html/chatoso.php:1) in /www/docs/sarazeroo.com.ar/public_html/login.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /www/docs/sarazeroo.com.ar/public_html/chatoso.php:1) in /www/docs/sarazeroo.com.ar/public_html/login.php on line 14
Aqui el contenido solo para usuarios registrados

Archivo original "restringido.php" (FUNCIONANDO SIN ESE ERROR)

Código PHP:
<?php
      
include("mysql.php");
      include(
"login.php");

      if(
$loginCorrecto)
      {
      echo 
"Aqui el contenido solo para usuarios registrados";
      }
      else
      {
      echo 
"El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a esta area";
      }
?>
Archivo replica "chatoso.php" (INDICA EL ERROR PREVIO)

Código PHP:
<?php 
      
include("mysql.php");
      include(
"login.php");

      if(
$loginCorrecto)
      {
      echo 
"Aqui el contenido solo para usuarios registrados";
      }
      else
      {
      echo 
"El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a esta area";
      }
?>

Archivo "login.php"

Código PHP:
<?php
      $loginCorrecto 
false;
      
$userL;
      
$mailL;
      
$nameL

if(isset(
$HTTP_COOKIE_VARS["ckuser"]) && isset($HTTP_COOKIE_VARS["ckpass"]))
{
$result mysql_query("SELECT * FROM Datos WHERE user='".$HTTP_COOKIE_VARS["ckuser"]."' AND pass='".$HTTP_COOKIE_VARS["ckpass"]."'");

if(
$row mysql_fetch_array($result))
{
setcookie("user",$HTTP_COOKIE_VARS["ckuser"],time()+7776000);
setcookie("pass",$HTTP_COOKIE_VARS["ckpass"],time()+7776000);
$loginCorrecto true;
$userL $row["user"];
$mailL $row["mail"];
$nameL $row["name"];
}
else
{
//Destruimos las cookies.
setcookie("ckuser","x",time()-3600);
setcookie("ckpass","x",time()-3600);
}
mysql_free_result($result);
}
?>
Desde ya disculpen la insistencia y gracias por todo.

Agrego algo...ya trate de buscar 1000 veces xq podria pasar...y ni idea! :S

Última edición por GatorV; 17/02/2011 a las 10:37
  #12 (permalink)  
Antiguo 17/02/2011, 10:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Ayuda con la creacion de cookies

Lo mas gracioso es que funciona de 10 pero solo aparece el error! jajaj
  #13 (permalink)  
Antiguo 17/02/2011, 14:41
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con la creacion de cookies

Advertencia: no se puede modificar la información de cabecera - cabeceras ya enviado por chataso.php

Mostra el archivo mysql.php
  #14 (permalink)  
Antiguo 17/02/2011, 18:06
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Ayuda con la creacion de cookies

Disculpa que te pregunte, pero para que necesitas el archivo mysql.php?
  #15 (permalink)  
Antiguo 17/02/2011, 21:10
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con la creacion de cookies

Por ahi tenes algo que no debe ahi, ya que lo incluis en todos los archivos.
  #16 (permalink)  
Antiguo 17/02/2011, 23:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: Ayuda con la creacion de cookies

Yo también tenía un problema parecido. Lo solucioné agreagando:
Al principio:
Código PHP:
Ver original 
Y al final:
Código PHP:
Ver original 
Espero haberte ayudado!
Suerte
  #17 (permalink)  
Antiguo 20/02/2011, 01:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Ayuda con la creacion de cookies

Listo, ahi funciona todo ok, muchas gracias a todos chicos por su ayuda y paciencia, LA VERDAD QUE UNOS GRANDES!

Etiquetas: cookies
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:35.