Salve, non trovo risposta al mio "problemino", avrei da fa convalidare due gruppi di Radio (Data e Categoria) magari non si può, chi lo sa, non ho trovato nulla ...
Parte iniziale:
Codice PHP:
<?php $your_email ='iscrizione@xxxxxxxxxxx.it';// <<=== update to your email address $cicci_email ='cicci@xxxxxxxx.it';// <<=== update to your email address session_start(); $errors = ''; $Cognome = ''; $visitor_email = ''; $user_message = ''; if(isset($_POST['submit'])) { $Cognome = $_POST['Cognome']; $visitor_email = $_POST['email']; $user_message = $_POST['Messaggio']; ///------------Do Validations------------- if(empty($Cognome)||empty($visitor_email)) { $errors .= "\n Non sono stati inseriti dei dati. "; } if(IsInjected($visitor_email)) { $errors .= "\n Email non valida!"; } if(empty($_SESSION['antiSPAM'] ) || strcasecmp($_SESSION['antiSPAM'], $_POST['antiSPAM']) != 0) { //Note: the captcha code is compared case insensitively. //if you want case sensitive match, update the check above to // strcmp() $errors .= "\n Inserisci il codice antiSPAM e controlla che i dati siano inseriti tutti!"; } if(empty($errors)) { //send the email $to = $your_email; $subject="Iscrizione GARA"; $from = $visitor_email; $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; $body = "$Cognome ti ha mandato l'iscrizione per il $Data (mese_giorno):\n\n". "Cognome: $Cognome\n". "Nome: $Nome\n". "Telefono: $Telefono\n". "Frequenza: $Frequenza\n". "Frequenza 2: $Frequenza_2\n". "Transponder: $Transponder\n". "Transponder 2: $Transponder_2\n". "Data: $Data\n". "Categoria: $Categoria\n". "Diviso da: $Diviso_Da\n\n". "Email: $visitor_email \n". "Pranzo per: $Pranzo persone\n". "Ordine Transponder: $Ordine_Transponder\n". "Messaggio: \n". "$user_message\n\n". "IP: $ip\n"; $headers = "From: $from \r\n"; $headers .= "Reply-To: $visitor_email \r\n"; mail($to, $subject, $body,$headers); header('Location: grazie.htm'); //Conferma $to = $visitor_email; $subject="Conferma Iscrizione"; $from = $your_email; $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; $body = "I dati della tua iscrizione per il $Data (mese_giorno) sono:\n\n". "Cognome: $Cognome\n". "Nome: $Nome\n". "Telefono: $Telefono\n". "Frequenza: $Frequenza\n". "Frequenza 2: $Frequenza_2\n". "Transponder: $Transponder\n". "Transponder 2: $Transponder_2\n". "Data: $Data\n". "Categoria: $Categoria\n". "Diviso da: $Diviso_Da\n\n". "Pranzo per : $Pranzo persona/e \n". "Ordine Transponder: $Ordine_Transponder\n". "Messaggio: \n". "$user_message\n"; $headers = "From: $from \r\n"; $headers .= "Reply-To: $your_email \r\n"; mail($to, $subject, $body,$headers); header('Location: grazie.htm'); //pranzo $to = $cicci_email; $subject="Prenotazione Pranzo"; $from = $visitor_email; $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; $body = "$Cognome ti ha mandato la prenotazione pranzo per il $Data (mese_giorno):\n\n". "Cognome: $Cognome\n". "Nome: $Nome\n". "Pranzo per : $Pranzo persona/e \n". "Messaggio: \n". "$user_message\n\n"; $headers = "From: $from \r\n"; $headers .= "Reply-To: $visitor_email \r\n"; mail($to, $subject, $body,$headers); header('Location: grazie.htm'); } } // Function to validate against any email injection attempts function IsInjected($str) { $injections = array('(\n+)', '(\r+)', '(\t+)', '(%0A+)', '(%0D+)', '(%08+)', '(%09+)' ); $inject = join('|', $injections); $inject = "/$inject/i"; if(preg_match($inject,$str)) { return true; } else { return false; } } ?>
Il javascript di controllo:
Codice PHP:
<script type="text/javascript"> function MM_validateForm() { //v4.0 if (document.getElementById){ var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' DEVE contenere dei numeri.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' è OBBLIGATORIO.\n'; } } val = MM_findObj('Condizioni'); if(!(val.checked)) { errors += '- NON accetti le condizioni ?'; } } if (errors) alert('Ci sono degli ERRORI nella compilazione del modulo:\n'+errors); document.MM_returnValue = (errors == ''); } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } </script>
I vari campi:
Codice PHP:
<form method="POST" name="contact_form" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <th colspan="2" class="cella_Title" scope="col">Iscrizione GARA</th> </tr> <tr> <th colspan="2" scope="col"><p class="annuncio">Le iscrizioni pervenute senza dati o incomplete SONO nulle ...
<span class="annuncio">Sei <u>tesserato</u> in pista? clicca [url="isc_socio.php"]QUI[/url] per iscriverti ... i tuoi dati li abbiamo
</span><span class="annuncio">
Vuoi modificare un'iscrizione, clicca [url="isc_mod.php"]QUI[/url]</span></p></th> </tr> <tr> <th align="right" scope="col"><input name="Cognome" type="text" class="form" id="Cognome" value='<?php echo htmlentities($Cognome) ?>' size="23"></th> <td class="form_cella_Dx" scope="col"><span class="form_cella_Dx">[b]*[/b] Cognome</span></td> </tr> <tr> <td align="right"><input name="Nome" type="text" class="form" id="Nome" value='<?php echo htmlentities($Nome) ?>' size="23"></td> <td class="form_cella_Dx"><span class="form_cella_Dx">* Nome</span></td> </tr> <tr> <td align="right"><input name="Telefono" type="text" class="form" id="Telefono" value='<?php echo htmlentities($Telefono) ?>' size="23" maxlength="10"></td> <td width="333" class="form_cella_Dx"><span class="form_cella_Dx">Cellulare (a Vostra scelta)</span></td> </tr> <tr> <td align="right"><input name="Frequenza" type="text" class="form" id="Frequenza" value='00.000 <?php echo htmlentities($Frequenza) ?>' size="23" maxlength="6"></td> <td class="form_cella_Dx"><span class="form_cella_Dx">* Frequenza (lasciare 00.000 in caso di dsm)</span></td> </tr> <tr> <td align="right"><input name="Frequenza_2" type="text" class="form" id="Frequenza_2"value='<?php echo htmlentities($Frequenza_2) ?>' size="23" maxlength="6"></td> <td class="form_cella_Dx">Frequenza 2 (scrivere 00.000 in caso di dsm)</td> </tr> <tr> <td align="right"><input name="Transponder" type="text" class="form" id="Transponder" value='0000000 <?php echo htmlentities($Transponder) ?>' size="23" maxlength="7"></td> <td class="form_cella_Dx">Transponder (lasciare 0000000, ti verrà dato quello a noleggio)</td> </tr> <tr> <td align="right"><input name="Transponder_2" type="text" class="form" id="Transponder_2" value='<?php echo htmlentities($Transponder_2) ?>' size="23" maxlength="7"></td> <td class="form_cella_Dx">Transponder 2</td> </tr> <tr> <td align="right"><input name="Diviso_Da" type="text" class="form" id="Diviso_Da" value='<?php echo htmlentities($Diviso_Da) ?>' size="23"></td> <td class="form_cella_Dx">Diviso da ....</td> </tr> <tr> <td align="right"><input name="email" type="text" class="form" id="email" value='<?php echo htmlentities($visitor_email) ?>' size="23"></td> <td class="form_cella_Dx"><span class="form_cella_Dx">* E-Mail</span></td> </tr> <tr> <td align="right"><input name="Pranzo" type="text" class="form" id="Pranzo" value='0 <?php echo htmlentities($Pranzo) ?>' size="23" maxlength="2"></td> <td class="form_cella_Dx">Pranzo, scrivi il numero di persone</td> </tr> <tr> <td align="right"><input name="Ordine Transponder" type="text" class="form" id="Ordine" value='0 <?php echo htmlentities($Ordine_Transponder) ?>' size="23" maxlength="2"></td> <td class="form_cella_Dx">Se vuoi prenotare dei transponder segna la quantità</td> </tr> <tr> <td align="right"></td> <td class="form_cella_Dx"></td> </tr> <tr> <td valign="top" class="form_cella_Sx">Seleziona la data per l'iscrizone</td> <td class="form_cella_Dx"><label> <input name="Data" type="radio" id="Evento_1" value="08_28"> </label> 28 agosto - Gara 1 di 4
<label> <input type="radio" name="Data" value="09_04" id="Evento_2"></label> 4 settembre - Regionale [b]AMSCI[/b] (chiusura iscrizioni il 02/09 alle ore 12.00)
<label> <input type="radio" name="Data" value="10_23" id="Evento_3"></label> 23 ottobre - Gara 2 di 4
<input type="radio" name="Data" value="11_13" id="Evento_4"></label> 13 novembre - Gara 3 di 4
<input type="radio" name="Data" value="12_04" id="Evento_5"> 4 dicembre - Gara 4 di 4</label></td> </tr> <tr> <td align="right"></td> <td></td> </tr> <tr> <td valign="top" class="form_cella_Sx">Seleziona la categoria </td> <td><label> <input type="radio" name="Categoria" value="F1" id="Categoria_0" /> </label> <span class="form_cella_Dx">F1 (Senior)</span>
<label> <input type="radio" name="Categoria" value="F2" id="Categoria_1" /> </label> <span class="form_cella_Dx">F2 (Junior)</span>
<input type="radio" name="Categoria" value="Promotion" id="Categoria_5" /> <span class="form_cella_Dx">Promotion (solo [b]AMSCI[/b])</span>
<label> <input name="Categoria" type="radio" id="Categoria_2" value="Unica" /> </label> <span class="form_cella_Dx">Unica ([b]SOLO[/b] per gare libere)</span>
<label> <input type="radio" name="Categoria" value="Truggy" id="Categoria_3" /> </label> <span class="form_cella_Dx">Truggy</span>
<label> <input type="radio" name="Categoria" value="Brushless" id="Categoria_4" /> </label> <span class="form_cella_Dx">Brushless</span>
<label> <input type="radio" name="Categoria" value="Nitro" id="Categoria_6" /> </label> <span class="form_cella_Dx">Nitro (solo per Regionale UISP)</span></td> </tr> <tr> <td align="right" valign="top" class="form_cella_Sx"></td> <td></td> </tr> <tr> <td align="right"><textarea name="Messaggio" cols=20 class="form"><?php echo htmlentities($user_message) ?></textarea></td> <td><span class="form_cella_Dx">Domande, richieste ...</span></td> </tr> <tr> <td colspan="2" align="left"><p class="condizioni"></tr> <tr> <td colspan="2">[img]captcha_code_file.php?rand=<?php echo rand(); ?>[/img]
<label for='message2'> <span class="pagato">Riscrivi il codice AntiSPAM :</span></label> <input name="antiSPAM" type="text" class="form" id="antiSPAM"> <small class="pagato">Non leggi i caratteri, clicca [url='javascript: refreshCaptcha();'][b]QUI[/b][/url] per cambiarli</small>
<span class="condizioni"> <input name="Condizioni" type="checkbox" id="Condizioni" value="OK" /> </span> <span class="condizioni_bold"> <label for="Condizioni"></label> Accetto
</span> <input name='submit' type="submit" class="form_bottoni" id="submit" onClick="MM_validateForm('Cognome','','R','Nome','','R','Telefono','','NisNum','Frequenza','','RisNum','Transponder','','RisNum','email','','RisEmail','antiSPAM','','R');return document.MM_returnValue" value="Invia"> </td> </tr> <tr> <td colspan="2"><?php if(!empty($errors)){ echo "<p class='err'>".nl2br($errors)."</p>"; } ?></td> </tr> </table> </form>