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

    Problema autenticazione

    Salve questa la mia pagina login.php

    Codice PHP:
    <div class="title">Autenticazione</div><hr size="1">
    <? 
    // SESSIONE
    session_start();
    // SE SONO SETTATE LOGIN E PASSWORD 
    if(isset($_POST["user"]) && isset($_POST["pass"])) { 
    // CONTROLLA NELLA TABELLA USER
    $query    "SELECT * FROM utenti";
    $result   mysqli_query($query);
    while(
    $data mysqli_fetch_array($result)) { 
        if(
    $_POST["user"] == $data["user"] && $_POST["pass"] == $data["pass"]) { 
            
    $logged true;
            
    //
            
    $_SESSION["id"]          = $data["id"];
            
    $_SESSION["real"]        = $data["reale"];
            
    $_SESSION["email"]       = $data["email"];
            
    $_SESSION["level"]       = $data["livello"];
            } 
        }    


        
    // LOGGED
        
    if ($logged){
            
    header("Location: main.php");
            
    ob_end_flush();
            } else {
    ?>
            <form id="form" name="form" method="post" action="index.php">
            <div class="message">ERRORE DI AUTENTICAZIONE !!!</div>
            <hr size="1" color="#E6E6E6"; >
            <p>User:<br /><input name="user" type="text" id="user" /></p>
            <p>Pass:<br /><input name="pass" type="password" id="pass" /></p>
            <p><hr size="1" color="#E6E6E6"; ></p>
              <!-- SUBMIT -->   
              <input class="record" type="submit" value="ENTRA" />
            </form>
    <? ?>


    <? } else { ?>
        <form id="form" name="form" method="post" action="index.php">
        <p>User:<br /><input name="user" type="text" id="user" /></p>
        <p>Pass:<br /><input name="pass" type="password" id="pass" /></p>
        <p><hr size="1"></p>
        <!-- SUBMIT -->   
        <input class="record" type="submit" value="ENTRA" />
        </form>
    <? ?>
    il proble è che quando inserisco nome utente e password mi restituisce errore di autenticazione ....non capisco dove sta l'errore.

  2. #2
    ciao.

    non so se il problema può essere quello, ma in genere per il login non si scorre tutta la tabella, ma si fa una query "esatta":
    codice:
    SELECT * FROM utenti WHERE username = INPUT_NOME AND password = INPUT_PASSWORD
    e controlli se ti restituisce un recordo oppure no.
    in base a quello poi la tua applicazione si comporterà di conseguenza.

    poi guarda questo link: https://www.php.net/manual/en/functi...ord-verify.php
    io uso questo meccanismo.

    infine, cerca di non usare le funzioni mysqli_*, che nelle ultime versioni di php sono deprecate in favore di PDO.
    non so se addirittura dalla versione 8 le hanno proprio levate.

  3. #3
    Grazie e pensa che originariamente il codice era con le funzioni mysql che ho modificato con mysqli...sono rimasto abbastanza arretrato ;-P
    Ultima modifica di kiko4791; 26-03-2021 a 12:59

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,171
    Cioè carichi ogni volta tutti gli utenti che hai nel DB se uno vuole loggarsi?
    Metti una clausola WHERE nella query indicando username e password che cerchi, se la query ti restituisce un risultato, l'hai trovato, altrimenti se ne restituisce 0 username o password sono errati.

    Edit: sono stato anticipato.
    Earth2: 3QCNSPFQUH

  5. #5
    Giustissimo ma in questo caso ho al massimo due tre utenti che si devono loggare. Di questi uno come amministratore e gli altri due come user

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,171
    Quote Originariamente inviata da kiko4791 Visualizza il messaggio
    Giustissimo ma in questo caso ho al massimo due tre utenti che si devono loggare. Di questi uno come amministratore e gli altri due come user
    Non fa niente, le cose è sempre meglio farle nel modo migliore fin da subito, che poi se aumentano gli utenti devi correre ai ripari.
    Earth2: 3QCNSPFQUH

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.