Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema con variabile

  1. #1
    Utente di HTML.it L'avatar di Lque
    Registrato dal
    Oct 2007
    Messaggi
    177

    Problema con variabile

    Sto cercando di fare una pagina di ringraziamento, il problema che ci sono circostanze in cui si va a ripetere. Vi faccio il mio esempio. Nella home page ho messo questa variabile:

    Codice PHP:
    session_start();
    $_SESSION['grazie'] = "true";
    ?> 
    Poi in grazie.php ci ho messo questo:
    Codice PHP:
    session_start();
    if(
    $_SESSION['grazie'] == "true"){
        
        
    $_SESSION['grazie'] = "false";
        
        echo 
    "GRAZIE!";
        
    }  else {

        echo 
    "FALSE";
        

    Se aggiorno la pagina mi mostra correttamente 'false' ma se torno sulla home page mi risetta la variabile su 'true' e mi "ringrazia" di nuovo. Vorrei che la variabile venga settata una volta sola! Cos se torno su grazie.php mi rida false. Il risultato che vorrei evitare il duplicarsi del "grazie".
    Lque

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,076
    Prima di impostare a true la variabile, devi verificare se gi esiste con isset(), se gi esiste non fai niente perch vuol dire che da l ci sei gi passato, altrimenti la imposti a true.
    Come fai ora, viene sempre impostata a true senza controllare nulla.

    P.S invece di metterci le stringhe "true" "false" usa proprio i booleani, non ha senso fare in quel modo l, anche i confronti sarebbero pi semplici e semanticamente corretti.

  3. #3
    Utente di HTML.it L'avatar di Lque
    Registrato dal
    Oct 2007
    Messaggi
    177
    Come' l'if per vedere se esiste?
    Lque

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    53
    Impostare per la prima unica volta su true.
    codice:
    //file crea sessione 
    if(session_start()) {
    if(!isset($_SESSION['grazie'])) {
    $_SESSION['grazie'] = true;
    echo 'grazie';
    }
    $_SESSION['grazie'] = false;
    }
    Solo l'esistenza positiva indica che true, la variabile $_SESSION in rare circostanze potrebbe non esistere
    Il codice si evolve su due file uno creazione e l'altro verifica.
    codice:
    //file crea sessione 
    if(session_start()) {
    if(!isset($_SESSION['grazie'])) {
    $_SESSION['grazie'] = true;
    }
    }
    //fine file crea sessione
    
    //verifica su altro file se esiste $_SESSION['grazie']
    if(session_start()) { //recuperare sessione
    if(isset($_SESSION['grazie'])) {
    if($_SESSION['grazie'] === true) {
    echo 'grazie';
    }
    }
    $_SESSION['grazie'] = false;
    }
    //fine verifica su altro file
    Ultima modifica di darbula; 27-11-2020 a 11:54

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 © 2021 vBulletin Solutions, Inc. All rights reserved.