Salve a tutti ragazzi,
ho un form per l'iscrizione utenti nel sito ,ora vorrei(anzi sono costretto!)aggiungere un campo per un controllo antispam costituito da una somma di 2 cifre create con la funzione "rand"che l'utente deve inserire.Ora tutto bene finchè controllo che il campo sia inviato, non sia vuoto e sia numerico; il problema sorge quando devo inserire il controllo che verifichi che la cifra inserita dall'utente sia uguale(o non sia diversa) alla somma dei due valori!!!
Da giorni ci sbatto la testa:incazz:
spero che qualcuno sappia darmi un aiuto.Grazie
posto il codice:
ho un form per l'iscrizione utenti nel sito ,ora vorrei(anzi sono costretto!)aggiungere un campo per un controllo antispam costituito da una somma di 2 cifre create con la funzione "rand"che l'utente deve inserire.Ora tutto bene finchè controllo che il campo sia inviato, non sia vuoto e sia numerico; il problema sorge quando devo inserire il controllo che verifichi che la cifra inserita dall'utente sia uguale(o non sia diversa) alla somma dei due valori!!!
Da giorni ci sbatto la testa:incazz:

spero che qualcuno sappia darmi un aiuto.Grazie
posto il codice:
Codice:
<div align="center">
<h3><strong><span class="style1">Member Area - Registration Page -</span></strong></h3>
<?php
// controllo sul parametro d'invio
if(isset($_POST['submit']) && (trim($_POST['submit']) == "registrati"))
{
// controllo sul formato dell'email
if((!isset($_POST['email'])) || (!eregi("^([a-z0-9\._-]+)(@[a-z0-9.-]+)(\.{1}[a-z]{2,4})$", $_POST['email'])))
{
echo "Attenzione, formato email non valido.";
}
// controllo sul formato della password deve essere alfanumerica e non deve superare i dieci caratteri di lunghezza
elseif((!isset($_POST['password'])) || ($_POST['password'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['password'])) || (strlen(trim($_POST['password']) > 10)))
{
echo "La password deve essere alfanumerica e non più lunga di 10 caratteri.";
}
elseif((!isset($_POST['nome'])) || ($_POST['nome'] == "") || (!preg_match("/^[a-z0-9\-_]{0,20}$/", $_POST['nome'])))
{
echo "Inserire un nome valido";
}
elseif((!isset($_POST['calcolo'])) || ($_POST['calcolo'] == "") || (!is_numeric($_POST['calcolo'])))
{
echo "Inserire il risultato numerico";
}
//-------------------------------INIZIO VERIFICA NON FUNZIONANTE-------------------------
elseif($calcolo!=$result)
{
echo "La somma non è esatta";
}
//------------------------------FINE VERIFICA NON FUNZIONANTE--------------------------
else{
// se i parametri sono corretti popoliamo il database
$email = $_POST['email'];
$password = $_POST['password'];
$nome = $_POST['nome'];
// ma prima controlliamo che la mail non sia già presente includiamo il file di configurazione
@include "config.php";
$ctrl_mail = @mysql_query("SELECT id FROM iscrizioni WHERE email='$email'") or die (mysql_error());
if(@mysql_num_rows($ctrl_mail)>0)
{
echo "L'email risulta già stata registrata.";
}else{
// query d'inserimento
if(@mysql_query("INSERT INTO iscrizioni (email, password) VALUES('$email','$password')") or die (mysql_error()))
{
// messaggio di conferma
echo "Conferma l'iscrizione tramite la mail che ti abbiamo inviato.";
// email per la conferma
// intestazioni
$headers = "From: $admin_email\nreply-To: noreply\r\n";
$subject = "Conferma la tua iscrizione.";
//corpo del messaggio
$messaggio = "Ti ringraziamo per la tua iscrizione.\n";
$messaggio .= "La tua user è: ".$email."\n";
$messaggio .= "La tua password è: ".$password."\n";
$messaggio .= "Per confemare vai alla pagina http://www.sito/conferma.php ";
$messaggio .= "e inserisci i dati per l'autenticazione.\n";
// invio dell'email
@mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
//invio email al webmaster
//$webmaster = "info@mia-email";
$email1 ="$email";
$mailTo1="$admin_email";
$mailHeaders1="From: $email1";
$mailSubject1="[Inserire il nome del sito]
Nuovo UTENTE registrato";
$mailBody1.="Ciao!\n\n";
$mailBody1.="Un nuovo utente si è registrato!\n\n";
$mailBody1.="Questi sono i suoi dati:\n\n";
$mailBody1.="Username: $nome\n";
$mailBody1.="passwd: $passwd\n";
$mailBody1.="Email: $email1\n";
@mail($mailTo1, stripslashes($mailSubject1),stripslashes($mailBody1),$mailHeaders1);
//---------
}
}
}
}else{
form per l'iscrizione
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="center" bgcolor="#FFFF99" class="tabella">
<tr bgcolor="#FFFF66">
<td colspan="2"><div align="center"><div align="center">
<h3 class="style1">Register New User</h3>
</div></div></td>
</tr>
<tr>
<td colspan="2"><span class="style3">Name </span><strong><span class="style2">*** </span>:</strong></td>
</tr>
<tr>
<td colspan="2"><input type="text" name="nome" id="nome" /></td>
</tr>
<tr>
<td colspan="2"><strong class="style3">E-mail</strong> <span class="style2">***</span><strong class="style3"> : ( User )</strong></td>
</tr>
<tr>
<td colspan="2"><input type="text" name="email" id="email" /></td>
</tr>
<tr>
<td colspan="2"><strong class="style3">Password</strong> <span class="style2">***</span><strong>:</strong></td>
</tr>
<tr>
<td colspan="2"><input type="password" name="password" id="password" /></td>
</tr>
<tr>
<td colspan="2"><strong class="style3">AntiSpam Control</strong><span class="style2"> **<strong>*</strong></span><strong class="style3">: ( Please enter the sum belowe )</strong></td>
</tr>
<tr>
<td width="147">
<?php
$x=rand(0,15);
$y=rand(0,15);
$result=$x+$y;
?>
<?php echo "$x";?><strong class="style3"> +</strong> <?php echo "$y";?> <strong class="style3"> =</strong>
</td>
<td width="205"> <input name="calcolo" type="text" id="calcolo" size="6" maxlength="3" /></td>
</tr>
<tr>
<td colspan="2" class="style2">*** All fields are required</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="submit" id="submit" value="registrati" />
</div></td>
</tr>
</table>
</form></div>
<?php
}
?>