Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema con if php

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    12

    Problema con if php

    Ho un problema con questo codice:

    Codice PHP:
    <?php     
        
    // recupera valori dal form
        
    $username=$_POST['username'];
        
    $password=$_POST['password'];
        
    // connetti al database
        
    $stringconnect="Driver={Microsoft Access Driver (*.mdb)}; ";
        
    $stringconnect.="Dbq=C:\Program Files\server2go\htdocs\AutoLanza\adminuser.mdb; ";
        
    $connect = @odbc_connect($stringconnect"""");
        
    // recupera tabelle utenti e admin
        
    $administrator=odbc_exec($connect,"select * from admin");
        
    $user=odbc_exec($connect,"select * from user");
        
        
    // recupera dati admin (unici perciò niente while)
        
    $usernamead=odbc_result($administrator,2);
        
    $passwad=odbc_result($administrator,3);
        
    //controlla se l'admin vuole entrare
        
    if($username==$usernamead && $password==$passwad)
            
    header('location:areaAdmin.php');

        while(
    odbc_fetch_row($user))
        {
            
    $usernameut odbc_result($user,2); //prendi la colonna 2 da user
            
    $passwut odbc_result($user,3); // prendi la colonna 3 da user
            
    if($username==$usernameut && $password==$passwut)
                {
                    
    odbc_close($connect);
                    
    header('Location:areaUser.php');
                }
        
    odbc_close($connect);
    ?>
    In poche parole, nonostante la sintassi sia giusta, la stessa if che uso per controllare se i dati inseriti sono quelli dell'admin, per l'utente non funziona. Sembra che la condizione non sia vera e dunque non entra nella if.
    Il fatto è che la condizione è per forza vera. Ho controllato più e più volte, e anche se i dati nel database sono uguali ai dati inseriti nel form, non riesco ad entrare nella if.
    Ho provato annidando due if, ma non funziona lo stesso.

    Qualcuno sa dirmi come risolvere?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Intanto la sintassi non è corretta, non hai chiuso la graffa del while.

    Poi non si fa così il controllo sul login, è uno spreco di risorse raccogliere tutti gli utenti dal db e poi ciclare su tutti per vedere se c'è un riscontro.

    Ti consiglio quest'altro metodo.

    Unica tabella per tutti, admin e utenti normali.
    Ad ogni utente sarà associato anche un campo "permessi" che puoi valorizzare come vuoi, ad esempio 0 = admin, 1 = utente.
    Al login fai una query del tipo:
    Codice PHP:
    $query "SELECT permesso FROM users WHERE username='".$_POST['username']."' AND password='".$_POST['password']."'";
    $result = ....; 
    a questo punti controlli se $result è vuota vuol dire che username e password non sono nel db, quindi il login fallisce, se $result contiene il valore 0 si è loggato l'admin, se contiene 1 si è loggato un utente.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    12
    Grazie, vedrò di modificare..
    Penso che la graffa manchi solo perché quando ho incollato ho modificato alcune cose per non stare a scrivere tutto il codice.

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.