Form registrazione utenti

di il
15 risposte

Form registrazione utenti

Ciao a tutti sono un novizio che vorrebbe creare un form in php per registrare utenti e immetterli su database ho riscontrato molti errori e non mi funziona per niente il codice . poterte aiutarmi per favore vi ringrazio anticipatamente

<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$pass= $_POST['password'];

$nomehost = "localhost";
$nomeuser = "nomeuser";
$pw = "passwordalfanumerica";
$db = "iscritti.mdb";
$tb = "utenti";

$connessione = mysql_connect($nomehost,$nomeuser,$pw);

if ($connessione== FALSE)
die ("Errore nella connessione");

$seleziona = mysql_select_db($db,$connessione);



$query="INSERT INTO utenti (id,nome,email,password)
values ('$nome','$email','$pass')


if (!mysql_query($sql,$connessione))
{
die('Error: ' . mysql_error());
}
echo "1 record added";




mysql_close($connessione);

echo 'Query eseguita correttamente';


?>

15 Risposte

  • Re: Form registrazione utenti

    Penso ci siano dei refusi ().

    Alla riga 21: toglierei la colonna id nella query (supponendo che sia autoincrementale)
    Alla riga 22: aggiungerei "; per completare l'istruzione PHP
    Alla riga 25: rinominerei $sql in $query

    Codice modificato:
  • Re: Form registrazione utenti

    Ho appena corretto il codice come mi è stato deto inserendo :
    $query="INSERT INTO utenti (nome,email,password)
    values ('$nome','$email','$pass')";


    ma adesso l'errore che compare è : Error: Query was empty
    cosa vuol dire ?
  • Re: Form registrazione utenti

    Adesso ho sistemato il codice in questo modo compare il seguente messaggio di errore :
    "Error: No database selected" che faccio?


    $query="INSERT INTO utenti (nome,email,password)
    values ('$nome','$email','$pass')";


    if (!mysql_query($query,$connessione))
    {
    die('Error: ' . mysql_error());
    }
    echo "1 record added";




    mysql_close($connessione);

    echo 'Query eseguita correttamente';


    ?>
  • Re: Form registrazione utenti

    A me con le correzioni indicate funziona. Forse il nome del database è diverso da iscritti.mdb?
  • Re: Form registrazione utenti

    È una cosa incredibile ci sto uscendo pazzo : io ho 3 elementi
    il primo è la pagina html in cui l'utente dovà inserire i dati :!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dt"
    >
    <html lang="it">
    <head>
    <title>modulo</title>
    </head>
    <body>
    <form action="iscriviti.php" method="post">

    Nome<br/><input type="text" name="nome" /><br />
    E-mail<br /><input type="text" name="email" /><br />
    Password<br /><input type="password" name="password"/><br />

    <input type="submit" value="iscriviti" />

    </form>

    </body>
    </html>

    il secondo elemento è il file chiamato "iscriviti.php" con il seguente codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dt"
    >
    <html lang="it">
    <head>
    <title>Conferma iscrizione</title>
    </head>
    <body>
    <p><img src="img/tastieraPC.jpg" width="328" height="50"/></p>
    <div>grazie di esserti iscritto al sito</div><br>
    <div>Ecco i tuoi dati di registrazione:</div><br />


    <?php

    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $dataisc = date("g/m/y");
    $pass= $_POST['password'];
    ?>

    <table width="400">
    <tr><td width="100"><b>Data Iscrizione</b></td>
    <td width="100"><b>Nome</b></td>
    <td width="100"><b>Email</b></td>
    <td width="100"><b>Password</b></td>
    </tr>

    <tr>
    <td><?php echo "$dataisc"; ?></td>
    <td><?php echo"$nome"; ?></td>
    <td><?php echo"$email"; ?></td>
    <td><?php echo"$pass"; ?></td>
    </tr>

    </table>

    <?php
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $pass= $_POST['password'];

    $nomehost = "localhost";
    $nomeuser = "nomeuser";
    $pw = "password";
    $db = "iscritti.mdb";
    $tb = "utenti";

    $connessione = mysql_connect($nomehost,$nomeuser,$pw);

    if ($connessione== FALSE)
    die ("Errore nella connessione");

    $seleziona = mysql_select_db($db,$connessione);



    $query="INSERT INTO utenti (nome,email,password)
    values ('$nome','$email','$pass')";


    if (!mysql_query($query,$connessione))
    {
    die('Error: ' . mysql_error());
    }
    echo "1 record added";




    mysql_close($connessione);

    echo 'Query eseguita correttamente';


    ?>



    <br>


    </body>
    </html>


    l'ultimo elemento è il database chiamato iscritti.mdb
    in cui ci sono i seguenti campi : id nome email password

    ecco cosi ti ho dato + informazioni utili spero ci sia una soluzione
  • Re: Form registrazione utenti

    Dall'errore che ti dà, sembra che il problema sia nella selezione del DB. Stai usando MySQL? Che versione? Forse il problema potrebbe essere che hai usato nel nome del DB un punto. Prova a rinominarlo ad esempio iscritti_mdb e vedere se funziona.

    Eventualmente prova anche a usare mysql_error() per vedere se è proprio l'istruzione mysql_select_db che restituisce errore.
  • Re: Form registrazione utenti

    Io sto utilizzando il database microsoftaccess dovrebbe funzionare lo stesso giusto?
  • Re: Form registrazione utenti

    Allora forse il problema sta proprio lì. Non penso si possano usare le funzioni mysql_* per connettersi a Microsoft Access, devi usare altre tecniche e API. Ci sono varie soluzioni, se fai una ricerca con le chiavi "PHP Microsoft Access" dovresti trovare diversa documentazione sull'argomento.
    Purtroppo non avendo mai avuto a che fare con questo tipo di DBMS non so dirti molto di più.
  • Re: Form registrazione utenti

    Che database mi consigliate di utilizzare ? sono pronto ad impararne altri se mi indicate quale database devo usare per questo codice grazie
  • Re: Form registrazione utenti

    Il codice sopra funziona senz'altro con server MySQL. Se stai usando Windows puoi installare tutto il necessario per sviluppare tramite una qualsiasi distribuzione o XAMPP (sito ufficiale).
  • Re: Form registrazione utenti

    Perfetto adesso ho usato myql accedendo nel servizio offerto dal dominio e funziona perfettamente
    .
    adesso intendo inviare l'email a chi si è registrato . Ma la cosa essenziale è che nel form in cui l'utente si registra non deve essere immesso un dato che non è un indirizzo email ed è obbligatorio inserire tutti i dati senza lasciare un text vuoto.
    Già sto facendo salti di gioia perchè sono soddisfatto del funzionamento della registrazione
    manca quest'ultima parte aiutatemi perfavore grazie ancora per quello che state facendo se riuscite postatemi il codice necessario.
  • Re: Form registrazione utenti

    Bosspio ha scritto:


    adesso intendo inviare l'email a chi si è registrato
    Per l'invio di un'email di iscrizione avvenuta puoi usare la di PHP.
    la cosa essenziale è che nel form in cui l'utente si registra non deve essere immesso un dato che non è un indirizzo email ed è obbligatorio inserire tutti i dati senza lasciare un text vuoto.
    Per far questo penso sia meglio usare JavaScript. Questa del controllo della validità dei campi prima dell'invio al server è una procedura abbastanza standard e ci sono decine di esempi/codici preconfezionati che puoi adattare facilmente al tuo caso.

    P.S. Visto che mi pare che tu non stia semplicemente studiando PHP, forse ti conviene dare un'occhiata anche a qualche articolo su come scrivere codice PHP sicuro (vedi in particolare il paragrafo 3.1) per evitare brutte sorprese.
  • Re: Form registrazione utenti

    Quel link è tutto in inglese e comunque personalmente credo ke ci sia un codice di questo tipo immagino:
    if $nom=="" die ("valore nullo")
    potete postarmi un codice corretto per favore? io faccio casino e mille errori
  • Re: Form registrazione utenti

    Be', come minimo devi usare la funzione e poi eseguire anche il controllo, lato server, sui dati inseriti dall'utente, es. indirizzo email valido, magari tramite l'uso di espressioni regolari.
Devi accedere o registrarti per scrivere nel forum
15 risposte