Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Duda No me funciona el setcookie
#1
Hola estaba creando un login con php, todo funciona correcto menos el setcookie y no se porqué.

Aqui dejo el código:

Código PHP:
<?php 
    

    
if($_POST['logearte']){
        
$user $_POST['user'];
        
$password $_POST['password'];

        
$sql "SELECT * FROM perfiles WHERE nombre LIKE '{$user}' AND password LIKE '{$password}' LIMIT 1";
        
$result $conn->query($sql);

        if(
$result->rowCount() != 1){
            echo 
'Error en la combinación';
        }else{
            
setcookie("mycookie""This cookie tastes good"time()+3600);
            echo 
'Logeado';
        }
    }

    
?>
#2
Sería genial expadieras un poco ese "no me funciona".

Puedes verificar si la cookie se ha creado con:

Código PHP:
$cookieC setcookie("mycookie""This cookie tastes good"time()+3600);
var_dump($cookieC$_COOKIE); 

$cookieC debería regresar bool(true) y la variable superglobal $_COOKIE un array con 'mycookie' como llave.

Si no es así verifica que tu navegador acepte cookies y que al crearla te encuentres en el mismo dominio o uno superior.
WWW
#3
setcookie me devuelve bool(false) y la variable superglobal me devuelve un array con 'PHPSESSID' como llave.
#4
Cita:If output exists prior to calling this function, setcookie() will fail and return FALSE.

No muestras el script completo, así que asegúrate de no imprimir con echo(), printf(), etc., antes de usar setcookie(). Siendo más concretos, elimina o mueve cualquier impresión de pantalla antes de if($_POST['logearte']). Referencia: setcookie().

Si realmente necesitas imprimir un mensaje, asigna ese mensaje en una variable (ej. un array $msg = []) e imprímela después de usar setcookie, por ejemplo:

Código PHP:
$msg = [];

/*
Para añadir
$msg[] = 'Error 1';
$msg[] = 'Mensaje 1';
*/

setcookie(...);

if (
count($msg) > 0) {
 foreach (
$msg as $m) {
 echo 
$m.PHP_EOL;
 }


PS: Dado que tu script esta en desarrollo, deberías acivar los errores con error_reporting() y revisar tu error_log para obtener más información de los errores.
WWW
#5
Vale creo que ya se porqué no funciona, tengo ese script en un archivo aparte, es decir login.php. Lo que he hecho ha sido importar ese archivo a mis páginas. ¿Sabes una forma de que pueda importarlo sin que de ese error?
#6
cual es el codigo que utilizas para importarlo?, include('archivo.php'); ???
WWW
#7
Usa require_once() o include_once() aunque no veo cómo se relaciona con tu problema. Sin el script completo sólo se puede intentar adivinar Gran sonrisa

Hay dos posibles razones por las que setcookie() regrese false: que imprimas antes de llamar a esta función; o que la cookie ya haya sido creada, aunque si en $_COOKIE no se encuentra como indicas sólo puede ser por la primer razón.

Por otra parte, si estas usando PDO sería mejor usaras fetch() en lugar de colocar un 'LIMIT 1' en tu consulta.

Dicho sea de paso no deberías usar LIKE en tu consulta, eso es peligroso, incluso si es sólo para probar, la seguridad viene desde antes de la implementación.
WWW
#8
Al ver que no funciona he pensado varias opciones y una me ha servido la dejo abajo. Muchas gracias por la ayuda

Lo que he hecho ha sido cargar el archivo primero y luego colocarlo en una variable para colocarlo donde quiera:

Código PHP:
ob_start();
include 
'archivo.php';
$echoed_content ob_get_clean();


echo 
$echoed_content

Tengo otra duda, ¿Es normal que me cree una cookie llamada 'PHPSESSID'?
#9
@DipDip , claro que sí, es como PHP mantiene el registro y seguimiento de la sesión. 

Puedes checar esto también: http://stackoverflow.com/questions/13709...-phpsessid
Cualquier duda, pregunta, comentario... Aquí estoy Guiño
#10
¿Entonces no hace falta que la elimine?


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  slide no me funciona luisalvare22 5 532 11-08-2016, 11:36 AM
Último mensaje: Vicen
  Enviar emails con PHP no funciona del todo bseca 10 1,165 30-12-2014, 09:50 PM
Último mensaje: bseca
  Colorear PHP [funciona] classes 1 565 06-06-2012, 11:04 PM
Último mensaje: AbaddonOrmuz
  Por que no funciona? CSS soporteptc 2 1,240 21-04-2012, 07:10 PM
Último mensaje: Juliens



Usuarios navegando en este tema: 1 invitado(s)