MMKit Forums » » Php » » Controllo su condizioni IF ELSEIF ELSE sballato |
|
|
| Autore | Topic: Controllo su condizioni IF ELSEIF ELSE sballato |
|---|
falco72
Membro

Con noi da: 17-05-2006
Posts: 150
Da:
 | Inviato il: 19-03-2008 05:40
ciao a tutti,
non riesco a far funzionare con la giusta sequenza i controlli sul seguente codice... dove sbaglio?
la procedura corretta dovrebbe essere:
Se email scritta con caratteri strani --> email non valida oppure se vuota ---> email vuota oppure se ---> il codice chapta è corretto ---> aggiorna email ---> se codice errato ripeti oppure mostra form
Code:
<?php
// controllo sul parametro d'invio
if( isset($_POST['submit']) && (trim($_POST['submit']) == "Modifica indirizzo email") ) {
$user_id=$_POST['user_id'];
$user_email=$_POST['user_email'];
// controllo sul formato dell'email
if((!isset($_POST['user_email'])) || (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $user_email))){
echo "Attenzione, formato email non valido.";
} elseif($_POST['user_email'] == ""){ // controllo che l'email non sia vuota
echo "Attenzione, email vuota.";
} elseif($_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'])){
$update=mysql_query("update tbl_users SET user_email='$user_email' WHERE user_id='$_SESSION[user_id]'");
$_SESSION['user_email'] = $user_email;
echo "<div id=\"box-impostazioni_03\"><p>E-mail aggiornata correttamente!</p> La tua e-mail attualmente è <b>".$_SESSION['user_email']."</b></div>";
}else{
// controllo inserimento codice chapta
echo 'attenzione!! codice errato o mancante';
}
}else{
?>
<form action="<?php print $_SERVER['PHP_SELF']?>" method="post">
<table id="box-impostazioni_03">
<tr>
<td colspan="2" height="10"> </td>
</tr>
<tr>
<td><span class="font04">Nuovo indirizzo e-mail:</span></td>
<td><input type="text" name="user_email" class="input_changemail" /></td>
</tr>
<tr>
<td colspan="2" height="10"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<span class="error_reg">*</span><img src="include/CaptchaSecurityImages.php?width=240&height=50&characters=6" />
</td>
</tr>
<tr>
<td colspan="2" height="10"> </td>
</tr>
<tr>
<td><span class="font04">Security Code:</span></td>
<td><input id="security_code" name="security_code" type="text" class="input_changemail"/></td>
</tr>
<tr>
<td colspan="2" height="5"> </td>
</tr>
<tr>
<td colspan="2" valign="top" align="center">
<input name="submit" type="submit" id="changeEmailButton" value="Modifica indirizzo email" />
</td>
</tr>
<tr>
<td colspan="2" height="5"> </td>
</tr>
</table>
</form>
<?php
}
?>
|
|
Ganasa
Apprendista Alchimista

Con noi da: 12-07-2001
Posts: 2149
Da: Malonno - ValleCamonica
 | Inviato il: 20-03-2008 11:43
Chapta ?!?!?
Sono sicuro che intendevi Captcha
Innanzitutto, come dico sempre a tutti, l'identazione del codice non è solo uno spreco di spazio ma un risparmio di tempo per la ricerca degli errori (ma questo è un suggerimento, non una costrizione).
Nel codice sotto vedrai che ho invertito i controlli sulla email: prima viene verificato se è stata inserita e poi se rispetta la regular expression ... questo perché, ovviamente, se prima fai il controllo con la regular expression, se la mail non è stata indicata, è ovvio che non la rispetta e quindi mai ti mostrerebbe il messaggio "Email vuota" ma sempre e solo "Formato email non valido".
Code:
$user_id=$_POST['user_id'];
$user_email=$_POST['user_email'];
if($_POST['user_email'] == "")
{
/* controllo che l'email non sia vuota */
echo "Attenzione, email vuota.";
}
elseif((!isset($_POST['user_email'])) || (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $user_email)))
{
/* controllo sul formato dell'email */
echo "Attenzione, formato email non valido.";
}
elseif($_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code']))
{
/* controllo correttezza captcha */
$update=mysql_query("update tbl_users SET user_email='$user_email' WHERE user_id='$_SESSION[user_id]'");
$_SESSION['user_email'] = $user_email;
echo "<div id=\"box-impostazioni_03\"><p>E-mail aggiornata correttamente!</p> La tua e-mail attualmente è <b>".$_SESSION['user_email']."</b></div>";
}
else
{
/* captcha non inserito */
echo 'attenzione!! codice errato o mancante';
}
|
----------------- ::: Michele Mariotti :::
Esistono 10 tipi di persone al mondo... chi conosce il binario e chi no!
[ Questo messaggio è stato modificato da: Ganasa - 20-03-2008 17:44 ]
|
 | |
|
|
- Visualizza la versione da stampa - Segnala questo thread al moderatore - Aggiungi questo thread alla tua lista preferiti [Visualizza] - Non voglio più ricevere nessuna mail riguardo questo thread
|