23. juni 2006 - 10:49
Der er
6 kommentarer og 1 løsning
Form på en side
Hej eksperter. Jeg har lavet en simpel PHP form ud fra et ekempel i en bog. I formen skal brugene indtaste sine oplysninger, som så sendes som email til mig. Formen virker perfekt. Men den ligger i to dokumenter. Og når man har trykket send, sendes man videre til en anden side, hvor "print" teksten står. Jeg ønsker at man skal blive på siden hvor indtastningen er forgået, men at formen bliver udskiftet af "print" teksten. Jeg håber i kan hjælpe med at få intigreret mit php script rigtigt. her er php scriptet: <?php print "Tak for din henvendelse. <br><br>\n\n"; $msg = "Navn: $_POST[navn]\n"; $msg .= "Adresse: $_POST[adresse]\n"; $msg .= "Postnr: $_POST[postnr]\n"; $msg .= "By: $_POST[by]\n"; $msg .= "Telefon: $_POST[telefon]\n"; $msg .= "Email: $_POST[email]\n"; $recipient = "peter@xx.dk"; $subject = "Kontakt"; $mailheaders = "xx <x> \n"; $mailheaders .= "Reply-To: $_POST[email]"; mail($recipient, $subject, $msg, $mailheaders); ?> og her er form filen <table width="550" height="450" border="0"> <tr> <td width="28"> </td> <td valign="bottom"> <form id="kontaktForm" name="kontaktForm" method="post" action="mailsender.php"> <p onfocus="MM_validateForm('navn','','R','adresse','','R','postnr','','RisNum','by','','R','telefon','','RisNum','email','','RisEmail');return document.MM_returnValue"></p> <table width="258" border="0"> <tr> <td>Navn:</td> <td> </td> <td><input name="navn" type="text" size="25" /></td> </tr> <tr> <td>Adresse:</td> <td> </td> <td><input name="adresse" type="text" size="25" /></td> </tr> <tr> <td>Postnr.:</td> <td> </td> <td><input name="postnr" type="text" size="25" /></td> </tr> <tr> <td>By:</td> <td> </td> <td><input name="by" type="text" size="25" /></td> </tr> <tr> <td>Telefon nr.: </td> <td> </td> <td><input name="telefon" type="text" size="25" /></td> </tr> <tr> <td>E-mail:</td> <td> </td> <td><input name="email" type="text" size="25" /></td> </tr> <tr> <td> </td> <td> </td> <td align="left"><input name="submit" type="submit" value="Send" /> </td> </tr> </table> <p onfocus="MM_validateForm('navn','','R','adresse','','R','postnr','','RisNum','by','','R','telefon','','RisNum','email','','RisEmail');return document.MM_returnValue"> </form> </td> <td width="250"> </td> </tr> </table>
Annonceindlæg fra Academic Work Denmark A/S
I samme fil? Så gør du blot sådan (læg mærke til attributten action i <form>): <?php print "Tak for din henvendelse. <br><br>\n\n"; $msg = "Navn: $_POST[navn]\n"; $msg .= "Adresse: $_POST[adresse]\n"; $msg .= "Postnr: $_POST[postnr]\n"; $msg .= "By: $_POST[by]\n"; $msg .= "Telefon: $_POST[telefon]\n"; $msg .= "Email: $_POST[email]\n"; $recipient = "peter@xx.dk"; $subject = "Kontakt"; $mailheaders = "xx <x> \n"; $mailheaders .= "Reply-To: $_POST[email]"; mail($recipient, $subject, $msg, $mailheaders); ?> <html> <body> <table width="550" height="450" border="0"> <tr> <td width="28"> </td> <td valign="bottom"> <form id="kontaktForm" name="kontaktForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <p onfocus="MM_validateForm('navn','','R','adresse','','R','postnr','','RisNum','by','','R','telefon','','RisNum','email','','RisEmail');return document.MM_returnValue"></p> <table width="258" border="0"> <tr> <td>Navn:</td> <td> </td> <td><input name="navn" type="text" size="25" /></td> </tr> <tr> <td>Adresse:</td> <td> </td> <td><input name="adresse" type="text" size="25" /></td> </tr> <tr> <td>Postnr.:</td> <td> </td> <td><input name="postnr" type="text" size="25" /></td> </tr> <tr> <td>By:</td> <td> </td> <td><input name="by" type="text" size="25" /></td> </tr> <tr> <td>Telefon nr.: </td> <td> </td> <td><input name="telefon" type="text" size="25" /></td> </tr> <tr> <td>E-mail:</td> <td> </td> <td><input name="email" type="text" size="25" /></td> </tr> <tr> <td> </td> <td> </td> <td align="left"><input name="submit" type="submit" value="Send" /> </td> </tr> </table> <p onfocus="MM_validateForm('navn','','R','adresse','','R','postnr','','RisNum','by','','R','telefon','','RisNum','email','','RisEmail');return document.MM_returnValue"> </form> </td> <td width="250"> </td> </tr> </table> </body> </html>
Nok dumt at sende tomme mails... Sæt lige en kontrol på at der er submittet noget.
ja. Den sender mailen lige så snart man kommer ind på siden.
my bad - var lige for hurtig :) <?php if ($_POST['submit']) { print "Tak for din henvendelse. <br><br>\n\n"; $msg = "Navn: $_POST[navn]\n"; $msg .= "Adresse: $_POST[adresse]\n"; $msg .= "Postnr: $_POST[postnr]\n"; $msg .= "By: $_POST[by]\n"; $msg .= "Telefon: $_POST[telefon]\n"; $msg .= "Email: $_POST[email]\n"; $recipient = "peter@xx.dk"; $subject = "Kontakt"; $mailheaders = "xx <x> \n"; $mailheaders .= "Reply-To: $_POST[email]"; mail($recipient, $subject, $msg, $mailheaders); } ?>
02. august 2006 - 12:56
#5
Jeg kan ikke få det til at virke. Jeg lukker her.
02. august 2006 - 23:33
#6
Hm? Det findes der da råd for ;)
02. august 2006 - 23:47
#7
Lad være med at hjælpe ham, han lukker altid med at han ikke kan få det til at virke eller han selv har fundet en anden løsning...
Vi tilbyder markedets bedste kurser inden for webudvikling