Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [PHP] Operatori logici: Come utilizzare && in maniera corretta?

    Ci sto uscendo matto:

    Codice PHP:
    <?php $mionome=$_POST["nome"]; $mail=$_POST["mail"]; $pwd=$_POST["codice"]; if(($mionome="Giovanni")&&($mail="sytry82@gmail.com")&&($pwd="codice")) { echo "Ciao ".$mionome; echo "
    "
    ; echo "Benvenuto nel mio Sito"; } else { echo "Utente sconosciuto"; } ?>
    Allora, nel form a cui il listato fa riferimento inserisco i dati di accesso volutamente in maniera errata: "Franco" al posto di "Giovanni", eccetera. Ma il sito agisce come se fossero tutti corretti. Sicuramente sono io che sbaglio a livello logico, qualcuno sa spiegarmi per favore?

    P.s
    Ho già letto la pagina apposita sugli operatori logici di questo sito.


    Aggiorno:


    Inserisco il listato modificato come suggeritomi:

    Codice PHP:
    <?php $mionome=$_POST["nome"]; $mail=$_POST["mail"]; $pwd=$_POST["codice"]; if(($mionome=="Giovanni")&&($mail=="sytry82@gmail.com")&&($pwd=="codice")) { echo "Ciao ".$mionome; echo "
    "
    ; echo "Benvenuto nel mio Sito"; } else { echo "Utente sconosciuto"; } ?>
    Adesso con le uguaglianze (==) anche se metto tutti i dati corretti se ne frega alla grande.
    Insomma sta avvenendo il problema contrario: Anche inserendo tutti i dati corretti mi da "utente sconosciuto". Preciso che ho svuotato pure la cache.

  2. #2
    Codice PHP:
    ...
    if ((
    $mionome == "Giovanni") && ($mail == "sytry82@gmail.com") && ($pwd == "codice")) {
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Originariamente inviato da satifal
    Codice PHP:
    ...
    if ((
    $mionome == "Giovanni") && ($mail == "sytry82@gmail.com") && ($pwd == "codice")) {
    ... 
    Grazie!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    è capitato più volte e sottolineo qui... usando "=" nei confronti anzichè "==" (sono due operatori diversi, in PHP) succede p.es.:

    if ($a='7') { print 'ok'; } else { print 'no'; };

    $a=7 è un'assegnamento, non un confronto, quindi ad $a è assegnato il valore 7 e l'intera operazione è considerata "valida", quindi TRUE e non può in pratica mai essere FALSE (in questo caso)

    if ($a=='7') { print 'ok'; } else { print 'no'; };

    $a==7 è un confronto e sarà TRUE se $a vale 7, FALSE altrimenti.

  5. #5
    Ragazzi, adesso pero' mi da "utente sconosciuto" anche se inserisco tutti i dati esatti.

    Inserisco il listato modificato come suggeritomi:

    Codice PHP:
    <?php $mionome=$_POST["nome"]; $mail=$_POST["mail"]; $pwd=$_POST["codice"]; if(($mionome=="Giovanni")&&($mail=="sytry82@gmail.com")&&($pwd=="codice")) { echo "Ciao ".$mionome; echo "
    "
    ; echo "Benvenuto nel mio Sito"; } else { echo "Utente sconosciuto"; } ?>
    Adesso con le uguaglianze (==) anche se metto tutti i dati corretti se ne frega alla grande.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    verifica di aver scritto giusto anche le maiuscole e poi stampa a video i valori prima di confrontarli:

    Codice PHP:
    <?php
    $mionome
    =$_POST["nome"];
    $mail=$_POST["mail"];
    $pwd=$_POST["codice"];
    var_export($mionome);print'
    '
    ;
    var_export($mail);print'
    '
    ;
    var_export($pwd);print'
    '
    ;
    if ((
    $mionome=="Giovanni") && ($mail=="sytry82@gmail.com") && ($pwd=="codice")) {
    echo 
    "Ciao ".$mionome;
    echo 
    "
    "
    ;
    echo 
    "Benvenuto nel mio Sito";
    } else {
    echo 
    "Utente sconosciuto";
    }
    ?>

  7. #7
    Originariamente inviato da eiyen
    verifica di aver scritto giusto anche le maiuscole e poi stampa a video i valori prima di confrontarli:
    Peggio ancora!
    ... mi da tutto assieme:

    'Giovanni '
    'sytry82@gmail.com'
    'codice'
    Utente sconosciuto

    Nessuna traccia dei dati previsti nei comandi "echo".

  8. #8
    C'è uno spazio dopo Giovanni.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Originariamente inviato da satifal
    C'è uno spazio dopo Giovanni.
    Cioè?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Nel tuo dump:

    'Giovanni ' <----- qui c'è uno spazio finale di troppo!!
    'sytry82@gmail.com'
    'codice'
    Utente sconosciuto

    Vuol dire che quando digiti i dati c'è uno spazio in coda: cancellalo!

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