Permalänk
Medlem

E-post form med HTML/PHP

Jag har en hemsida som jag tänkte lägga till en PHP och HTML form där man kan skicka ett mail till administratören. Då jag inte kan koda i PHP så valde jag att googla på det.

Koden jag hittade är då:

HTML:

<form name="htmlform" method="post" action="html_form_send.php"> <table width="450px"> </tr> <tr> <td valign="top"> <label for="first_name">First Name *</label> </td> <td valign="top"> <input type="text" name="first_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top""> <label for="last_name">Last Name *</label> </td> <td valign="top"> <input type="text" name="last_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="email">Email Address *</label> </td> <td valign="top"> <input type="text" name="email" maxlength="80" size="30"> </td> </tr> <tr> <td valign="top"> <label for="telephone">Telephone Number</label> </td> <td valign="top"> <input type="text" name="telephone" maxlength="30" size="30"> </td> </tr> <tr> <td valign="top"> <label for="comments">Comments *</label> </td> <td valign="top"> <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:center"> <input type="submit" value="Submit"> ( <a href="http://www.freecontactform.com/html_form.php">HTML Form</a> ) </td> </tr> </table> </form>

Dold text

PHP:

<?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "you@yourdomain.com"; $email_subject = "Your email subject line"; function died($error) { // your error code can go here echo "We are very sorry, but there were error(s) found with the form you submitted. "; echo "These errors appear below.<br /><br />"; echo $error."<br /><br />"; echo "Please go back and fix these errors.<br /><br />"; die(); } // validation expected data exists if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // not required $comments = $_POST['comments']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'The First Name you entered does not appear to be valid.<br />'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; } if(strlen($comments) < 2) { $error_message .= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Last Name: ".clean_string($last_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Telephone: ".clean_string($telephone)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; // create email headers $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?> <!-- include your own success html here --> Thank you for contacting us. We will be in touch with you very soon. <?php } ?>

Dold text

Men då jag ville ändra lite saker med dem, så fixade jag lite. Efteråt ser dem ut så här:

HTML:

<form name="contactform" method="post" action="send_form_email.php"> <table width="450px"> <tr> <td valign="top"> <label for="first_name">Namn *</label> </td> <td valign="top"> <input type="text" name="first_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="email">Epost adress *</label> </td> <td valign="top"> <input type="text" name="email" maxlength="80" size="30"> </td> </tr> <tr> <td valign="top"> <label for="comments">Kommentar *</label> </td> <td valign="top"> <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:center"> <input type="submit" value="Kommentera"> </td> </tr> </table> </form>

Dold text

PHP:

<?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "kommentar@HEMLIG@hemlig.se"; $email_subject = "Kommentar på "; function died($error) { // your error code can go here echo "We are very sorry, but there were error(s) found with the form you submitted. "; echo "These errors appear below.<br /><br />"; echo $error."<br /><br />"; echo "Please go back and fix these errors.<br /><br />"; die(); } // validation expected data exists if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $email_from = $_POST['email']; // required $comments = $_POST['comments']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'The First Name you entered does not appear to be valid.<br />'; } if(strlen($comments) < 2) { $error_message .= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; // create email headers $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?> <!-- include your own success html here --> Thank you for contacting us. We will be in touch with you very soon. <?php } ?>

Dold text

Men det blir dock lite fel när man ska skicka formen på hemsidan.
Felet är:

We are very sorry, but there were error(s) found with the form you submitted. These errors appear below. We are sorry, but there appears to be a problem with the form you submitted. Please go back and fix these errors.

Om det skulle stå något mer informativt så skulle jag kunna lösa det, men det gör ju inte det.

Så ni här på Swec som kan HTML och PHP, skulle ni kunna hjälpa mig med det här och rätta till det som är fel?

Det jag vill ha i formen är:

Namn:
Epost adress:
Kommentar:

Tack i förhand.

FobbanN

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Medlem
Skrivet av FobbanN:

Nog måste man allt ha en mailserver och konfigurera sånt med?

Citat:

but make sure smtp server is set properly in php.ini. Look into mail() on php.net

Bara rotar runt lite, förhoppningsvis till nån hjälp.

http://www.quackit.com/php/tutorial/php_mail_configuration.cf...

Visa signatur

R5 2600 | RTX 2060 Super | SSD | 16 GB RAM | Gigabyte DS3H| 750 WATT

Permalänk
Medlem
Skrivet av FX9:

Nog måste man allt ha en mailserver och konfigurera sånt med?

Bara rotar runt lite, förhoppningsvis till nån hjälp.

http://www.quackit.com/php/tutorial/php_mail_configuration.cf...

1. Jag har en domän hos Citynetwork som jag kan ha ett par epost adresser ifrån. Det är inget med dem att göra dock.
2. Ska kika igenom den lite, återkommer.

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Medlem

Ta bort dessa rader också:
!isset($_POST['last_name']) ||
$last_name = $_POST['last_name']; // required

Denna POST kommer inte vara satt då den inte existerar längre i HTML-formuläret.

Permalänk
Medlem
Skrivet av BuruZ:

Ta bort dessa rader också:
!isset($_POST['last_name']) ||
$last_name = $_POST['last_name']; // required

Denna POST kommer inte vara satt då den inte existerar längre i HTML-formuläret.

Tack! Det löste problemet!

Här får du en kaka!

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Medlem
Skrivet av BuruZ:

Ta bort dessa rader också:
!isset($_POST['last_name']) ||
$last_name = $_POST['last_name']; // required

Denna POST kommer inte vara satt då den inte existerar längre i HTML-formuläret.

Hmm, nu har jag fått ett nytt problem!
Det kommer aldrig/skickas aldrig något e-post medelande till min epost.

Vad kan vara felet?

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Medlem
Skrivet av FobbanN:

Hmm, nu har jag fått ett nytt problem!
Det kommer aldrig/skickas aldrig något e-post medelande till min epost.

Vad kan vara felet?

Och SMTP är inställt? Du behöver en mailserver som kan hantera alla mailen.

Visa signatur

R5 2600 | RTX 2060 Super | SSD | 16 GB RAM | Gigabyte DS3H| 750 WATT

Permalänk
Medlem
Skrivet av FX9:

Och SMTP är inställt? Du behöver en mailserver som kan hantera alla mailen.

Jag "hyr" epostadresser från citynetwork, mer än så har jag inte gjort med mail adressen. :S

Skickades från m.sweclockers.com

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Medlem
Skrivet av FX9:

Och SMTP är inställt? Du behöver en mailserver som kan hantera alla mailen.

Hohoo, nu när jag satt på bussen kanske jag förstod rätt.

Jag behöver alltså sätta upp en mailserver på datorn som ska skicka emailet till min epostadress?

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Entusiast
Skrivet av FobbanN:

Hohoo, nu när jag satt på bussen kanske jag förstod rätt.

Jag behöver alltså sätta upp en mailserver på datorn som ska skicka emailet till min epostadress?

Bara en teori här men har du webbsidan lokalt på en webbserver på din dator eller är den uppladdad till ett webbhotell?

Om det är det förstnämnda så kan ju problemet vara att din lokala webbserver inte tillåts någon internetuppkoppling, förmodligen pga brandväggar

Permalänk
Medlem
Skrivet av Blargmode:

Bara en teori här men har du webbsidan lokalt på en webbserver på din dator eller är den uppladdad till ett webbhotell?

Om det är det förstnämnda så kan ju problemet vara att din lokala webbserver inte tillåts någon internetuppkoppling, förmodligen pga brandväggar

Hemsidan är hostad hemma på en serverdator. Den får tillgång till internet och den fungerar.
http://www.robertswebsite.nuhttp://robertsite.tk
Samma hemsida, bara olika urler.

.Nu är via Citynetwork och .tk via dot.tk (redirect alltså)

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Medlem

För mail valideringen i ditt skript kan du kolla på detta, då PHP har "inbyggda" filter för detta.

I fallet om du kör din sida lokalt på datorn kan du använda Mercury som smtp på din dator.

Visa signatur

FreeNAS 3U | 8GB | 2x2x3TB ProxMox i7-8700K | 32GB Desktop Dell 22" | Benq 22" | i5-smth | 16GB | Intel 520 120GB | 500GB | Arch

Permalänk
Medlem
Skrivet av atriix:

För mail valideringen i ditt skript kan du kolla på detta, då PHP har "inbyggda" filter för detta.

I fallet om du kör din sida lokalt på datorn kan du använda Mercury som smtp på din dator.

Får kika på det ikväll, återkommer om jag får några problem.

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|