Apro un altra discussione per capire secondo voi dove può stare l'errore. Nel mio form normalissimo faccio un controllo dati sia via js con una validazione live sia via php. I campi se risultano vuoti non vengono inviati ed il form rimane disponibile per correggere i valori. se i campi risultano completi imposto a ok una variabile ed invio il form al motore php per la validazione lato server. Il problema è che nonostante io lasci un campo vuoto invece di non cambiare pagina e permettermi di sistemare il form mi da l'ok all'invio dei dati e mi appare il messaggio di corretto invio ed ovviamente l'avviso che quel campo è mancante.
Questo è il markup
questo è il codice php per la validazione lato server
e qui il controllo dei dati e l'invio
Sbaglio qualcosa?
Questo è il markup
PHP:
<label for="username" class="block">Username</label>
<input type="text" required name="username" tabindex="4" id="username" onchange="check3() "Nickname di fantasia"/>
<span id="username_ko"></span>
PHP:
//sul input username faccio un controllo con ajax per verificare se è già presente..
if(!ver_testo($username,4,15)){
$ok_ko.="Username non corretto, deve essere compreso tra 6 e 15 caratteri compresi i caratteri jolly <br />";
echo "<meta http-equiv='Refresh' content='300; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; }
PHP:
if(empty($ok_ko)) {
$stmt = $mysqli->prepare("INSERT INTO utenti_temp (codiceconferma, nome, cognome, eta, interessi,
username, password, email, domanda, risposta) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param ('ssssssssss', $codiceconferma, $nome, $cognome, $eta, $interessi, $username, $password,
$email, $domanda, $risposta);
$stmt->execute();
$stmt->close();
//se tutto è OK da qua preparo l'invio della mail di conferma per l'avvenuta registrazione.
require_once('../TEST_3/phpmailer/PHPMailerAutoload.php');
if ($mail->Send()) {
//echo "Mail inviata con successo";
echo '<div id="mailok"><p style="margin-top: 2px;">Complimenti,<br />
la registrazione è andata a buon fine
Sbaglio qualcosa?