Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [PHP] problema cookie

  1. #1

    [PHP] problema cookie

    Ciao a tutti!
    Avevo creato un sistema di login con un cookie che memorizzava nick e pass e li usava per fare il log in.
    Il codice lo avevo messo dentro una pagina vuota senza alcuna struttura HTML. Finchè era li funzianava alla grande. Ora però ho creato un lay per questo sito e il sistema di log in non va più.
    In praticolare nel momento in cui vado a creare il cookie, il controllo che avevo fatto mi dice che è impossibile impostare il cookie.

    Codice PHP:
    function login(){


        
    header("Refresh: 2; URL=index.php");
        
    $visite time();
        
    $cookie_string "{$_POST['nickname']}&{$_POST['pass']}&$visite";
        if (
    setcookie("genb"$cookie_stringtime()+3600)) {
        echo 
    "Logging in..."
        }else{
        echo 
    "cookie NON impostato";
        }
        } 
    Chiaramente mi viene scritto cookie NON impostato.
    ho provato a fare echo $_POST['nickname'] e funziona tutto correttamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    io proverei così

    function login(){
    $visite = time();
    $cookie_string = $_POST['nickname'].$_POST['pass'].$visite";
    if (setcookie("genb", $cookie_string, time()+3600)) {
    echo "Logging in...";
    }
    else{
    echo "cookie NON impostato";
    }
    header("Refresh: 2; URL=index.php");
    }

  3. #3
    non va cmq....Io però non riesco a capire una cosa. Allora: ora ho due pagine con il sistema di login, una semplice (quella iniziale senza grafica) e una complessa con grafica bla bla....
    Esse usano la stessa libreria e in particolare usano la stessa funzione che ora vi posto, per vedere se esiste il cookie e quindi dare il log in automatico o il form per fare log in.
    La funzione molto semplice è questa:

    Codice PHP:
    function auth_get_status(){

        if(isset(
    $_COOKIE['genb']) && $_COOKIE['genb'] != ''){
            
    $status "AUTH_LOGGED"
        } else { 
            
    $status "AUTH_NOT_LOGGED"; }
        return 
    $status;

    Nella pagina semplice se creo il cookie e faccio
    Codice PHP:
    $status auth_get_status();
    echo 
    $status
    mi viene scritto AUTH_LOGGED.
    se invece cancello il cookie mi viene AUTH_NOT_LOGGED.

    Nella complessa creando il cookie dall'altra pagina (cosa che dovrebbe funzionare poichè il nome è lo stesso e nonostante il codice sia identico) mi rimane sempre AUTH_NOT_LOGGED.


    Inoltre come se non bastasse ho un altro problema:
    Avevo creato una piccola funzione che mi permettesse di incrementare e visualizzare il numero delle visite di ogni singolo utente.

    Codice PHP:
    function contatore_visite_utente(){
    global 
    $_CONFIG;
    $user_info auth_get_info();
    $row auth_get_info_db();

    //guarda quante visite ci sono
    $visite $row['visite'];
    //incrementa di uno il numero di visite
    $visite ++;
    //scrive il numero delle visite
    echo $visite;

        
    //memorizza sul database il nuovo numero di visite
        
    $query "UPDATE ".$_CONFIG['table_utenti']."
        SET visite = '
    $visite' WHERE nickname='".$user_info[0]."' and pass=MD5('".$user_info[1]."')";
        
    mysql_query($query);


    Nella pagina vecchia questo funziona normalmente. Nella nuova mi aumenta di 2 il numero ogni volta che aggiorno.

  4. #4
    Vi prego, ditemi che potete aiutarmi

  5. #5
    Ho sistemato un po' il codice e mi è comparso questo messaggio d'errore:

    Warning: Cannot modify header information - headers already sent by (output started at C:\WM\www\db\index.php:122) in C:\WM\www\db\auth.lib.php on line 70

    Ho fatto una ricerca e ho trovato che devo mettere:

    Codice PHP:
    ob_start();
        
    header("Refresh: 2; URL=index.php");
        
    setcookie ("genb"""time() - 3600); 
    solo che il messaggio persiste

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    Prima dell'header non ci dev'essere nessun tipo di output...

  7. #7
    Ma con ob_start(); non si dovrebbe risolvere?

  8. #8
    Ma quindi prima di ogni Echo devo mettere setcookie? la cosa Vale anche se prima dell'header ho del codice HTML non scritto dentro script PHP?

  9. #9
    UP

  10. #10
    Originariamente inviato da flacchio
    Ma quindi prima di ogni Echo devo mettere setcookie? la cosa Vale anche se prima dell'header ho del codice HTML non scritto dentro script PHP?
    ovvio!!!

    assolutamente prima di qualsiasi output!!!!!
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.