form php con checkbox

massimiliano76

Nuovo Utente
26 Apr 2016
1
0
0
salve a tutti,
ho un problema con la formazione di un form contenente dei checkbox. in pratica non riesco ad includere nel messaggio in uscita le voci selezionate nei checkbox. qualcuno potrebbe darmi un aiuto? ho incluso lo script del form.
così com'è il messaggio esce, ma se sulla riga 46 provo ad includere 'interessi', alla sottoscrizione mi restituisce errore.
grazie anticipatamente a chiunque possa dare qualche consiglio.

PHP:
<html>

<script>
 function goBack()
   {
     window.history.back()
   }
 </script>

<body>
<div class=" clear">

<?php
if (isset($_REQUEST['email'])) {
	//send email
	$email = $_REQUEST['email'] ;
	$subject = $_REQUEST['subject'] ;
	$message = $_REQUEST['message'] ;
	
	
	
	echo "<table class='table' width='50%'>
		<tr class='table_header'>
			<td>Contact Form</td>
		</tr>
		<tr class='row1'>
			<td>";
				if ($email == "") {
					echo "ERROR: you have to fill in a E-mail adress<br>";
					echo "<input type='button' value='Back' onclick='goBack()' />";
					exit;
				}
				if ($subject == "") {
					echo "ERROR: you have to fill in a subject<br>";
					echo "<input type='button' value='Back' onclick='goBack()' />";
					exit;
				}
				if ($message == "") {
					echo "ERROR: you have to fill in a message<br>";
					echo "<input type='button' value='Back' onclick='goBack()' />";
					exit;
				
				}
				
			mail($my_email, $subject,
			$message,  "From:" . $email);
			echo "Grazie per esserti iscritto. Potrai aggiornare integrare e cancellare i tuoi dati dalla nostra mail list in qualsiasi momento, ricompilando il form con la richiesta specifica<br>Your message has been send.
			</td>
		</tr>
	</table>";
 
} else {

	echo "<form method='post' action='contatti.php'>
		<table class='table' width='100%'>
			<tr class='table_header'>
				<td colspan='2'><h1>Contatti</h1><h2>Sezione in lavorazione, potete comunque conttatarci ad uno degli idirizzi e mail sopra indicati. Grazie per la comprensione</h2></td>
				</tr>
				<tr><td colspan='4'><h1>Iscrivendoti alla nostra newsletter sarai aggiornato sulle nostre migliori proposte di viaggio</h1></td>
				</tr>

			</tr>
			<tr class='row1'>
				<td>Email:</td>
				<td><input name='email' type='text' /></td>
			</tr>
			<tr class='row1'><td>Oggetto:</td>
				<td>
					<input name='subject' type='text' />
				</td>
			</tr>
			<tr class='row1'>
				<td valign='top'>Messaggio:</td>
				<td>
					<textarea name='message' rows='8' cols='40'></textarea>
				</td>
			</tr>
			<tr><td class='row1'><hr></td>
				<td class='row1'><hr></td>
				<td class='row1'><hr></td>
				</tr>
			<tr>
			<td></td>
			<td>Selezionate le aree d'interesse di cui vorrete essere aggiornati</td></tr>

				
			<tr class='row1'>
				<td valign='top'>Escursioni:</td>
				<td>
				<input type='checkbox' name='interessi[]' value='escursioni' />
				
					
				</td>
			</tr>
			<tr><td class='row1'><hr></td>
				<td class='row1'><hr align='left' width='90px'></td>
				<td class='row1'></td>
				</tr>

			<tr class='row1'>
				<td valign='top'>Eventi:</td>
				<td>
					<input type='checkbox' name='interessi[]' value='eventi' />

				</td>
			</tr>
			<tr><td class='row1'><hr></td>
				<td class='row1'><hr align='left' width='90px'></td>
				<td class='row1'></td>
				</tr>

			<tr class='row1'>
				<td valign='top'>Dove Dormire:</td>
				<td>
				<input type='checkbox' name='interessi[]' value='dove_dormire' />
				
					
				</td>
			</tr>
			<tr><td class='row1'><hr></td>
				<td class='row1'><hr align='left' width='90px'></td>
				<td class='row1'></td>
				</tr>
				
			<tr class='row1'>
				<td valign='top'>Dove Mangiare:</td>
				<td>
				<input type='checkbox' name='interessi[]' value='dove_mangiare' />
				
					
				</td>
			</tr>
			<tr><td class='row1'><hr></td>
				<td class='row1'><hr align='left' width='90px'></td>
				<td class='row1'></td>
				</tr>

			<tr class='row1'>
				<td valign='top'>Noleggio Auto:</td>
				<td>
				<input type='checkbox' name='interessi[]' value='noleggio_auto' />
				
					
				</td>
			</tr>
			<tr><td class='row1'><hr></td>
				<td class='row1'><hr align='left' width='90px'></td>
				<td class='row1'></td>
				</tr>

			<tr class='row1'>
				<td valign='top'>Transfert:</td>
				<td>
				<input type='checkbox' name='interessi[]' value='transfert' />
				
					
				</td>
			</tr>
			<tr><td class='row1'><hr></td>
				<td class='row1'><hr align='left' width='90px'></td>
				<td class='row1'><hr></td>
				</tr>


			<tr class='row1'>
				<td></td>				
				<td valign='top'><hr>* Autorizzazione al trattamento dei dati personali<br></td>
				
				<td><input type='checkbox' name='autorizzazione[]' value='si, autorizzo al trattamento dei dati personali' /></td>
				
			</tr>
			<tr class='row1'>
				<td valign='top'></td>
				<td>
					
				</td>
			</tr>



			<tr class='row1'>
				<td>&nbsp;</td>
				<td>
					<input type='submit' value='Invia' />
				</td>
			</tr>
		</table>
	</form>";
}
?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti schematizzo
PHP:
<?php
if(isset($_POST['invia'])){
	//attento $_POST['interessi'] è un array di array
	if($_POST['interessi']==NULL){
		$interesse="nessun interesse<br>";
	}else{
		$interesse="interessato a: ";
		foreach($_POST['interessi'] as $int){
			$interesse .=" ".$int." ";
		}
		$interesse .=" <br>";
	}
	echo $interesse;
}
?>
<form action="#" method="post">
	uno <input type='checkbox' name='interessi[]' value='uno' /><br>
	due <input type='checkbox' name='interessi[]' value='due' /><br>
	tre <input type='checkbox' name='interessi[]' value='tre' /><br>
    <input name="invia" type="submit" id="invia" value="Invia">
</form>

poi ti consiglio:
per l'autorizzazione della privacy ti conviene usare i radio
HTML:
si <input name="autorizzazione" type="radio" value="si" checked> no<input name="autorizzazione" type="radio" value="no">

per la verifica dell'email usa
PHP:
<?php
//....
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
	echo "ERROR: you have to fill in a E-mail adress<br>";
	echo "<input type='button' value='Back' onclick='goBack()' />";
	exit;
} 
//.....
?>
verificando solo che sia vuota uno potrebbe inviarti ahahahhhh che non è un indirizzo

p.s.
quando scrivi usa gli apposisti bccode per ragghiudere gli script (seconda riga di formattazione del post, ultime tre iconcine)
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Attenzione che per validare un indirizzo email con i filtri non basta usare il filtro validate ma ci vuiole anche il sanitize, questo perché validate, valida se un indirizzo è scritto nel modo corretto ma non elima i caratteri spuri, per questo si utilizza il filtro sanitize.
In pratica bisogna fare questo giochino:
PHP:
function filtraEmail( $indirizzo ){
    $emailSana = filter_var($indirizzo, FILTER_SANITIZE_EMAIL );
    if ( filter_var( $emailSana, FILTER_VALIDATE_EMAIL )) {
        return $emailSana;
    }
return false;
}
Ovvero la funzione prima sanitizza gli indirizzi email per caratteri supuri, cioè fuori dalle regole dell'RFC 2822 ( mi pare ) poi se è giusta con il controllo di validazione controlla se è anche scritta bene e in quel caso restituisce l'indirizzo, altrimenti restituisce false.

Poi :D
Se si usano i filtri per una cosa, tanto vale usarli sempre e per tutto, compreso il loro meccanismo sono semplici da usarsi.
Per verificare l'indirizzo email basta richiamare la funzione come una callback, così:
PHP:
function filtraEmail( $indirizzo ){
    $emailSana = filter_var($indirizzo, FILTER_SANITIZE_EMAIL );
    if ( filter_var( $emailSana, FILTER_VALIDATE_EMAIL )) {
        return $emailSana;
    }
return false;
}

//  Semplificando molto....
$indirizzoEmail = filter_input( INPUT_POST, 'email', FILTER_CALLBACK, array( 'options' => 'filtraEmail' ));
//  E in indirizzoEmail ti ritrovi l'indirizzo passato se giusto, altrimenti un valore false se scritto male.
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Altra cosa, se ho capito bene il problema esposto da @massimiliano76, attenzione perché se un valore non esiste il protocollo http/s passa un campo vuoto se questo è definito ( vedi il caso di un input di testo con value="" ) ma se non esiste non passa proprio nulla, come se il campo in questione proprio non fosse mai esistito.
E' il caso dei checkbox e radiobutton, se inserisci nel codice un checkbox che deve ritornarti un valore 1 se spuntato ( checked ) nel caso non sia spuntato non viene riportato nulla!
In altre parele, se il campo in questione si chiama name="privacy" e il suo value è value="1" e se questo è spuntato, nell'array POST ti ritrovi la copia valore privacy=1 ma se non è spuntato non ti trovi proprio il valore privacy, semplicemente non esiste perché per lui è importante ciò che è definito in value, ma qui non c'è dato che non è spuntato e quindi value è indefinito.
E non passa false o null perché sono due valori definiti, ma non può essere sicuro a priori di ciò che il programmatore voleva fare.
Quindi se il campo privacy esiste ed è uguale a 1 è significativo, se non esiste, ma tu te lo aspettavi, allora è 0.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao marcograzia
per il filter_var hai ragione anche se l'avevo fatto per semplificare, quello che non capisco è cosa intendi quando parli del radio privacy, io lo terrei diviso e indipendente dalla scelta dell'interesse
in quanto l'interesse è indipendente da dare l'autorizzazione o meno alla privacy
 
Discussioni simili
Autore Titolo Forum Risposte Data
S passare un valore da un form a un file .php con metodo post PHP 4
G Invio form con PHP PHP 3
S [PHP] Recupero nome immagine da Form con input file PHP 3
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
I [PHP] inviare form con allegato tramite una mail PHP 1
P PHP - Leggere una pagina passata con Form e Captcha PHP 0
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
U [PHP] Form stessa pagina con qualche complicazione PHP 0
S [PHP] form con metodo get e recupero id PHP 4
michela90 [PHP] Refresh page on submit - Form con Swiftmailer PHP 14
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
F [PHP] Validare form prenotazione appuntamento tattoo con upload image PHP 0
S Html con form e action .php PHP 6
bubino8 [PHP] Auto Submit form con dati PHP 7
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
zammaeng [PHP] Problema form con lista PHP 8
V [PHP] Form con elenco a tendina con dati DB PHP 20
asevenx [PHP] form con select che non invia dati se con apostrofo PHP 4
SimooRu [PHP] Non riesco a far passare i dati con i form PHP 4
S [PHP] Form iscrizione senza DB con comandi deprecated PHP 10
Fuego2806 [PHP] Stampare dati Form su immagine di sfondo con html PHP 70
C [PHP] Upload immagine in un form con target _blank: non funziona PHP 7
D form php con chapta PHP 1
P invio mail da form con dati php PHP 7
P PHP mailer invio form con 2 allegati. PHP 3
F controllo form php con restituzione errori nella form PHP 10
S Form invio mail html, con invio tramite file denominato invio.php PHP 8
P Verifica form solo con php senza javascript PHP 15
F Form Multipli con PHP e SQL PHP 0
M Tabella PHP con sorgente dati csv: selezionare le riche e compilare Form eMail PHP 1
elpirata Generazione dinamica righe form con php PHP 2
L come passare il campo allegato dal file html al fiel php per spedirlo con un form PHP 12
S Problema php con form PHP 0
A Pulsante per compilare una form php in automatico con dati presi da un db PHP 6
S Problema con l'invio del form in php PHP 0
P controllo dati form con jquery e php PHP 8
S Form PHP e validazione con ritorno di parametro PHP 0
A problema con un semplice form per un loggin in php PHP 2
C problema invio mail con form php PHP 0
alessandro1997 Form con campi multipli in PHP PHP 5
B Creare form contatti con php PHP 4
M [Cerco retribuito] Form info varie con allegato FLASH + PHP Offerte e Richieste di Lavoro e/o Collaborazione 0
I [PHP]Problema sito con form login in ogni pagina PHP 7
A Form per alimentare un DB con PHP: aiuto!! PHP 17
W [Php - MySql] ricerca con form select diversi PHP 14
A Nascondere gli elementi di un form con php PHP 5
P Problema moduli Form.php con browser diversi PHP 2
SolidSnake4 invio file video con form php PHP 8
T ho un problema con un form in php PHP 1
F ordinare una form con uno script php PHP 2

Discussioni simili