Visualizzazione dei risultati da 1 a 7 su 7

Discussione: problema con form html

  1. #1

    problema con form html

    Salve, vorrei passare come attributo value del tag input una variabile php. Di seguito riporto il codice php e successivamente quello HTML
    Codice PHP:
    <?php
    session_start
    (); //memorizzare UID nella variabile di sessione

    $_SESSION['ID']=$riga[UID];

    session_write_close(); /*da chiudersi appena memorizzate le variabili di sessione
                     permette di fare eseguire alla sessione più operazioni in pipeline
                 (ad esempio la visualizzazione dei risultati di query diverse su più pagine)*/



    $mysqli = new mysqli('localhost','root','','DB');
    if (
    mysqli_connect_error())
        die(
    "Errore durante la connessione");

    if (isset(
    $_POST['submit']))
    {
        if (isset(
    $_POST['username']) && isset($_POST['password']) && $_POST['username'] != '' && $_POST['password'] != '')
        {
                
    $username $_POST['username'];
                
    $password $_POST['password'];
                
                
    //SQL Injection
                
    $username stripslashes($username);
                
    $password stripslashes($password);
                
    $username $mysqli->real_escape_string($username);
                
    $password $mysqli->real_escape_string($password);


                
    $risultato $mysqli->query("SELECT UID, UserName, Password, DataScadenza FROM Account WHERE UserName = '$username' AND Password = sha1('$password')"); //sha1 on query
                
    $riga $risultato->fetch_assoc();

                
    $data date("Y-m-d H:i:s");
                
    $scadenza $riga[DataScadenza];
                
    $data1 strtotime($data);
                
    $data2 strtotime($scadenza);

                if (
    $username == $riga[UserName])
                {
                    if (
    strlen($password)>=8)
                    {    
                            if (
    $data1 <= $data2)
                            {
                                
    header('Location: [url]http://localhost/prova/home.php[/url]');
                                
    $risultato->close();
                            }
                            else
                            {    
                                
    $errore='Account scaduto - Per maggiori informazioni contattare l\'amministratore';
                                
    $risultato->close();
                            }
                    }
                    else
                    {
                        
    $errore='Password non valida (minimo 8 caratteri)'//account.php
                        
    $risultato->close();
                    }
                }
                else
                {
                    
    $risultato->close();
                    
    header('Location: [url]http://localhost/prova/loginerr.php[/url]');
                }
        }
        else
        {
            if(isset(
    $risultato))
                
    $risultato->close(); //tale oggetto è definito fino a questo punto
            
    header('Location: [url]http://localhost/prova/loginerr.php[/url]');
        }
    }    
    if(isset(
    $errore))
        echo
    "$errore";
    $mysqli->close();
    ?>
    <?php
    include("control.php");
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Errore durante il login</title>
    <style type="text/css">
    body,p,a,span,div,input,legend,h1,h2,h3,h4,h5,h6,l i,dd,dt,th,td{
    font-family:Arial, Helvetica, sans-serif;
    }
    body,p,a,span,div,input,legend,li,dd,dt,th,td{
    font-size:10pt;
    }
    #loginform {
    width:300px;
    margin:auto;
    }
    #loginform fieldset{
    padding:10px;
    }
    #loginform legend{
    font-weight:bold;
    font-size:9pt;
    }
    #loginform label{
    display:block;
    height:2em;
    background-color:#E7E7E7;
    padding:10px 10px 0;
    }
    #loginform input {

    margin-right:20px;
    border:1px solid #999999;
    float:right;
    clear:right;
    background:#CCCCCC;
    }
    #loginform input:focus,#loginform input:hover {
    border:1px solid #333333;
    }
    .error{
    color:red;
    }
    .centrato{
    display:block;
    position:absolute;
    top:50%;
    left:50%;
    margin:-150px 0 0 -150px;
    }

    </style>

    </head>
    <body>
    <div class="centrato">
    <form id="loginform" method="post" action="<?php $_SERVER['PHP_SELF']?>">
    <fieldset>
    <legend>Nome utente o password errati!</legend>



    Inserisci nome utente e password per accedere al portale</p>
    <div class="error"><label for="username"><input type="text" name="username" tabindex="1" id="username" value="<?php if(isset($_POST['username'])) echo $_POST['username']; else echo"errore"; ?>" />username:
    </label>
    <label for="password"><input type="password" name="password" tabindex="2" id="password" />password:
    </label>
    </div>
    <label for="submit">
    <input name="submit" type="submit" id="submit" tabindex="4" value="Log in" />
    </label>
    </p>

    </fieldset>
    </form>
    </div>
    </body>
    </html>

    Purtroppo la variabile $_POST['username'] non risulta definita? Come mai? Qualche soluzione?
    Here Comes The Music Ecstasy

  2. #2
    da quel poco che ho capito ti dovrebbe stampare sempre errore questo script :| se carichi la pagina sempre errore dovrebbe darti -.-

  3. #3
    Originariamente inviato da goikiu
    da quel poco che ho capito ti dovrebbe stampare sempre errore questo script :| se carichi la pagina sempre errore dovrebbe darti -.-
    Si fin qui c'ero arrivato. Vorrei sapere però perchè non risulta definita $_POST['username'], visto che lo scriptino funziona alla perfezione, salvo l'attributo value del tag input...
    Here Comes The Music Ecstasy

  4. #4
    Beh, il form dovrebbe essere di login =| te ci stampi forzatamente la scritta Errore se non è settata no?

  5. #5
    Si ma dovrebbe stampare lo username errato inserito dall'utente. Quel controllo che alla fine stampa errore l'ho usato solo per vedere se la variabile risultava settata o meno...
    Here Comes The Music Ecstasy

  6. #6
    quindi il "login" non viene effettuato? oppure dov'è l'errore specifico?

  7. #7
    Allora, vengono inseriti nome utente e password per loggarsi. Se uno dei due è sbagliato carica loginerr.php che è una pagina identica a quella che ho postato salvo il fatto che le diciture username e password sono in rosso e che nel campo username dovrebbe comparire quello precedentemente inserito dall'utente. Solo che questo username non compare.
    Here Comes The Music Ecstasy

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.