PDA

Visualizza versione completa : check form


ravint
16-11-2002, 22.43.52
ciao
qui di seguito c'e' un chek control riferito all'email tuttavia vorrei anche controllare altri campi che desidero siano obligatori, come potete vedere in basso ho provato con il nome ma non mi funziona, o meglio mi avverte che non ho rempito il campo ma se lo riempio mi da semprer errore..... perche'????

$checkpoint = ereg("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,6}$",$email);
if($checkpoint==0) {
// if no valid email address entered, display no email message
$error = "Form Error (Email)";
$message = "Inserisci un indirizzo di email corretto.";
show($error, $message);

$error = "Form Error (Nome)";
$message = "Inserisci il Nome.";
show($error, $message);
exit;

ciao
Massimo
***************

P8257 WebMaster
17-11-2002, 14.46.38
Il check che hai inserito è chiamato in gergo un controllo di validazione a pattern fisso che va benissimo per le caselle di posta elettronica che hanno appunto un pattern fisso, se vuoi controllare un nome utilizza una funzione che restituisca la risultante di una stringa e controlla semplicemente che non sia vuota.

es. in php: if(!empty($stringa))

Bye :cool:

ravint
18-11-2002, 08.38.06
quindi basta che aggiungo la stringa che mi hai indicato in questo modo e tutto dovrebbe funzionare....
$checkpoint = ereg("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,6}$",$email);
if($checkpoint==0) {
// if no valid email address entered, display no email message
$error = "Form Error (Email)";
$message = "Inserisci un indirizzo di email corretto.";
show($error, $message);

if(!empty($nome))
if(!empty($indirizzo))
if(!empty($telefono))
exit;


ora provo
ciao
grazie
Massimo
*************

P8257 WebMaster
18-11-2002, 08.48.50
Si, ma chiaramente dopo l'if ci va la condizione da eseguire..

es.:
vedi messaggio sotto
Bye :cool:

P8257 WebMaster
18-11-2002, 08.50.01
Originariamente inviato da P8257 WebMaster
Si, ma chiaramente dopo l'if ci va la condizione da eseguire..

es.:
if(empty($stringa))
{
echo "la stringa è vuota";
exit;
}

oppure, rovesciata:
if(!empty($stringa))
{
resto del processo
}

Bye :cool:

ravint
18-11-2002, 10.05.47
scusa ma allora non e' meglio fare come il codice originale????

if($checkpoint==0) {
// if no valid email address entered, display no email message
$error = "Form Error (Email)";
$message = "Inserisci un indirizzo di email corretto.";
show($error, $message);

come hai detto tu funziona:
if(empty($nome))
{
echo "la stringa nome è vuota";
exit;
}

se non riempio il campo mail mi segnala l'errore sia email che nome ma come metto email e non il nome form mi parte ugualmente:confused:

ravint
18-11-2002, 10.30.39
se ti puo essere utile tutto il codice e' questo in rosso il controllo della email:
<?
### --- PHP Form2Email v1.3 Copyright burt@dotdragnet.co.uk 2001 --- ###
### --- No changes below this line --- ###

$version = "v1.3";

function show($error, $message){
global $version;
unset($GLOBALS["version"]);
echo "<html><head><title></title></head><body>";
echo "<table width=\"400\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" align=\"center\">\n";
echo "<tr><td bgcolor=\"#CCCCCC\"><h5 align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\">$error\n";
echo "</font></h5></td></tr><td height=\"100\" bgcolor=\"#99CCFF\">\n";
echo "<div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">$message</font></div></td></tr><tr><td bgcolor=\"#CCCCCC\">\n";
echo "<div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"></a>";
echo " </font></div>";
echo "</td></tr></table></body></html>";
}
if ($action == "send"){
// Date and Time
$time = date("F jS Y, h:iA");
// Grab the config file
require "configmail.inc.php";
// Do we need to log the IP addresses ?
if ($logip == "1"){
// Open the logfile
if (!file_exists($logipfile)){
$error = "Form Error (No Log File)";
$message = "<b>Warning</b> \"Log IP\" file does not exist - please make a text file named <b>$textname</b> and CHMOD it 777";
show($error, $message);
exit;
}
$fp = @fopen("$logipfile", "a");
if (!($fp)){
$error = "Form Error (CHMOD)";
$message = "<b>Warning</b> The \"Log IP\" file is not set CHMOD 777";
show($error, $message);
exit;
}
}
// Iterate through all the POST variables, add them to the message body:
$message = "0";
// Start Iterate
while (list($key, $value) = each($HTTP_POST_VARS)){
$message .= $key . ': ' . $value . "\r\n";
}
// Grab the env config file
if ($envreport == "1"){
require "configenv.inc.php";
$message .= "IP Address: $ip"."\n";
$message .= "Browser version: $browser";
}
if (!isset($recipient)){
$recipient = $whoto;
}
if (getenv("REQUEST_METHOD") == "GET"){
$error = "Form Error (Request Method)";
$message = "You may only use this script using the \"POST\" method from this domain<br><br>$HTTP_HOST";
show($error, $message);
exit;
}
else {
$checkpoint = ereg("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,6}$",$email);
if($checkpoint==0) {
// if no valid email address entered, display no email message
$error = "Errore nella compilazione!!!<BR>Error in the compilation!!!";
$message = "Inserisci un indirizzo e-mail valido!.
<br> Please input a valid e-mail address!";
show($error, $message);
exit;
}
else {
mail("$recipient", "Contact us Termoacqua", $message, "From: $email");
}
if ($logip == "1"){
fputs($fp, "$ip // $time // $email \n");
// close the textfile
fclose($fp);
}
if ($thankspage == "1"){
header("Location: $pagelocation");
}
else {
$error = "Il messaggio e' stato correttamente inviato.";
$message = $thanksmessage;
show($error, $message);
exit;
}
}
}
?>

P8257 WebMaster
18-11-2002, 13.40.27
devi ragionare logicamente sulla condizione, dovresti postare l'esempio sopra con l'aggiunta della condizione da me indicata . .perché bisogna rendersi conto se il flawing delle istruzioni sulla condizione della non validazione della mail inibisce la condizione successiva.
E' un problema di analisi

Bye :cool:

LoryOne
19-11-2002, 16.19.20
"il flawing delle istruzioni", ossia lo scorrere delle istruzioni.
Pensa sempre che il computer esegue le istruzioni in sequenza una dopo l'altra.
A meno che non vi sia una condizione di salto, ciò che esegue non è altro che ciò che leggi dall'alto verso il basso del tuo script.

Magari mi prenderai per scemo se scrivo ciò che sai da una vita, però segui il mio consiglio:

Riscrivi il codice da zero, soprattutto pensando a quello che stai facendo e magari non facendo un bel "copia ed incolla".

..la soluzione potrebbe essere dietro l'angolo.

ravint
19-11-2002, 22.23.38
:rolleyes: :confused: :( :eek: :wall: :timid: (W) :inn:

LoryOne
20-11-2002, 08.48.07
:D :D :D :D :D

ravint
20-11-2002, 18.51.46
hehehe avete detto tante belle parole ma ne so quanto prima

:confused: :rolleyes:

LoryOne
20-11-2002, 19.40.26
Prima di tutto quante e quali sono le condizioni da verificare ?
Ogni condizione va da se o deve essere verificata insieme ad altre ?

Supponi che in un form tu abbia 3 informazioni che identifichi con A,B,C in questo modo:

A- nome
B- telefono
C- Indirizzo e-mail

Supponi che ti basti conoscere solo il nome:
In questo caso ti basterebbe verificare che il nome non sia vuoto (ossia empty)

if(empty(A))
{
echo "la stringa A è vuota";
exit;
}

Supponi che oltre al nome tu debba aver bisogno persino del telefono
In questo caso dovresti mettere in AND entrambe le condizioni, ossia che nome e telefono NON SIANO VUOTE.

Supponi che tutte e tre le condizioni, ossia A<>null e B<>null e C<>null, debbano essere verificate.
In questo caso dovresti mettere in AND tutte e tre.

Vediamo ora il metodo più semplice:
Supponi di porre a 1 una variabile qualora il campo A non sia vuoto.
Aggiungi 1 alla variabile qualora il campo B non sia vuoto
Aggiungi 1 alla variabile qualora il campo telefono non sia vuoto.

Variabile=0
if(!empty($nome)) --> Aggiungo1 a variabile
if(!empty($indirizzo)) --> Aggiungo 1 a variabile
if(!empty($telefono)) --> Aggiungo 1 a variabile

Variabile è=3 ?

Se tutti e tre i campi non sono vuoti, quella variabile vale 3
Se non vale 3 almeno uno fra A,B e C non è stato compilato.

...ora sta a te buttare giù il codice con la sintassi corretta di PHP.
Ciao.

ravint
20-11-2002, 20.03.13
Ma perche' non ti dai anche all'editoria, faresti dei ottimi manuali PHP :D

ciao e grazie ancora

Massimo
***********