![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
User
Data di registrazione: Feb 2010
Messaggi: 21
|
Problema form php...ricevo una mail vuota
Avrei bisogno di aiuto se possibile....ho creato un form sul mio sito con relativa pagina .php per l'invio,fino qui tutto ok,la mail viene spedita ma una volta arrivata e aperta i campi richiesti sono tutti vuoti,ho gia provato una decina di volte a compilare tutti i campi ma il risultato e' sempre uguale...una mail con tutti i campi vuoti...cosa sbaglio?
![]() |
|
|
|
|
|
|
|
#3 (permalink) |
|
User
Data di registrazione: Feb 2010
Messaggi: 21
|
Scusami e' vero...
codice php <?php /* INVIO SEMPLICE */ $destinatario = "miamail"; $oggetto = "Email inviata dal sito"; $messaggio = "Citta: $Citta2\n"; $messaggio .= "Mare: $Mare\n"; $messaggio .= "Montagna: $Montagna\n"; $messaggio .= "Lago: $Lago\n"; $messaggio .= "Citta: $Citta\n"; $messaggio .= "Provincia: $Provincia\n"; $messaggio .= "Nome H: $NomeH\n"; $messaggio .= "Categoria: $Categoria\n"; $messaggio .= "Periodo offerta: $Periodo\n"; $messaggio .= "Da euro: $Da\n"; $messaggio .= "Sito internet: $Sito\n"; $messaggio .= "Email: $Email\n"; $messaggio .= "Nome Responsabile: $Nome\n"; $da = $email; $intestazioni = "From: $da"; mail($destinatario,$oggetto,$messaggio,$intestazio ni); ?> questo invece il form html <form action="invia.php" method="post" enctype="multipart/form-data" name="form1" id="form1"> <fieldset> <legend>Info</legend> <h3>Compila tutti i dati </h3> <p>Posizione ---> <input type="radio" name="radio" id="Citta2" value="Citta2" tabindex="10" /> <label for="Citta2">Città </label> <input type="radio" name="radio" id="Mare" value="Mare" tabindex="20" /> <label for="Mare">Mare</label> <input type="radio" name="radio" id="Montagna" value="Montagna" tabindex="30" /> <label for="Montagna">Montagna</label> <input type="radio" name="radio" id="Lago" value="Lago" tabindex="40" /> <label for="Lago">Lago</label> </p> <p> <label for="Citta"> Città </label> <input type="text" name="Citta" id="Citta" tabindex="50" /> </p> <p> <label for="Provincia">Provincia</label> <input type="text" name="Provincia" id="Provincia" tabindex="60" /> </p> <p> <label for="NomeH">Nome H</label> <input type="text" name="NomeH" id="NomeH" tabindex="70" /> </p> <p> <label for="Categoria">Categoria</label> <select name="Categoria" size="1" id="Categoria" accesskey="1" tabindex="2"> <option value="2">2</option> <option value="2.5">2.5</option> <option value="3">3</option> <option value="3.5">3.5</option> <option value="4">4</option> <option value="4.5">4.5</option> <option value="5">5</option> </select> </p> <p> <label for="Periodo">Periodo offerta dal/al</label> <input type="text" name="Periodo" id="Periodo" tabindex="80" /> <label for="Da">Da €/notte</label> <input type="text" name="Da" id="Da"tabindex="90" /> </p> <p> <label for="Sito">Sito internet Hotel</label> <input type="text" name="Sito" id="Sito" tabindex="100" /> <label for="Email">Email</label> <input type="text" name="Email" id="Email" tabindex="1100" /> </p> <p> <label for="Nome"> Nome Responsabile</label> <input type="text" name="Nome" id="Nome" tabindex="120" /> </p> <p> </p> <p> <label for="Invia"></label> <input type="submit" name="Invia" id="Invia" value="Invia" tabindex="130" /> </p> </fieldset> </form> |
|
|
|
|
|
#6 (permalink) | |
|
User
Data di registrazione: Feb 2010
Messaggi: 13
|
Ok, mi ci volevano 3 secondi in più per svelare l'arcano (che tanto arcano poi non è!).
Quando passi una variabile da un form con method="post", nella pagina php di destinazione (in questo caso invia.php) le variabili hanno il nome preceduto da $_POST['value']. Praticamente i tuoi dati del form fanno parte dell'array $_POST che viene passato a invia.php Così per esempio il valore relativo a: Quote:
$_POST['Citta2'] e non semplicemente $Citta2 Per far funzionare il tutto basta assegnare il valore alle variabili, all'inizio dello script php, così: $Citta2 = $_POST['Citta2']; Attenzione pero' che uno script così è un invito a nozze per hackers e compagnia bella! Dovresti filtrare ogni valore in entrata sui tuoi scripts PHP, controllando il tipo di variabile ma ancora meglio usando sempre espressioni regolari! aggiungo: quando le cose non funzionano fai sempre un rapido debug preventivo. Se la mail arriva vuota, probabilmente le variabili sono vuote. Controlla che le variabili abbiano dei valori con un: echo $nome_variabile; die; | |
|
Ultima modifica di miopc : 08-02-10 16:22. |
||
|
|
|
|
|
#8 (permalink) |
|
User
Data di registrazione: Feb 2010
Messaggi: 13
|
Bhe i rischi che corri sono proporzionali alla complessità del tuo sito e a la quantità e qualità di informazioni che vi sono presenti.
Se non filtri la tua variabile post, chiunque può "iniettare" del codice all'interno del tuo server. Per questo è sempre buona norma usare lo stripslashes se non magic_quotes non è attivo, o filtrare con eregi e l'espressione regolare che ti interessa (es. solo lettere e numeri). Per una discussione più approfondita su questo argomento sono sicuro che qualche moderatore appena vedrà il thread ti saprà consigliare la sezione adatta del forum. La sicurezza in PHP è una questione di cruciale importanza, che ogni programmatore deve tenere in considerazione prima di scrivere qualsiasi righetta di codice. |
|
|
|
|
|
#10 (permalink) |
|
User
Data di registrazione: Feb 2010
Messaggi: 21
|
Ho provato cosi...ma non funziona e ho provato anche togliendo $Citta2= lasciando solo $_POST['Citta2']; ...la mail arriva compilata ma con tutti i campi attaccati e non si capisce niente,praticamente la mail che arriva non ha tutti i campi divisi ma e' una frase unica,non legge i campi penso.
<?php /* INVIO SEMPLICE */ $destinatario = "mia mail"; $oggetto = "Email inviata dal sito"; $Citta2 = $_POST['Citta2']; $Mare = $_POST['Mare']; $Montagna = $_POST['Montagna']; $Lago = $_POST['Lago']; $Citta = $_POST['Citta']; $Provincia = $_POST['Provincia']; $NomeH = $_POST['NomeH']; $Categoria = $_POST['Categoria']; $Periodo = $_POST['Periodo']; $Da = $_POST['Da']; $Sito = $_POST['Sito']; $Email = $_POST['Email']; $Nome = $_POST['Nome']; $da = $email; $intestazioni = "From: $da"; mail($destinatario,$oggetto,$messaggio,$intestazio ni); ?> |
|
|
|
|
|
#12 (permalink) | |
|
User
Data di registrazione: Feb 2010
Messaggi: 13
|
Quote:
Se non vuoi fare una email HTML devi usare \n per una nuova linea e/o \t per una tabulazione. | |
|
|
|
|
|
#15 (permalink) |
|
User Newbie
Data di registrazione: Feb 2012
Ubicazione: Matera
Messaggi: 2
|
Salve a tutti sono nuovo del forum e soprattutto di linguaggio php. Leggendo questa discussione ho notato che il form in questione è molto simile al mio, il mio è ancora più semplice. Nonostante abbia seguito i consigli citati quando mi invia la mail, invece di tutti i campi:nome,città,email e testo del messaggio, mi arriva solo il testo del messaggio..Dove sbaglio?
Vi posto il codice: Html <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento senza titolo</title> <style type="text/css"> <!-- #form1 { width: 500px; margin-left: 150px; margin-top: 50px; } #form1 fieldset { margin-left: 10px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #09F; color: #FFF; padding: 20px; } #form1 fieldset legend { font-family: Arial, Helvetica, sans-serif; font-size: 14px; text-transform: uppercase; } #form1 fieldset #submit { margin-left: 400px; padding: 0px; } #form1 fieldset #invia { margin-left: 400px; } --> </style> </head> <body> <form action="invia.php" method="post" enctype="multipart/form-data" name="form1" id="form1"> <fieldset> <legend>Informazione di registrazione</legend> <p> <label for="nome">Nome</label> <input type="text" name="nome" id="nome" tabindex="10" /> </p> <p> <label for="citta">Città</label> <input type="text" name="citta" id="citta" tabindex="20" /> </p> <p> <label for="email">Email</label> <input type="text" name="email" id="email" tabindex="30" /> </p> <p> </p> </fieldset> <fieldset> <legend></legend> <legend>IL tuo Messaggio</legend> <p> <label> <textarea name="testo" cols="50" rows="5" id="testo"></textarea> </label> </p> </p> <input type="submit" name="invia" id="invia" value="Invia" /> </p> </fieldset> </form> </body> </html> PHP <?php $destinatario = "mia@email.it"; $oggetto = "email"; $messaggio = "nome: ".htmlentities($_POST['nome']); $messaggio = "citta: ".htmlentities($_POST['citta']); $messaggio = "Email: ".htmlentities($_POST['email']); $messaggio = "testo: ".htmlentities($_POST['testo']); $da = $email ; $intestazioni = "From: $da"; mail($destinatario,$oggetto,$messaggio,$intestazio ni); ?> Grazie mille per l'attenzione(se ci sarà )Saluti |
|
|
|