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

    Creare Registrazione-Login-Controllo dati Login

    Salve a tutti, sono alle prime armi e per iniziare ad allenarmi con la programmazione php e php(html embedded) volevo provare a creare un sito di Registrazione "E-mail e password", che si colleghi ad un altro per il login ed infine un ultimo che verifichi che i dati inseriti durante la registrazione siano uguali a quelli del login.
    Il messaggio d'errore che mi dà appena cerco di eseguire il login è questo:
    Fatal error: Array callback has to contain indices 0 and 1 in C:\Program Files (x86)\XAMPP\htdocs\Prove\Login2.php on line 2

    Ho usato tre file, un html e due php.

    Registrazione.html
    codice:
    <html>
            <head>
                <title>Registrazione</title>
            </head>
        <body>
            <form action="Login.php" method="post">
            Benvenuto, per iscriverti inserisci i dati qui sotto.<br>
            <table>
            <tr>
            <td>Username</td>
            <td><input type="text" name="username"></td>
            </tr>
            <td>Password</td>
            <td><input type="text" name="password"></td>
            </tr>
            </table>
            <input type="submit" value="Invia"> <input type="reset">
            </form>
        </body>
    </html>

    Login.php
    codice:
    <html>
        <body>
            <form action="Login2.php" method="post">
    <?php
    $username=$_POST['username'];
    $password=$_POST['password'];
    echo ("Registrazione eseguita con successo"). ("<br><br>");
    echo ("Per effettuare il login, digita nuovamente i dati qui sotto"). ("<br>");
    ?>
    Username <input type="text" name="username1"><br>
    Password <input type="text" name="password1"><br>
    <input type="submit" value="Login">
            </form>
        </body>
    </html>

    Login2.php
    codice:
    <?php
    $username=$_POST('username');
    $password=$_POST('password');
    $username1=$_POST('username1');
    $password1=$_POST('password1');
    if ($username1==$username && $password1==$password)
    {
    echo ("Benvenuto $username, la tua password &egrave $password");
    }
    else
    {
    print ("Username o password errate");
    }
    ?>

  2. #2
    La prossima volta modifica il messaggio anziché creare una nuova discussione.

    Ti dà errore perché hai usato le parentesi tonde anziché le quadre (errore di distrazione, suppongo, visto che in Login.php le hai messe giuste).

  3. #3
    Quote Originariamente inviata da ZioLuffio Visualizza il messaggio
    La prossima volta modifica il messaggio anziché creare una nuova discussione.

    Ti dà errore perché hai usato le parentesi tonde anziché le quadre (errore di distrazione, suppongo, visto che in Login.php le hai messe giuste).
    Ho appena corretto ma mi dà comunque errore, stavolta diverso:

    Notice: Undefined index: username in C:\Program Files (x86)\XAMPP\htdocs\Prove\Login2.php on line 2

    Notice: Undefined index: password in C:\Program Files (x86)\XAMPP\htdocs\Prove\Login2.php on line 3
    Username o password errate

  4. #4
    Questi sono 'Notice', significa che non sono errori fatali, infatti il tuo script continua lo stesso (non fa quello che vuoi, ma non si ferma). L'errore dice (traduzione): "Notifica: Indice non definito: username nel file blabla alla riga 2". Significa che $_POST['username'] non è definito. Gli elementi della variabile $_POST sono definiti solo dopo l'invio di un form (appena aperta la pagina, non sono definiti), quindi puoi usare isset o empty per verificare:
    Codice PHP:
    if(isset($_POST['username']) && isset($_POST['password'])){ ... 
    oppure
    Codice PHP:
    if(!empty($_POST['username']) && !empty($_POST['password'])){ ... 
    o ancora più semplicemente
    Codice PHP:
    if(!empty($_POST)){ ... 
    (invece non if(isset($_POST)) perché esiste sempre quindi dà sempre true)

  5. #5
    Quote Originariamente inviata da ZioLuffio Visualizza il messaggio
    Questi sono 'Notice', significa che non sono errori fatali, infatti il tuo script continua lo stesso (non fa quello che vuoi, ma non si ferma). L'errore dice (traduzione): "Notifica: Indice non definito: username nel file blabla alla riga 2". Significa che $_POST['username'] non è definito. Gli elementi della variabile $_POST sono definiti solo dopo l'invio di un form (appena aperta la pagina, non sono definiti), quindi puoi usare isset o empty per verificare:
    Codice PHP:
    if(isset($_POST['username']) && isset($_POST['password'])){ ... 
    oppure
    Codice PHP:
    if(!empty($_POST['username']) && !empty($_POST['password'])){ ... 
    o ancora più semplicemente
    Codice PHP:
    if(!empty($_POST)){ ... 
    (invece non if(isset($_POST)) perché esiste sempre quindi dà sempre true)
    Ho provato a sostituire il codice ma mi da sempre lo stesso errore... puoi implementare gia il codice dentro la pagina per favore?

  6. #6
    Quote Originariamente inviata da LoryJobs Visualizza il messaggio
    Ho provato a sostituire il codice ma mi da sempre lo stesso errore... puoi implementare gia il codice dentro la pagina per favore?
    No. Fai vedere il codice che stai usando.

  7. #7
    Quote Originariamente inviata da ZioLuffio Visualizza il messaggio
    No. Fai vedere il codice che stai usando.
    Codice PHP:
    <?php
    $username
    =$_POST['username'];
    $password=$_POST['password'];
    $username1=$_POST['username1'];
    $password1=$_POST['password1'];
    if(isset(
    $_POST['username']) && isset($_POST['password']))
    {
    echo (
    "Benvenuto $username, la tua password &egrave $password");
    }
    else
    {
    print (
    "Username o password errate");
    }
    ?>

    Questo è l'errore:

    Notice: Undefined index: username in C:\Program Files (x86)\XAMPP\htdocs\Prove\Login2.php on line 2

    Notice: Undefined index: password in C:\Program Files (x86)\XAMPP\htdocs\Prove\Login2.php on line 3
    Username o password errate
    Ultima modifica di LoryJobs; 12-10-2014 a 23:05

  8. #8
    Codice PHP:
    <?php
    if(isset($_POST['username']) && isset($_POST['password']))
    {
    $username=$_POST['username'];
    $password=$_POST['password'];
    $username1=$_POST['username1'];
    $password1=$_POST['password1'];
    echo (
    "Benvenuto $username, la tua password &egrave $password");
    }
    else
    {
    print (
    "Username o password errate");
    }
    ?>

  9. #9
    Quote Originariamente inviata da ZioLuffio Visualizza il messaggio
    Codice PHP:
    <?php
    if(isset($_POST['username']) && isset($_POST['password']))
    {
    $username=$_POST['username'];
    $password=$_POST['password'];
    $username1=$_POST['username1'];
    $password1=$_POST['password1'];
    echo (
    "Benvenuto $username, la tua password &egrave $password");
    }
    else
    {
    print (
    "Username o password errate");
    }
    ?>

    Adesso il codice va, non mi dà alcun errore ma pur inserendo gli stessi dati nella registrazione e nel login mi da "Username o password errate".
    Ultima modifica di LoryJobs; 13-10-2014 a 00:39

  10. #10
    Codice PHP:
    if(isset($_POST['username1']) && isset($_POST['password1'])) 
    $_POST['username'] e $_POST['password'] senza 1 non esistono più perché non li stai propagando da un file all'altro.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.