[QUOTE=biccheddu;882861]
[QUOTE=saitfainder;882843]
mi spiego meglio.
in pratica ho creato un sistema di registrazioni che include la connessione al db.
questo dopo aver controllato che ci siano tutti i campi e svariati errori
invia le informazioni nella tabella "Registrati"
li scrive tutti giusti tranne il campo Email che mi scrive all'interno del valore "1" e non l'email usata nel form.
Seguo il consiglio di biccheddu
e provo a srivere il codice fornito all'inizio del codice e mi da errore di compilazione.
questo è la pagina riguardante l'invio dei dati alla tabella (tengo a precisare che i valori ho controllato e sono questi)
Codice PHP:
<?php
if ( $_GET['stato'] == "confermato" ) {
// Recupera i dati
$Nome = $_POST['Nome'];
$Cognome = $_POST['Cognome'];
$username = $_POST['username'];
$Password1 = $_POST['Password1'];
$Password2 = $_POST['Password2'];
$Email = $_POST['Email'];
// campi compilati
if ( $Nome == TRUE && $Cognome == TRUE && $username == TRUE && $Password1 == TRUE && $Password2 == TRUE && $Email == TRUE ) {
// controlla se il campo mail non sia stato scritto in maniera errata
$Email = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$Email);
if ( $Email == TRUE ) {
// controlla se l'Email è presente nel database
$sql = mysql_query("SELECT * FROM Registrati WHERE Email = '$Email'") or die ("E-Mail già Registrata Accedi tramite Login");
$num_rows = mysql_num_rows($sql);
if ( $num_rows == 0 ) {
// controlla se l'username è presente nel database
$sql = mysql_query("SELECT * FROM Registrati WHERE username = '$username'") or die ("Nick già in uso");
$num_rows = mysql_num_rows($sql);
if ( $num_rows == 0 ) {
// ora controlliamo che le password inserite siano identiche
if ( $Password1 == $Password2 ) {
// criptiamo la password con md5
$pass_md5 = md5($Password2);
$username = mysql_real_escape_string($username);
$Nome = mysql_real_escape_string($Nome);
mysql_query("INSERT INTO Registrati
(id , Nome , Cognome , username , Password1 , Password2 , Email )
VALUES
('','$Nome', '$Cognome', '$username', '$Password1', '$pass_md5', '$Email' )") OR DIE(mysql_error());
// invia una mail con la riuscita registazione (ANCHE QUESTO STO CERCANDO DI AGIUSTARE IN QUANTO L'EMAIL NON LA MANDA)
mail ($Email, "Registrazione", "Complimenti registrazione effettuata con successo.", "From: [email]admin@waspes.it[/email]");
// messaggio da far visualizzare all'utente finale
echo "<script>location='Registrati.php?registrazione=completata';</script>";
}
} else {
echo "<script>location='Registrati.php?Error=5';</script>";
}
} else {
echo "<script>location='Registrati.php?Error=4';</script>";
}
} else {
echo "<script>location='Registrati.php?Error=3';</script>";
}
} else {
echo "<script>location='Registrati.php?Error=2';</script>";
}
} else {
echo "";
}
?>
<!-- Fine Dati al DataBase -->
<!-- Errori -->
<?php
// attraverso un if controlla l'errore 2
if ( $_GET['Error'] == "2" ) {
echo "Dati mancanti... Si prega di controllare.";
}
// attraverso un if controlla l'errore 3
if ( $_GET['Error'] == "3" ) {
echo "L'Email inserita non e idonea per l'iscrizione.";
}
// attraverso un if controlla l'errore 4
if ( $_GET['Error'] == "4" ) {
echo "L'Indirizzo Email e Gia Presente Prova a Loggarti";
}
// attraverso un if controlla l'errore 5
if ( $_GET['Error'] == "5" ) {
echo "Nick già in uso!";
}
// attraverso un if controlla l'errore 6
if ( $_GET['Error'] == "6" ) {
echo "Le password non corrispondono, si prega di correggere";
}
// attraverso un if reinviamo alla pagina di completamento
if ( $_GET['registrazione'] == "completata" ) {
echo "<script>location='Completato.php';</script>";
}
?>
<!-- /Errori -->
invece questa e la tabella con i suoi valori scrivo 2 righe di esempio
Codice:
id Nome Cognome username Password1 Password2 Email
1 Tizio Rossi rosso 123 pw in md5 1
2 Tizio2 Rossi2 rosso2 12345 pw in md5 1
siccome il codice della pagina è impostato sul controllo di non registrarsi con la stessa email
da errore all'utente come giusto che sia quindi l'esempio 2 è per far capire che il campo Email non viene auto-incrementato come ID ma ben si ha sempre quel valore li