Visualizzazione risultati 1 fino 24 di 24

Discussione: campi obbligatori form

  1. #1
    Guest

    Predefinito campi obbligatori form

    Codice PHP:
    <body onload="window.setTimeout('history.go(-1)',3000)">

    <?php

    If (($nome=="") || ($cognome=="") || ($libro=="") || ($autore=="")) {echo "Per favore, completa tutti i campi presenti nel modulo!";
    }
    else {echo
    "Congratulazioni! Hai prenotato con successo il tuo libro.";
    $messaggio="Questa email ti è stata inviata dal sito Curie's Books. L'utente " . $_POST['nome'] . " " . $_POST['cognome'] . " della classe " . $_POST['classe'] . " " . $_POST['sezione'] . " ha prenotato " . $_POST['libro'] . " di " . $_POST['autore'];
    mail( " mail@dominio.it " , " Prenotazione " , $messaggio );}

    ?>
    Ragazzi questa pagina dovrebbe ricevere dati da un form e, dopo aver controllato che i campi non siano vuoti, inviarmi una mail ad un dato indirizzo. il problema è che il controllo non funziona, o meglio funziona troppo, poiché l'else non si verifica neanche quando tutti i campi sono correttamente compilati... Dove sbaglio? ps come posso impostare come obbligatoria anche la compilazione dei due campi "radio"? Aiutatemi vi prego, è da pochissimo che cerco di programmare
    Ultima modifica di curiesbooks : 23-02-2013 alle ore 21.06.42

  2. #2
    Guest

    Predefinito

    Prova così:

    Codice PHP:
    <?php

    If (($nome=="") || ($cognome=="") || ($libro=="") || ($autore=="")) echo "Per favore, completa tutti i campi presenti nel modulo!";

    else {echo
    "Congratulazioni! Hai prenotato con successo il tuo libro.";
    $messaggio="Questa email ti è stata inviata dal sito Curie's Books. L'utente " . $_POST['nome'] . " " . $_POST['cognome'] . " della classe " . $_POST['classe'] . " " . $_POST['sezione'] . " ha prenotato " . $_POST['libro'] . " di " . $_POST['autore'];
    mail( " mail@dominio.it " , " Prenotazione " , $messaggio );}

    ?>

  3. #3
    Guest

    Predefinito

    Parse error: syntax error, unexpected T_ELSE in /membri/curiesbooks/prenotazioniperemail.php on line 7 (la riga 7 è quella dell'else) PS oggi sei il mio salvatore... grazie xD

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Le variabili che stai controllando esistono? Le hai riempite tu prima?

    Se stai cercando i campi di un form, quelli sono disponibili nella variabile $_GET.

  5. #5
    Guest

    Predefinito

    si, sono le variabili associate ai campi del form...

    edit:

    niente, non ci riesco... che diavolo sbaglio??
    Ultima modifica di dreadnaut : 26-02-2013 alle ore 22.15.47

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Cosa hai provato a fare? Ti ho già scritto che sbagli ad usare variabili che non esistono, e probabilmente dovresti usare $_GET.

  7. #7
    Guest

    Predefinito

    Codice PHP:

    <html>
    <head>
    <meta charset="iso-8859-1"/>
    <title>Prenotazione</title>
    <link href="http://it.altervista.org/css/alterpages/layout.css" rel="stylesheet" type="text/css" media="screen" />
    <link id="apcss" rel="stylesheet" type="text/css" href="style1.css" />
    </head>

    <body onload="window.setTimeout('history.go(-1)',3000)">
    <div id="wrap">
    <div id="header" class="main-style">

    <img src="http://www.curiesbooks.altervista.org/alterpages/3.jpg#gallery" class="align-center" alt="" title=""/>

    </div>

    <?php

    if ($_POST[nome]!='' && $_POST[cognome]!='' && $_POST[libro]!='' && $_POST[autore]!='') {echo "Congratulazioni! Hai prenotato con successo il tuo libro!";
    $messaggio="Questa email ti è stata inviata dal sito Curie's Books. L'utente " . $_POST['nome'] . " " . $_POST['cognome'] . " della classe " . $_POST['classe'] . " " . $_POST['sezione'] . " ha prenotato " . $_POST['libro'] . " di " . $_POST['autore'];
    mail( " mail@mail.com " , " Prenotazione " , $messaggio );}

    else {echo
    "Per favore, completa tutti i campi presenti nel modulo!";}
    ?>

    </div>
    </body>
    </html>
    alla fine ho risolto cosi, non usando get ma post, il problema era comunque quello segnalato da te, grazie... gia che ci siamo... come posso rendere obbligatori anche dei campi radio senza il javascript, limitandomi all'utilizzo del php?

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Occhio che mancano un sacco di apici: dovrebbe essere $_POST['qualcosa'] invece di $_POST[qualcosa].

    Per rendere un campo obbligatorio puoi fare a meno di javascript, ti basta aggiungere un attributo required al tag html.

    Lato php, devi aggiungere dei controlli sui campi, per verificare che ci siano dei valori. Puoi usare ad esempio isset().

    Avere controlli lato php è importante perché eviti problemi e danni al sito. Averli lato client (js/html) è utile ma opzionale, perché eviti di dover passare ad una nuova pagina se il form non è stato completato correttamente.

  9. #9
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Puoi usare ad esempio isset().
    Non è meglio utilizzare empty() per controllare che i campi non siano vuoti?

  10. #10
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    isset() funziona come empty() [s]ma non da errore se la variabile non esiste[/s] —sbagliai, lo fa anche empty()! Ti permette quindi di fare due operazioni in una: controllare che la variabile esista e che non sia vuota.
    Ultima modifica di dreadnaut : 27-02-2013 alle ore 00.11.22 Motivo: correzione!

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Ti permette quindi di fare due operazioni in una: controllare che la variabile esista e che non sia vuota.
    Non permette di fare soltanto la prima cosa?

    Ciao!

  12. #12
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Scusa, per vuota intendo "null" —isset risponde alla domanda "mi stato passato correttamente un parametro?".

    Se poi è una stringa vuota, o uno zero o false, quello è un problema di validazione —"il parametro passato è un valore corretto per questo campo?"— e per rispondere a questo vanno fatti controlli più precisi che dipendono dall'uso che si farà del valore.

    empty ti permette di controllare che la variabile esista e non sia false. Poi in php un sacco di cose sono equivalenti a false, e quindi puoi controllare che una stringa sia di lunghezza zero, etc.

    Se controlli e validi i parametri assieme allora si, puoi usare empty. Se invece controlli che i parametri esistano e poi fai la validazione da un'altra parte (dove magari accetti parametri vuoti) allora isset più altre cose, ad esempio filter_var() e simili.


    In effetti per il problema di curiesbook è più semplice suggerirgli empty()


    edit: sopra in effetti ho scritto che empty da errore se la variabile non esiste, che non è vero; sbagliai, correggo immantinente!
    Ultima modifica di dreadnaut : 27-02-2013 alle ore 00.12.05

  13. #13
    Guest

    Predefinito

    esiste una funzione esattamente opposta a empty? oppure c'è un modo per invertire il valore che la funzione restituisce?

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Codice PHP:
    if(!empty($variabile))
    {
    }
    Ciao!

  15. #15
    Guest

    Predefinito

    potete incollare il codice funzionante ?

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Ma non ha senso copiare un codice funzionante! Devi capire come funziona e quindi adattarlo alle tue esigenze.

    Ciao!

  17. #17
    Guest

    Predefinito

    e praticamente, ho copiato e incollato il codice, e poi ho modificato le variabili, ma mi è uscito questo

    Codice PHP: Per favore, completa tutti i campi presenti nel modulo!

    Codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Untitled Form</title>
    <link rel="stylesheet" type="text/css" href="view.css" media="all">
    <script type="text/javascript" src="view.js"></script>
    
    </head>
    <body id="main_body" >
    	<div id="form_container">
    	
    		<form id="form_572576" class="appnitro"  method="post" action="iscrizione.php">
    					<div class="form_description">
    			<h2></h2>
    			<p>Compila il modulo sottostante, e sarai contattato al piu' presto</p>
    		</div>						
    			<ul >
    			
    					<li id="li_1" >
    		<label class="description" for="element_1">Nome e Cognome*</label>
    		<span>
    			<input id="element_1_1" name= "Nome" class="element text" maxlength="255" size="8" value=""/>
    			<label>Nome*</label>
    		</span>
    		<span>
    			<input id="element_1_2" name= "Cognome" class="element text" maxlength="255" size="14" value=""/>
    			<label>Cognome*</label>
    		</span> 
    		</li>		<li id="li_2" >
    		<label class="description" for="element_2">Codice Fiscale*</label>
    		<div>
    			<input id="element_2" name="CodiceFiscale" class="element text medium" type="text" maxlength="255" value=""/> 
    		</div> 
    		</li>		<li id="li_3" >
    		<label class="description" for="element_3">P.Iva </label>
    		<div>
    			<input id="element_3" name="P.Iva" class="element text small" type="text" maxlength="255" value=""/> 
    		</div> 
    		</li>		<li id="li_4" >
    		<label class="description" for="element_4">Azienda </label>
    		<div>
    			<input id="element_4" name="Azienda" class="element text medium" type="text" maxlength="255" value=""/> 
    		</div> 
    		</li>		<li id="li_5" >
    		<label class="description" for="element_5">Indirizzo*</label>
    		
    		<div>
    			<input id="element_5_1" name="Recapito Destinatario" class="element text large" value="" type="text">
    			<label for="element_5_1">Via</label>
    		</div>
    	
    		<div>
    			<input id="element_5_2" name="element_5_2" class="element text large" value="" type="text">
    			<label for="element_5_2"></label>
    		</div>
    	
    		<div class="left">
    			<input id="element_5_3" name="Citta" class="element text medium" value="" type="text">
    			<label for="element_5_3">Citta'*</label>
    		</div>
    	
    		<div class="right">
    			<input id="element_5_4" name="Provincia" class="element text medium" value="" type="text">
    			<label for="element_5_4">Provincia*</label>
    		</div>
    	
    		<div class="left">
    			<input id="element_5_5" name="CAP" class="element text medium" maxlength="15" value="" type="text">
    			<label for="element_5_5">C.A.P*</label>
    		</div>
    	
    		<div class="right">
    			<select class="element select medium" id="element_5_6" name="Nazione"> 
    			<option value="" selected="selected"></option>
    <option value="Afghanistan" >Afghanistan</option>
    
    ....
    	
    			</select>
    		<label for="element_5_6">Nazione*</label>
    	</div> 
    		</li>		<li id="li_6" >
    		<label class="description" for="element_6">Tel.*</label>
    		<div>
    			<input id="element_6" name="Tell" class="element text medium" type="text" maxlength="255" value=""/> 
    		</div> 
    		</li>		<li id="li_7" >
    		<label class="description" for="element_7">Cell.*</label>
    		<div>
    			<input id="element_7" name="Cell" class="element text medium" type="text" maxlength="255" value=""/> 
    		</div> 
    		</li>		<li id="li_8" >
    		<label class="description" for="element_8">Email*</label>
    		<div>
    			<input id="element_8" name="Email" class="element text medium" type="text" maxlength="255" value=""/> 
    		</div> 
    		</li>		<li id="li_9" >
    		<label class="description" for="element_9">Note </label>
    		<div>
    			<textarea id="element_9" name="Note" class="element textarea medium"></textarea> 
    		</div> 
    		</li>
    			 <p>
     <input name="privacy" type="checkbox" id="privacy" value="1" />
    <label for="privacy">Accetto al trattamento dei miei dati personali</label></p>
    
    			    
    				<input id="saveForm" class="button_text" type="submit" name="submit" value="Invio" />
    		</li>
    			</ul>
    		</form>	
    		<div id="footer">
    		
    		</div>
    	</div>
    	<img id="bottom" src="bottom.png" alt="">
    	
    	</body>
    </html>
    magari sbaglio e devo mettere l'input id come variabile, invece di mettere name
    Ultima modifica di adempius : 01-03-2013 alle ore 18.52.35

  18. #18
    Guest

    Predefinito

    Non puoi scrivere così

    Codice HTML:
    <input id="element_1_1" name= "Nome" class="element text" maxlength="255" size="8" value=""/>
    			<label>Nome*</label>
    ma devi scrivere così

    Codice HTML:
    <input id="element_1_1" name="Nome" class="element text" maxlength="255" size="8" value=""/>
    			<label>Nome*</label>

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da australiafever Visualizza messaggio
    Non puoi scrivere così

    Codice HTML:
    <input id="element_1_1" name= "Nome" class="element text" maxlength="255" size="8" value=""/>
    			<label>Nome*</label>
    ma devi scrivere così

    Codice HTML:
    <input id="element_1_1" name="Nome" class="element text" maxlength="255" size="8" value=""/>
    			<label>Nome*</label>
    ma sul forum? o nel codice online?
    Ultima modifica di adempius : 01-03-2013 alle ore 19.40.30

  20. #20
    Guest

    Predefinito

    Se conosci l'HTML dovresti aver capito l'errore.

  21. #21
    Guest

    Predefinito

    ti riferisci allo spazio? mi stai dicendo che se aggiusto lo spazione poi funziona il codice php?

  22. #22
    Guest

    Predefinito

    In teoria si, perché prima il tag name non poteva funzionare.

  23. #23
    Guest

    Predefinito

    infatti in teoria, ho provuto ad aggiustarlo ma mi esce sempre Codice PHP: Per favore, completa tutti i campi presenti nel modulo!

  24. #24
    Guest

    Predefinito

    Ci sarà qualche altro errore, ma quello andava corretto.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •