13 ospiti e 0 utenti registrati online.
UserName
  Password  Registrati Ora! E' Gratuito!
 
 MMKit Forums » » Php » » Controllo su condizioni IF ELSEIF ELSE sballato
(Moderato da: dyablo, m77, Zubin)  
AutoreTopic: Controllo su condizioni IF ELSEIF ELSE sballato
falco72 Uomo
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 &egrave; <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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td>
</
tr>
</
table>
</
form>
<?php
}
?>





Clicca qui per vedere il profilo di falco72 Invia un messaggio privato a falco72 Aggiungi falco72 alla tua buddy list Clicca qui per inviare una mail a falco72 Clicca qui per rispondere 'citando' questo post
Ganasa Uomo
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 &egrave; <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 ]



Clicca qui per vedere il profilo di Ganasa Invia un messaggio privato a Ganasa Aggiungi Ganasa alla tua buddy list Clicca qui per inviare una mail a Ganasa Homepage: http://www.ganasa.net Clicca qui per rispondere 'citando' questo post
  
  
Vai a:
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


FAQ | Top 10 | Statistiche
MMKit - Macromedia Community Shared Knowledge
Tutti i loghi sono appartenenti ai rispettivi proprietari