mi rimanda sempre a registra.php senza mostrare errori o inserire niente nel DBOriginariamente inviato da neida
Anche se, personalmente, sono contrario all'uso continuato degli IF, se proprio vuoi lasciarli (per mostrare messaggi d'errore appropriati, di volta in volta) magari potresti crearti una funzione che oltre a mostrare il messaggio d'errore specifico in base alla condizione in cui si verifica l'errore, ti permette pure di bloccare l'esecuzione dello script stesso.
Se ti va, prova in questo modo...
(potrebbero esserci degli errori, controlla)
Codice PHP:
[font=courier new]<?php
require('config.php');
//questa funzione puoi includerla
//per comodità nel file config.php
function msg_error($msg)
{
echo "<span class=\"text\">[b]$msg[/b]</span>
";
echo "<a href=\"javascript:history.go(-1)\">Indietro</a>";
exit(); //interrompe l'esecuzione dello script...
}
//controllo se i dati sono stati inviati dal form
if(isset($_POST['submit'])) {
$mail = $_POST['mail'];
$mail2 = $_POST['mail2'];
$pass = $_POST['pass'];
$pass2 = $_POST['pass2'];
$user = $_POST['user'];
$date = date("F j, Y, g:i a");
if($mail == '' || $mail2 == '')
msg_error("Non puoi lasciare il campo mail vuoto!");
if($user == '')
msg_error("Non puoi lasciare il campo username vuoto!");
if($pass == '' || $pass2 == '')
msg_error("Non puoi lasciare il campo password vuoto!");
if($mail != $mail2)
msg_error("Le email inserite non coincidono!");
if($pass != $pass2)
msg_error("Le password inserite non coincidono!");
if($user == "$username") {
msg_error("L'username scelto è già utilizzato!");
} else {
$conn = mysql_connect($db_host, $db_user, $db_pass)
or die("Impossibile selezionare database");
mysql_select_db($db_name, $conn)
or die("Impostazioni connessione errate");
$query = "INSERT INTO
`members` (`user`, `pass`, `email`, `regdate`, `ban`)
VALUES
('$user', '$pass', '$mail', '$date', '0')";
$insert = mysql_query($query, $conn)
or die(mysql_error());
}
} else {
//redirect alla pagina di provenienza (form)
header("Location: registra.php");
}
?>[/font]![]()