Premessa : ho iniziato da poco a studiarmi il php+mysql in preparazione ad un progetto che dovro' consegnare a fine luglio, quindi siate magnanimi.
Per iniziare a " progettare qualcosa ", ho pensato appunto alla pagina di registrazione utenti: per ora e' solo un'abbozzo, in futuro vorrei modificare il tutto tenendo conto delle sessioni, rindirizzare l'utente alla home page dopo aver confermato l'iscrizione ed aver riassunto nella videata i dati inseriti, ed anche criptare la password in md5 ( per poi decriptarla nel login ) ... ma in futuro ! Inizio dalle basi che e' meglio !!
Il form per la registrazione e' questo :
codice:
<html>
<head>
<title>Registrazione nuovo utente</title>
</head>
<body>
Per favore inserisci i dati per la registrazione. I campi contrassegnati con l'asterisco sono obbligatori</p>
<form name="registrazioneutenti" action="create_user.php" method="post">
<table>
<tr>
<td colspan="2">Dati anagrafici</td>
</tr>
<td>Nome *</td>
<td><input type="text" name="nome"/></td>
</tr>
<tr>
<td>Cognome *</td>
<td><input type="text" name="cognome"/></td>
</tr>
<tr>
<td>Data di nascita *</td>
<td><input type="text" name="data_nascita"/></td>
</tr>
<tr>
<td>Comune di nascita *</td>
<td><input type="text" name="comune_nascita"/></td>
</tr>
<tr>
<td>Comune di residenza *</td>
<td><input type="text" name="comune_residenza"/></td>
</tr>
<tr>
<td>Indirizzo *</td>
<td><input type="text" name="indirizzo"/></td>
</tr>
<tr>
<td>Numero civico</td>
<td><input type="text" name="numero_civico"/></td>
</tr>
<tr>
<td>Telefono *</td>
<td><input type="text" name="telefono"/></td>
</tr>
<tr>
<td>Indirizzo e-mail</td>
<td><input type="text" name="mail"/></td>
</tr>
<tr>
<td colspan="2">Scegli username e password</td>
</tr>
<tr>
<td>Username *</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>Password *</td>
<td><input type="text" name="pass"/></td>
</tr>
<tr>
<td><input type="submit" value="Completa registrazione" />
</tr>
</table>
</form>
</body>
</html>
L'action rimanda alla pagina create_user.php che e' la seguente ( trovata su questo forum e adattata alla mia bdd):
Codice PHP:
<?php
// Parametri per la connessione al database
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "progetto";
// Ci colleghiamo al database
$db_conn = mysql_connect($db_host, $db_pass, $dbuser) or die ("Errore connessione:" . mysql_error());
mysql_select_db($db_name, $db_conn);
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$data_nascita = $_POST['data_nascita'];
$comune = $_POST['comune_nascita'];
$comune_res = $_POST['comune_residenza'];
$indirizzo = $_POST['indirizzo'];
$civico = $_POST['numero_civico'];
$telefono = $_POST['telefono'];
$mail = $_POST['mail'];
$user = $_POST['username'];
$pass = $_POST['pass'];
// Inseriamo la query
$query = "INSERT INTO $utenti (nome, cognome, data_nascita, comune_nascita, comune_residenza, indirizzo, numero_civico, telefono, mail, user, pass) VALUES ('$nome', '$cognome', '$data_nascita', '$comune', '$comune_res', '$indirizzo', '$civico', '$telefono', '$mail', '$user', '$pass')";
$result = mysql_query($query, $db_conn) or die ("Errore connessione:" . mysql_error());
$num_rows = mysql_num_rows($result);
mysql_close();
?>
Ovviamente non funziona ( figuriamoci, al primo tentativo ) :
Errore connessione:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(nome, cognome, data_nascita, comune_nascita, comune_residenza, indirizzo, numer' at line 1
Penso di aver adattato abbastanza fedelmente i miei dati :
localhost perche' sto facendo esperimenti in locale
user root, non saprei cos'altro metterci, visto che e' appunto un form per la registrazione di nuovi utenti
pass lo lascio vuoto, ma non so bene se e' necessario inserire qualcosa
dbname e' appunto progetto ...
La tabella utenti l'ho creata sul mio db, ho inserito anche un attributo user_id ( che si auto-incrementa, quindi in teoria non lo dovrei ne mettere nella form ne tantomento inserire come variabile in questo file giusto ? ) ..
Vorrei evitare di fare un brutale copia ed incolla di script gia fatti, altrimenti non imparo nulla ...
Grazie a tutti per le dritte... per gli altri problemi che ho accennato all'inizio, se avete idee sono ben accette, ma non sono una priorita' al momento!!