Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Undefined array key

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2023
    Messaggi
    5

    Undefined array key

    Buongiorno a tutti,
    chiedo scusa in anticipo per la mia ignoranza, mi sto approcciando da poco al mondo della programmazione.
    Stavo facendo una piccola esercitazione da sola, ho creato un form con codice html e un database su Xamp, volevo fare in modo che le informazioni inserite nel form andassero direttamente poi aggiunte al database, ma nello scrivere il codice php mi sa che ho fatto qualche errore perchè non funziona.

    Vi posto i codici html e php, e l'errore che mi da.

    grazie a chi mi aiuterà

    codice HTML:
    <main class="container">            
       <h1 class="alert alert-primary text-center background-color: #D2E3F3" role="alert">Registrati qui <i class="bi bi-arrow-down"></i></h1>   
    
       <form action="form2.php" method="post">              
             <div class="form-group">               
                <label for="nome">Nome</label>               
                <input type="text" class="form-control" id="nome" placeholder="Nome" required>    
             </div>              
             &ensp;              
             <div class="form-group">               
                <label for="cognome">Cognome</label>               
                <input type="text" class="form-control" id="cognome" placeholder="Cognome" required>                   </div>              
             &ensp;              
             <div class="form-group">              
                <label for="nascita">Data di nascita</label>               
                <input type="date" class="form-control" id="nascita" placeholder="Data di nascita" required>             </div>              
             <br>                   
             <label for="genere">Genere</label>            
             <div class="form-floating">                  
                <select class="form-select" id="genere"  required>                
                      <option selected>Indica il genere</option>                    
                      <option value="M">Maschile</option>                  
                      <option value="F">Femminile</option>                    
                      <option value="X">Non dichiarato</option>                 
                </select>              
             </div>
             &ensp;          
             <div class="form-group">              
                 <label>Indirizzo Email</label>                
                 <input type="email" class="form-control" id="email" placeholder="Indirizzo email" required>              </div>             
              &ensp;              
             <div class="form-group">                
                 <label for="password">Password</label>                
                 <input type="password" class="form-control" id="password" placeholder="Password" required>           </div> 
             <br>                           
             <button type="submit" class="btn btn-primary">Submit</button>             
              &ensp;            
        </form>                                    
    </main>
    Codice PHP:
    $nome=$_POST['Nome'];        
    $cognome=$_POST['Cognome'];        
    $nascita=$_POST['Data_di_nascita'];        
    $genere=$_POST['Genere'];       
    $email=$_POST['Email'];        
    $password=$_POST['Password'];     
       
    $sql="insert into tbl_informazioni (Nome,Cognome,Data_di_nascita,Genere,Email,Password)values('$nome','$cognome','$nascita','$genere','$email','$password')";       

    $conn=mysqli_connect("localhost","form","password","form");  
      if(
    $conn===false) {exit("Errore: impossibile stabilire una connessione " mysqli_connect_error());}       else {echo "Connesso a database " mysqli_get_host_info($conn)."<br>\n";}     
       
    $risultato=mysqli_query($conn,$sql);  
      if(
    $risultato===false) {exit("Errore: impossibile stabilire una connessione " mysqli_error($conn));}
      else {echo 
    "Inserimento su database avvenuto<br>\n";}        

    mysqli_close($conn); 
    questo è l'errore che mi da:
    Warning: Undefined array key "Nome" in C:\xampp\htdocs\form2.php on line 7

    Warning: Undefined array key "Cognome" in C:\xampp\htdocs\form2.php on line 8

    Warning: Undefined array key "Data di nascita" in C:\xampp\htdocs\form2.php on line 9

    Warning: Undefined array key "Genere" in C:\xampp\htdocs\form2.php on line 10

    Warning: Undefined array key "Email" in C:\xampp\htdocs\form2.php on line 11

    Warning: Undefined array key "Password" in C:\xampp\htdocs\form2.php on line 12
    Connesso a database localhost via TCP/IP

    Fatal error: Uncaught mysqli_sql_exception: Unknown column 'Data_di_nascita' in 'field list' in C:\xampp\htdocs\form2.php:20 Stack trace: #0 C:\xampp\htdocs\form2.php(20): mysqli_query(Object(mysqli), 'insert into tbl...') #1 {main} thrown in C:\xampp\htdocs\form2.php on line 20

  2. #2
    I campi di input devono avere l'attributo "name" per essere inviati al server.

  3. #3
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    I campi di input devono avere l'attributo "name" per essere inviati al server.
    No, anche l'id va bene.
    Il problema è che sono "CaSe SensItive"...nel form lei li identifica come "nome", "cognome" ecc, lato Php come "Nome", "Cognome" ecc

    In ultimo, il campo Data_di_nascita non esiste nel Db in quella tabella

  4. #4
    Quote Originariamente inviata da Dascos Visualizza il messaggio
    No, anche l'id va bene.
    Convinto tu...

    codice:
    <form method="get">
    <input id="field" value="test">
    <input type="submit">
    </form>
    Rispetto a:

    codice:
    <form method="get">
    <input name="field" value="test">
    <input type="submit">
    </form>
    Per testare, guarda la query string generata.

  5. #5
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Convinto tu...
    Scusa, hai ragione, è solo che sono abituato, per mia comodità, a usare ajax/xajax/Javascript per fare le submit e in quel caso specifico non è necessario, ancorchè consigliabile, usare i "name" :-)

    L'errore di base è comunque quello che ho segnalato....usa "Nome" lato php ma dichiara "nome" lato html, forse ingannata dal valore dell'attributo "placeholder"

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2023
    Messaggi
    5
    Si grazie ad entrambi, subito dopo aver aperto questa discussione ho notato anche io che mancavano i "name" ed ho risolto

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2023
    Messaggi
    5
    ora ho un altro problema legato al database Mysqli, in pratica ieri sera funzionava tutto senza problemi, inserivo i dati nel form e venivano salvati nel database. Stamattina riaccendendo il computer, avviando xamp e provando ad inserire ne l form altri dati mi da questo errore:

    Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'form'@'localhost' to database 'form' in C:\xampp\htdocs\form2.php:16 Stack trace: #0 C:\xampp\htdocs\form2.php(16): mysqli_connect('localhost', 'form', 'form23', 'form') #1 {main} thrown in C:\xampp\htdocs\form2.php on line 16

    Eppure tutti i dati di username, password e database sono giusti! Uguali a ieri! perchè mi nega l'accesso???

    grazie per l'aiuto

  8. #8
    L'errore ti dice "mysqli_connect('localhost', 'form', 'form23', 'form')" ma nel tuo primo post hai "mysqli_connect("localhost","form","password","for m")

    Le due password non coincidono...

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2023
    Messaggi
    5
    Quote Originariamente inviata da Dascos Visualizza il messaggio
    L'errore ti dice "mysqli_connect('localhost', 'form', 'form23', 'form')" ma nel tuo primo post hai "mysqli_connect("localhost","form","password","for m")

    Le due password non coincidono...
    no nel primo messaggio avevo scritto "password" per nasconderla...nell'errore non l'ho nascosta, mi sono dimenticata, ma nel codice ovviamente è scritta giusta.

  10. #10
    Quote Originariamente inviata da IlaLory Visualizza il messaggio
    no nel primo messaggio avevo scritto "password" per nasconderla...nell'errore non l'ho nascosta, mi sono dimenticata, ma nel codice ovviamente è scritta giusta.

    A volte, la distrazione...
    Se è tutto uguale E non hai fatto cambiamenti nè al XAMP nè ai vari componenti allora ti consiglierei di verificare il log di MySql/MariaDb che potrebbe essere più utile e esplicativo....
    Verifica comunque che la reale password (che spero non sia davvero "form23"....anche se sei in ambiente di test...) non abbia caratteri "strani", soprattutto accenti, virgolette o apostrofi, "e commerciali" e che il Db abbia realmente l'utente così come lo dichiari tu (utente "form" su "localhost" con privilegi adeguati sul db "form"). Occhio che "localhost" e "127.0.0.1" sono due cose diverse

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.