- Home
- Categorie
- Coding e Sistemistica
- Tutti gli altri Gestionali
- form che non funziona
-
form che non funziona
Salve,
sto incontrando problemi per far funzionare un form online creato con Dreamweaver 8, cioè, dopo aver creato una pagina in HML e una in php le ho caricate sul server remoto, ma per ora ho avuto risultati negativi, e quindi chiedo se per favore potete aiutarmi
le pagine che ho creato sono form-registrazione.htm e send.php , che incollo qui sotto :
<body>
<br><br><br><br><table align="center" width="98%" cellspacing="0" cellpadding="0">
<tr>
<td align="center" class="titolo9">FORM DI REGISTRAZIONE</td>
</tr>
</table>
<br>
<hr align="center" width="99%" size="0.1" color="#EAEAEA">
<br><br><form action="send.php" method="post" enctype="multipart/form-data" target="_blank">
<p align="center" class="titolo9">Nome</p>
<div align="center"><input class="titolo9" name="Nome" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">Cognome</p>
<div align="center"><input class="titolo9" name="Cognome" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">Denominazione istituzione scolastica</p>
<div align="center"><input class="titolo9" name="Denominazione istituzione scolastica" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">I grado / II grado</p>
<p align="center" class="titolo9">
<label>
<input class="titolo9" type="radio" name="Gruppo pulsanti di scelta1" value="pulsante di scelta">
I grado</label>
<br>
<label>
<input class="titolo9" type="radio" name="Gruppo pulsanti di scelta1" value="pulsante di scelta">
II grado</label>
<br>
</p><br><p align="center" class="titolo9">Indirizzo email</p>
<div align="center"><input class="titolo9" name="Indirizzo email" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">Contatto telefonico</p>
<div align="center"><input class="titolo9" name="Contatto telefonico" type="text" size="40" maxlength="50"></div><br><br>
<hr align="center" width="99%" size="0.1" color="#EAEAEA">
<br><br><div align="center"><input name="INVIA" type="submit" onClick="send.php" value="INVIA"></div>
</form>
<br>
<br>
</body>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Send</title>
</head><body>
<?php
if ((trim($_POST['body']) != "")) {
$to = "[email protected]";
$body = $_POST['body'];
$headers = "From: " . $_POST['mail'] . "\n";
mail($to,$body,$headers);
echo"Il form è stato inviato correttamente.";
}
else {
echo "Errore, il form non è stato compilato correttamente.";
}
?>
</body>
</html>
Il messaggio che mi arriva è, appunto, "Errore, il form non è stato compilato correttamente."
Incrociando le dita, vi ringrazio
Andrea
-
Non capisco esattamente cosa vuoi andare a pigliare con $_POST['body'] che non compare come valore in nessun punto del form, per questo motivo penso ti dia sempre errore, perché non essendo specificato risulta sempre vuoto.
Per accorgertene basta aggiungere
else {
echo $_POST['body'];
echo "Errore, il form non è stato compilato correttamente.";
}Se non scrive nulla significa che è vuoto.
Prova poi quest'altro codice
else {
echo $_POST['Nome'];
echo $_POST['Cognome'];
echo "Errore, il form non è stato compilato correttamente.";
}per vedere se almeno passa i valori (dovresti vedere nella pagina che spedisce il nome e cognome).
Fammi sapere se un po' ti ci ritrovi, domani se mi avanza un filo di tempo cerco di sistemarlo tutto
-
Grazie, ci ho provato e appare infatti il mio nome e cognome ma il risultato non è cambiato e ho pure inserito echo $_POST['']; per gli altri campi del form - no way! Per ora niente e io manco il filo di tempo ho avuto
-
Si più che altro era per fare un test che non ci fossero altri problemi e vedere se le variabili passavano.
Di fondo il problema è che $_POST prende il valore del campo che gli specifichi tra le parentesi quadre e body non era specificato da nessuna parte.
Prova in questo modo, anche se ci saranno almeno altre 3 cose da specificare:
- Quali campi vuoi rendere obbligatori da compilare
- Bisognerebbe fare un controllo sui valori inseriti (tipo il numero di telefono deve avere almeno un tot di cifre)
) Bisogna vedere se l'email arriva e non viene bloccata come spam, il modo migliore sarebbe impostare il From: email/@dominiotuosito/.it o .com , cioè fare si che l'email giunga dal tuo dominio e non da Gmail.
Comunque nonostante ciò, vediamo come va:
Cambia il form con
[HTML]<form action="send.php" method="post" enctype="multipart/form-data" target="_blank">
<p align="center" class="titolo9">Nome</p>
<div align="center"><input class="titolo9" name="nome" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">Cognome</p>
<div align="center"><input class="titolo9" name="cognome" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">Denominazione istituzione scolastica</p>
<div align="center"><input class="titolo9" name="istituzione" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">I grado / II grado</p>
<p align="center" class="titolo9"><label><input class="titolo9" type="radio" name="grado" value="primo">I grado</label><br><label><input class="titolo9" type="radio" name="grado" value="secondo">II grado</label><br></p><br>
<p align="center" class="titolo9">Indirizzo email</p><div align="center"><input class="titolo9" name="email" type="text" size="40" maxlength="50"></div><br><br>
<p align="center" class="titolo9">Contatto telefonico</p>
<div align="center"><input class="titolo9" name="telefono" type="text" size="40" maxlength="50"></div><br><br>
<hr align="center" width="99%" size="0.1" color="#EAEAEA"><br><br>
<div align="center"><input name="INVIA" type="submit" value="INVIA"></div></form>[/HTML]
E invece il file send.php con:
<!DOCTYPE html><html> <head> <title></title> </head> <body> <?php if ((trim($_POST['nome']) != "")) { $to = "[email protected]"; $body = "Ti ha contattato ".$_POST['nome']." ".$_POST['cognome']; $body.= "<br><br>"; $body.= $_POST['istituzione']."<br>".$_POST['email']."<br>".$_POST['telefono']; $body.="<br>Grado ".$_POST['grado']; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; $headers .= "From: [email protected] \n"; $headers .= "Reply-To: ".$_POST['email']." \n"; if(mail($to,'Ti hanno contattato',$body,$headers)){ echo'Email inviata correttamente'; } else { echo 'Email non inviata'; } echo"Il form è stato inviato correttamente."; echo $body; } else { echo "Errore, il form non è stato compilato correttamente."; } ?> </body> </html>
E fammi sapere, hai un controllo in questo modo sia sul form, che sull'invio dell'email (cioè se l'email è partita poi al massimo andremo a vedere perché non è arrivata).
-
E' andata .. fumata bianca
Unica midifica che ho fatto è stata quella di modificare indirizzo email nel FROM , inserendone uno del sito web ed ecco la risposta apparsa su send.php:
'Email inviata correttamenteIl form è stato inviato correttamente.Ti ha contattato andrea conforti'
Seguita dai dati inseriti nel form .
Così funziona .. grande
Ti ringrazio, mi hai risolto il problema e ho visto un po' come hai risistemato il send.php - mi riguardo il tutto con calmaGrazie ancora