Ciao a tutti, sto seguendo questa guida
http://www.ebug.it/modulo-registrazione-in-php/
per creare un modulo di registrazione nel mio sito web.
Questo è il codice del file configurazione.php
Codice PHP:
<?
// connettiamoci il nostro database
$db_host = "localhost";
$db_user = "root";
$db_password = "pass";
$db_name = "my_db";
//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');
?>
install.php
Codice PHP:
<?php
include ('http://respawn.altervista.org/configurazione.php');
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";
?>
e poi il form
Codice PHP:
<?php
// includiamo il file di connessione al database
include ('configurazione.php');
// creiamo il nostro modulo di registrazione
?>
<form action='?inviodati=ok' method='POST'>
<b>Nome</b><br>
<input type='text' name='nome'><br>
<b>NickName</b><br>
<input type='text' name='nickname'><br>
<b>Mail</b><br>
<input type='text' name='mail'><br>
<b>Password</b><br>
<input type='password' name='pass'><br>
<b>Ripeti Password</b><br>
<input type='password' name='pass2'><br>
<input type='submit' value='Completa Registrazione'><br>
</form>
<?php
// attraverso un if controlliamo che il form sia stato inviato
if ( $_GET['inviodati'] == "ok" ) {
// recuperiamo i dati inviati con il form
$nome = $_POST['nome'];
$nickname = $_POST['nickname'];
$mail = $_POST['mail'];
$pass1 = $_POST['pass'];
$pass2 = $_POST['pass2'];
// ora controlliamo che i campi siano stati tutti compilati
if ( $nome == TRUE && $mail == TRUE && $nickname == TRUE && $pass1 == TRUE && $pass2 == TRUE ) {
// controlliamo se il campo mail è stato scritto in maniera errata
$email = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail);
if ( $email == TRUE ) {
// controlliamo se l'mail è presente già nel database
$sql = mysql_query("SELECT * FROM tabella_registrati WHERE mail = '$mail'") or die ("Mail già occupata");
$num_rows = mysql_num_rows($sql);
if ( $num_rows == 0 ) {
// ora controlliamo che le password inserite siano identiche
if ( $pass1 == $pass2 ) {
// infine criptiamo la password con md5
$pass_md5 = md5($pass1);
$nickname = mysql_real_escape_string($nickname);
$nome = mysql_real_escape_string($nome);
mysql_query("INSERT INTO tabella_registrati
(id , nick , nome , pass , mail )
VALUES
('','$nickname', '$nome', '$pass_md5', '$mail' )") OR DIE(mysql_error());
// e inviamo una mail con la riuscita registazione
mail ($mail, "Registrazione OK", "Complimenti registrazione effettuata con successo", "From: [email]tuamail@host.format[/email]o");
// messaggio da far visualizzare all'utente finale
echo "Complimenti registrazione effettuata con successo.";
} else {
echo "Le password non corrispondono";
}
} else {
echo "Indirizzo mail già utilizzato.";
}
} else {
echo "La tua mail non è idonea, per la registrazione.";
}
} else {
echo "Tutti i campi sono obbligatori.";
}
}
?>
Invece registrazione.php ovvero il form
http://respawn.altervista.org/registrazione.php
funziona ma ogni email che inserisci risulta già occupata.
Come faccio a fare funzionare il codice? Se apro una pagina tipo configurazione mi esce la scritta
"Errore durante la selezione del database".
Grazie mille a chi mi aiuterà.