Visualizzazione risultati 1 fino 7 di 7

Discussione: non funziona setcookie()

  1. #1
    Guest

    Predefinito non funziona setcookie()

    poco tempo fa ho chiesto per un errore nel seguente script ma questo nn essendo un errore mi è sembrato opportuno aprire un nuovo topic
    Codice PHP:
    <p align="center"><h3>Firma il registro utenti!</h3></p>
    <?php
    if(empty($_COOKIE['firma'])) {
    ?>
    <form method="post" action="inserimento dati.php">
    <div align="center">
    <input type="text" name="firma" />&nbsp;&nbsp;<input type="submit" value="Firma" />
    </div>
    </form>
    <?
    } else {
    print
    'Hai gia firmato con il nome ' . $_COOKIE['firma'];
    }
    ?>
    <p align="center"><a href="registro utenti.php">Registro utenti</a></p>
    pagina di risposta
    Codice PHP:
    <?php
    $firma
    =$_POST["firma"];
    if(
    $firma == null) {
    echo
    "<div align=\"center\">Hai dimenticato il nome!</div>";
    } else {
    setcookie("firma", $firma,time()+999999999999, "webeasy.altervista.org");
    $fp=fopen("firme.txt","a");
    fputs($fp, ", $firma");
    fclose($fp);
    header("location: http://webeasy.altervista.org/");
    }
    ?>
    L'obbietivo dello script è di mettere una firma del visitatore in un file txt ma allo stesso tempo impedisce di inserire piu di una firma settando un cookie
    veniamo al problema:
    tutto funziona corretamente ma nn viene settato il cookie come posso risolvere il problema?
    un grazie in anticipo a tutti quelli che risponderanno
    ciao

  2. #2
    Guest

    Predefinito

    Togli l'ultimo parametro della funzione setcookie ("webeasy.altervista.org")


    Ciao!

  3. #3
    Guest

    Predefinito

    gia provato ma nn funziona lo stesso

  4. #4
    Guest

    Predefinito

    Penso che sia perchè è già stato fatto un'output prima di setcookie(). Prova così:
    Codice PHP:
    <?php
    $firma
    =$_POST["firma"];
    if(
    $firma != null) {
    setcookie("firma", $firma,time()+999999999999, "webeasy.altervista.org");
    $fp=fopen("firme.txt","a");
    fputs($fp, ", $firma");
    fclose($fp);
    header("location: http://webeasy.altervista.org/");
    } else {
    echo
    "<div align=\"center\">Hai dimenticato il nome!</div>";
    }
    ?>
    More info: http://it2.php.net/setcookie
    Ultima modifica di gabryhacker : 04-12-2008 alle ore 20.06.39

  5. #5
    Guest

    Predefinito

    l'avevo letto su un libro che bisognava impostare per prima cosa i cookie ma nn mi veniva in mente come fare
    grazie mille adesso provo subito

    edit:
    no nn funziona lo stesso
    altre idee?
    Ultima modifica di webeasy : 04-12-2008 alle ore 20.17.55

  6. #6
    Guest

    Predefinito

    Non centra niente. Quella è una condizione non verranno mai eseguite entrambe, il codice era corretto.
    Il problema è sono nella funzione setcookie...
    cambiala in questo modo
    Codice:
    setcookie("firma", $firma,time()+3600*24*365);
    Il valore che avevi inserito tu era troppo grande. (365 giorni credo che bastano),

  7. #7
    Guest

    Predefinito

    ah vero nn sapevo ci fosse un limite di tempo
    ho messo quel numero gigante perche volevo impedire per il piu tempo possibile di firmare di nuovo (che comunque serve ben a poco visto che basta cancellare il cookie)
    grazie mille a tutti e tre problema risolto

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •