Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    If ed header inesistenti

    Quest'anno ho iniziato a studiare php e mi è stato chiesto ieri di simulare un'iscrizione, un login e un logout con l'utilizzo delle sessioni ma per qualche strano motivo gli if del codice non vengono visti, tranne l'ultimo, cioè il controllo sul recordset della query.

    Codice PHP:
    <?php     
                session_start
    ();     
                
    $user=trim($_POST["user"]);     
                if(
    $user=="" )     
                {         
                      
    header("Location: Login_form.php?errorcode=2");         
                    }        
                 
    $password=trim($_POST["pass"]);     
                 if(
    $password=="")     
                 {         
                     
    header("Location: Login_form.php?errorcode=3");     
                  }        
                   
    $conn=mysql_connect("localhost","root","")or die("Connessione non effettuata");         
                   
    mysql_select_db("Utenti");     
                   
    $query="SELECT nome FROM utenti where user= ".$user ." AND password=" .$password ."";     
                   if(!
    $ris=mysql_query($query))     
                   {         
                               
    header("Location: Login_form.php?errorcode=1");         
                       }     
                    
    $_SESSION["user"]=$user?>

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, hai provato a cambiare i controlli?

    codice:
                if( isset($_POST["user"]) && $_POST["user"]=='' || !isset($_POST["user"]) )     
                {         
                      header("Location: Login_form.php?errorcode=2");         
                    }   
    ....

  3. #3
    A meno che $_POST debba ricevere il valore 0 conviene usare empty() al posto di isset(). Poi si deve controllare "prima" di passarla alla variabile e non dopo.

    Codice PHP:
    <?php     
                session_start
    ();

                if(!empty(
    $_POST["user"])) {
                
    $user trim($_POST["user"]);     
                }  else {         
                           
    header("Location: Login_form.php?errorcode=2");
                           exit;         
                          }
    C'e' poi un errore di valutazione nel controllo del risultato della query:

    Codice PHP:
    if(!$ris=mysql_query($query)) 
    sara' false solo in caso di errore della query, ma non lo sara' in caso di nessun record trovato. Nessun record non e' un errore e si controlla contando il numero delle righe estratte perche' $ris conterra' comunque un resource id# in caso di query valida.

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

  4. #4
    Grazie ho risolto con un'altra soluzione, ma proverò le vostre soluzioni così da imparare metodi più efficenti, grazie anche del consiglio sul controllo della query , hai pienamente ragione ma sono alle prime armi ancora non conosco il php a un livello base... grz ancora se mi dite come chiudere la discussione mi fate un favore XD

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.