Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema con il login

  1. #1

    Problema con il login

    Salve a tutti ho un problema con la pagina html. Il problema consiste far comparire il div che ho creato quando il login è sbagliato, ma quando apro il file si apre il div che mi dice accesso fallito, pero se sbaglio i codici di accesso mi rida l'accesso negato se invece metto i dati giusti no ci sono problemi. il problema è quello che non appena apro la pagina il div che dice accesso negato non compaia.

    Ecco a voi il file php:

    codice:
    <html>
    <head>
    <title>acquisto</title>
    <meta charset="utf-8">
    <style>
    #errore{
    border: 1px solid #000000;
    background-color: #FF3300;
    margin-right: 550px;
    padding-left: 10px;
    padding-bottom:20px;
    border-radius: 10px;
    position: fixed;
    display: none;
    
    
    }
    #errore p{
    color: #FFFFFF;
    }
    </style>
    </head>
    <body>
    <div id="form">
    <form method="post" action="">
    
    
    <table border="0"  align="right">
    <tr>
    <td><input type="text" placeholder="Email" name="username" ></td>
    <td><input type="password" placeholder="Password" name="password" ></td>
    <td><input type="submit" value="Login"  ></td>
    <td><input type="reset" value="Annulla"></td>
    </tr>
    <tr>
    <td><a href="registrazione.html"  id="registrati">Registrati</a></td>
    </tr>
    </table>
    
    
    </form>
    </div>
    <?php
    $hostname="localhost";
    $username = "root";
    $password = "root";
    $conn=mysql_connect($hostname,$username,$password);
    if(!$conn) 
    die("errore nella connessione");
    
    
    $dbname="prova";
    $db=mysql_select_db($dbname);
    $user = $_POST['username'];
    $pass = $_POST['password'];
    $query="Select * from login where username = '$user' and password = '$pass'";
    $risultato = mysql_query($query);
    if(!$risultato) {
        print"errore nel comando";
        exit();
    }
    $riga = mysql_fetch_array($risultato);
    
    
    if(!$riga) {
            echo"<script>document.getElementById('errore').style.display='block';</script><div id='errore'>
    <p >!Accesso fallito. Email o password sbagliata.</p>
    </div>";
        }
        else {
    
    
            $cognome = $riga['cognome'];
            $nome= $riga['nome'];
            echo"<script>document.getElementById('form').style.display='none';</script><p align='right'>benvenuto $nome $cognome</p>";
            }
            mysql_close($conn);
    ?>
    </body>
    </html>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Il fatto è che hai tutto nello stesso file.
    Quando apri la pagina, tutto il codice viene eseguito, quindi ovviamente anche il controllo sul db, che viene effettuato con dati vuoti, non trova niente e ti dice che il login è andato male.

    Devi mettere una struttura di controllo che verifichi se il form è stato inviato oppure se è la prima volta che accedi alla pagina.
    Se è la prima volta che accedi deve mostrare il form, se invece è stata ricaricata dopo aver inviato il form deve tentare il login.

    Codice PHP:
    // se il form non è stato compilato
    if ( ! isset( $_POST['username'] ) )
    {
        
    // mostra il form
    }
    else 
    // il form è stato inviato
    {
        
    // tenta il login


Tag per questa discussione

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.