Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Cancellare un cookie

  1. #1
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732

    Cancellare un cookie

    Beh proprio non ci riesco, e siccome sono niubbo del php non capisco dove sbaglio.


    codice:
    <?php
    if(isset($_COOKIE["login"])){
     echo "ciao " . $_COOKIE["login"];
    }
    elseif(isset($_POST["invia"])){
     $user = $_POST["user"];
     $pw = $_POST["pw"];
     if($user == "sgurbat" && $pw == "ciao"){
      setcookie("login",$user);
    	echo "ciao " . $user;
     }
    }
    if(isset($_COOKIE["login"])){
      if(isset($_POST["disconnetti"])){
    	 $user = $_COOKIE["login"];
       setcookie("login",$user);
      }
    }
    ?>
    il codice è la prima "cosa che c'è nella pagina poi viene tutto l'html"

    il form che richiama lo script è:

    codice:
      <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
      <input type="text" name="user" />
    
    
      <input type="text" name="pw" />
    
    
      <input type="submit" name="invia" value="invia" />
    	<input type="submit" name="disconnetti" value="disconnetti" />
      </form>
    il cookie viene settato e letto correttamente ma quando clicco su "disconnetti" ho il seguente mex di errore:

    Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\test\test.php:3) in C:\Programmi\Apache Group\Apache2\htdocs\test\test.php on line 16

    la linea 16 è quella con il setcookie di cancellazione.

  2. #2
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    uhm uhm ho messo il setcookie di cancellazione in una seconda pagina e funziona, quindi (scusate l'ignoranza) non posso mettere due setcookie() nella stessa pagina per crearlo e distruggerlo giusto?

    oppure c'è un modo?

  3. #3

    Re: Cancellare un cookie

    infatti c'è un output ("ciao ".$_COOKIE['login']) prima del secondo cookie
    reimposta meglio gli if
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  4. #4
    Perche' hai un echo che sicuramente viene inviato al browser nella prima if/elseif....

    Inverti la sequenza degli if. Metti il secondo al posto del primo.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5

    Re: Re: Cancellare un cookie

    Originariamente inviato da boomboom69
    infatti c'è un output ("ciao ".$_COOKIE['login']) prima del secondo cookie
    reimposta meglio gli if
    Ciao boomboom69 .... buon anno.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    grazie dei consigli adesso provo a seguirli ma vi anticipo subito che ho già risolto così:

    questo codice nella pagina di login
    codice:
    <?php
    if(isset($_COOKIE["login"])){
     echo "ciao " . $_COOKIE["login"];
    }
    elseif(isset($_POST["invia"])){
     $user = $_POST["user"];
     $pw = $_POST["pw"];
     if($user == "sgurbat" && $pw == "ciao"){
      setcookie("login",$user);
    	echo "ciao " . $user;
     }
    }
    ?>
    
    <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
      <input type="text" name="user" />
    
    
      <input type="text" name="pw" />
    
    
      <input type="submit" name="invia" value="invia" /> | disconnetti
      </form>
    quest'altro nella pagina che cancella il cookie

    codice:
    <?php
    if(isset($_COOKIE["login"])){
      // cancella il cookie
      setcookie("login","");
      // torna alla pagina di login
      header("Location: test.php");
    }	
    ?>

  7. #7

    Re: Re: Re: Cancellare un cookie

    Originariamente inviato da piero.mac
    Ciao boomboom69 .... buon anno.
    baci&abbracci per uno strepitoso 2005
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  8. #8
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Originariamente inviato da piero.mac
    Perche' hai un echo che sicuramente viene inviato al browser nella prima if/elseif....

    Inverti la sequenza degli if. Metti il secondo al posto del primo.


    vero questo mi era proprio sfuggito

    adesso funziona bene anche così

    [CODE]
    <?php
    if(isset($_COOKIE["login"])){
    if(isset($_POST["cancella"])){
    setcookie("login","");
    header("Location: test.php");
    }
    }

    if(isset($_COOKIE["login"])){
    echo "ciao " . $_COOKIE["login"];
    }
    elseif(isset($_POST["invia"])){
    $user = $_POST["user"];
    $pw = $_POST["pw"];
    if($user == "sgurbat" && $pw == "ciao"){
    setcookie("login",$user);
    echo "ciao " . $user;
    }
    }
    ?>
    [CODE]

    in una sola pagina con due pulsanti di submit

    thanks again

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.