Visualizzazione dei risultati da 1 a 9 su 9

Discussione: problema con if else!!

  1. #1

    problema con if else!!

    Ciao a tutti sto cercando di realizzare una semplice pagina per inserire una password!
    Spiego..
    Ho due dati che provengono da un form (pagina dove inserisco ID e pass)
    verifico se nel data base testuale i dati coincidono con quelli inviati.
    Se coincidono allora creo il cookie (nome) e rimando ad una pagina dove mi dice benvenuto (nome)
    altrimenti (ELSE) ritorna alla pagina per inserire la ID e Pass.
    Mi da errore su else.

    Parse error: syntax error, unexpected T_ELSE in

    metto il codice!

    dove sbaglio?
    Codice PHP:

    $a
    =$_POST[nome];$b=$_POST[cognome];$c=$_POST[indirizzo];



    //consultazione database

    $my_database_txt 'prod.txt'

    $array_righi file($my_database_txt); 

    foreach(
    $array_righi as $key => $cliente){list($nome$cognome,$indirizzo,$acquisti) = explode("|"

    $cliente);  

    if (
    $nome == $a && $cognome ==$b){ 

    header('location:http://www.mia pagina.php');
     
    }}

    else

    {
    header('location:http://www.mia pagina 2.php');

     } 

  2. #2
    Perdonami ma si vede immediatamente ad occhio che l'if è nel foreach e l'else fuori
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    ciao Satifal!
    Quindi devo includere l else nel ciclo foreach?


    $a=$_POST[nome];$b=$_POST[cognome];$c=$_POST[indirizzo];



    //consultazione database

    $my_database_txt = 'prod.txt';

    $array_righi = file($my_database_txt);

    foreach(
    $array_righi as $key => $cliente)

    {list(
    $nome, $cognome,$indirizzo,$acquisti) = explode("|",

    $cliente);

    if (
    $nome == $a && $cognome ==$b){

    header('location:http://www.mia pagina.php');



    else

    {
    header('location:http://www.mia pagina 2.php');

    }
    }}


  4. #4
    chiudendo l IF prima nel seguente modo..

    $a=$_POST[nome];$b=$_POST[cognome];$c=$_POST[indirizzo];



    //consultazione database

    $my_database_txt = 'prod.txt';

    $array_righi = file($my_database_txt);

    foreach(
    $array_righi as $key => $cliente){list($nome, $cognome,$indirizzo,$acquisti) = explode("|",

    $cliente);

    if (
    $nome == $a && $cognome ==$b){

    header('location:http://www.mia pagina.php');

    }

    else

    {
    header('location:http://www.mia pagina 2.php');

    } }

    mi torna sempre sulla pagina due sia che id e pass errate che giuste!


    non ne esco..ormai sto soltanto mettendo a caso le parentesi! il ragionamento che seguo quando uso questo IF sembra non andare !



  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non puoi accavallare 2 o più costrutti o metti tutto dentro o metti tutto fuori, a seconda di cosa vuoi fare.
    Ad esempio, nel tuo caso, dentro il foreach io ci metterei solo una variabile inizializzata (prima del foreach) a false e modificata in true se la corrispondenza viene trovata, poi subito dopo il foreach ci metterei un if/else per prendere la decisione in base al true/false della variabile di riferimento.

  6. #6
    Ciao Alhazred
    in questo modo..

    <?
    $a=$_POST[nome];
    $b=$_POST[cognome];
    $c=$_POST[indirizzo];


    //consultazione database
    $my_database_txt = 'prod.txt';
    $array_righi = file($my_database_txt);
    $pass= false ;
    foreach($array_righi as $key => $cliente){
    list($nome, $cognome,$indirizzo,$acquisti) = explode("|", $cliente);


    if ($nome == $a && $cognome ==$b){
    $pass = true;
    }
    }
    if ($pass = true) {



    header('location:http://www.pagina1.php');
    }


    else {


    header('location:http://www.pagina2.php');


    }




    ?>

  7. #7
    pero' in questo modo mi torna sempre alla pagina 1.

  8. #8
    if ($pass = true) { Manca un uguale!!!

    if ($pass == true) {
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Risolto! grazie a tutti e due!
    grazie per la pazienza

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.