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

Discussione: Modulo registrazione

  1. #1

    Modulo registrazione

    Ciao ragazzi,
    è da pochissimo che sono avvicinato al PHP e mysql e sto facendo degli esercizi per conoscerli meglio.

    Ho creato un file php per la connessione ad un database locale (ho usato xampp) dove ho già creato una tabella.
    Creo dei form in HTML prendo i dati e cerco di inserirli nella tabella già creata.
    Pk non mi inserisce i dati?
    sono giorni che ci sbatto la testa ma non capisco.
    Grazie a chi mi darà una spiegazione =)



    <?php
    // connettiamoci il nostro database

    $db_host = "localhost";
    $db_user = "root";
    $db_password = "root";
    $db_name = "mydatabase";

    //connetto il database
    $db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
    mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');;

    /*
    mysql_query("CREATE TABLE `tabella_registrati` (
    `id` INT( 40 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `nick` VARCHAR( 255 ) NOT NULL ,
    `nome` VARCHAR( 255 ) NOT NULL ,
    `mail` VARCHAR( 255 ) NOT NULL ,
    `pass` VARCHAR( 255 ) NOT NULL
    ) ENGINE = MYISAM") or die ("Errore durante la connessione");

    echo "Installazione avvenuta con successo";*/
    ?>




    <form action='' method='POST'>
    Nome

    <input type='text' name='nome'>

    NickName

    <input type='text' name='nickname'>

    Mail

    <input type='text' name='mail'>

    Password

    <input type='password' name='pass'>

    <input type='submit' value='inviodati'>

    </form>


    <?php
    // attraverso un if controlliamo che il form sia stato inviato
    if ( isset($_GET['inviodati']) && $_GET['inviodati'] == "ok") {
    // recuperiamo i dati inviati con il form
    $nickname = $_POST['nickname'];
    $nome = $_POST['nome'];
    $mail = $_POST['mail'];
    $pass1 = $_POST['pass'];


    mysql_query("INSERT INTO tabella_registrati
    (id , nick , nome , mail , pass )
    VALUES
    ('','$nickname', '$nome', '$mail', '$pass1' )") OR DIE(mysql_error());


    }
    mysql_close();
    ?>

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    l'errore è qui
    Codice PHP:
    mysql_query("INSERT INTO tabella_registrati
    (id , nick , nome , mail , pass )
    VALUES
    ('','
    $nickname', '$nome', '$mail', '$pass1' )") OR DIE(mysql_error()); 
    vuoi inserire un valore null nel campo id che è giustamente dichiarato not null
    quindi per risolvere, se non ci sono altri problemi, modifica con questo codice:
    Codice PHP:
    mysql_query("INSERT INTO tabella_registrati
    (nick , nome , mail , pass )
    VALUES
    ('
    $nickname', '$nome', '$mail', '$pass1' )") OR DIE(mysql_error()); 
    id si autoicrementerà da solo ..
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Comunque non mi inserisce i dati nel database

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    Originariamente inviato da Michele88ITA
    Comunque non mi inserisce i dati nel database
    dicci almeno il messaggio di errore che ti compare, hai inserito ...OR DIE(mysql_error())
    poi, altra cosa, compili tti i campi del form prima di inviarli al db? (tutti i campi della tua table sono not NULL!)
    If you think your users are idiots, only idiots will use it. DropBox

  5. #5
    Si, compilo tutti i cambi e poi premo il button di invio al database =)
    Non vengono visualizzati errori...
    Inizio a pensare che il processo non entri nell'IF

    if ( isset($_GET['inviodati']) && $_GET['inviodati'] == "ok")

    e passi direttamente a mysql_close();

    Che ne pensi? :/

  6. #6
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    per utilizzare quel controllo con l'if sostitisci la prima riga del form con la seguente:
    codice:
    <form action='testform.php?inviodati=ok' method='POST'>
    dove testform.php è il nome del file che contiene il form
    If you think your users are idiots, only idiots will use it. DropBox

  7. #7
    Secondo me è sbagliato il pulsante.
    codice:
    <input type='submit' value='inviodati'>
    e poi la if che legge il pulsante:
    Codice PHP:
    if ( isset($_GET['inviodati']) && $_GET['inviodati'] == "ok") { 
    Al pulsante manca il nome
    codice:
    <input type="submit" name="inviodati" value="inviodati" />
    Infine alla IF non va il valore ok bensì il valore inviodati
    Per come è scritto il form e viene poi processato, la IF risulta sempre FALSE e di conseguenza il codice del blocco IF non viene mai eseguito.

  8. #8
    Originariamente inviato da homerbit
    per utilizzare quel controllo con l'if sostitisci la prima riga del form con la seguente:
    codice:
    <form action='testform.php?inviodati=ok' method='POST'>
    dove testform.php è il nome del file che contiene il form

    Niente da fare Micdas :/
    Non mi salva niente nel database.
    cmq anche secondo me non entra nell'if. ma non capisco dove sta l'errore.
    anche seguendo le tue istruzioni ... niente :/

    Per caso non hai un file simile (che ti funziona) da passarmi?
    Penso che almeno una volta avrai inserito dei dati con un form :P

  9. #9
    Scusate, non volevo quotare homerbit.

  10. #10
    Prima non avevo fatto caso a questo
    Codice PHP:
    if ( isset($_GET['inviodati']) && $_GET['inviodati'] == "ok") { 
    Di solito, può darsi che sbaglio per la sicurezza, io non faccio uso di $_GET o di $_POST per leggere i valori inviati da form o da querystring, ma di $_REQUEST.
    Visto che fai uso di $_POST leggi il "inviodati" con questo oppure con $_REQUEST.
    Ripeto che è la cattiva lettura di "inviodati" che impedisce di entrare nelle istruzioni contenute nel blocco IF.

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.