martin808 Skrevet 12. februar 2014 Del Skrevet 12. februar 2014 (endret) Hei, jeg har fulgt en oppskrift på hvordan man skal lage en "kontakt meg" side som sender meg en mail. Den fungerer fint, det eneste problemet er at den ikke vil sende meg videre til neste side. Har selvfølgelig søkt litt rundt på nettet, men uten hell. Her er koden: Det er nesten helt nederst at jeg skal bli sendt videre til neste side. <?php $errors = ''; $myemail = '[email protected]';//<-----Put Your email address here. if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message'])) { $errors .= "\n Error: all fields are required"; } $name = $_POST['name']; $email_address = $_POST['email']; $message = $_POST['message']; if (!preg_match( "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $email_address)) { $errors .= "\n Error: Invalid email address"; } if( empty($errors)) { $to = $myemail; $email_subject = "Contact form submission: $name"; $email_body = "You have received a new message. ". " Here are the details:\n Name: $name \n Email: $email_address \n Message \n $message"; $headers = "From: $myemail\n"; $headers .= "Reply-To: $email_address"; mail($to,$email_subject,$email_body,$headers); //redirect to the 'thank you' page header('Location: contact-form-thank-you.html'); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Contact form handler</title> </head> <body> <!-- This page is displayed only if there is some error --> <?php echo nl2br($errors); ?> </body> </html> Hele guiden og alle filer: http://www.html-form-guide.com/contact-form/php-email-contact-form.html Endret 19. februar 2014 av martin808 Lenke til kommentar
Crowly Skrevet 14. februar 2014 Del Skrevet 14. februar 2014 Du kan ikke ha noe output før header(). Så kommenter ut header() linja og kjør siden i en nettleser og se om det kommer noen warnings, notices e.l. Hvis det er tilfellet må du enten endre koden slik at de ikke kommer, eller skru de av med error_reporting(0); alternativt ini_set('display_errors', '0'); http://www.php.net/manual/en/function.error-reporting.php http://no2.php.net/ini_set Lenke til kommentar
martin808 Skrevet 17. februar 2014 Forfatter Del Skrevet 17. februar 2014 . Takk for svar. Det kommer ikke noen feilmeldinger eller warnings. Problemet er bare at jeg ikke blir sendt videre til neste side. Lenke til kommentar
Crowly Skrevet 17. februar 2014 Del Skrevet 17. februar 2014 Du bør endre mail($to,$email_subject,$email_body,$headers); //redirect to the 'thank you' page header('Location: contact-form-thank-you.html'); til if (mail($to,$email_subject,$email_body,$headers)){ //redirect to the 'thank you' page header('Location: contact-form-thank-you.html'); } Slik at man kun blir videresendt når mail() er vellykket. Mulig du bør skru på advarsler og notices hvis de er deaktivert, mulig du kan få noen tilbakemeldinger der som kan hjelpe i debuggingen av hvorfor header() ikke videresender. Lenke til kommentar
CruellaDeVille Skrevet 18. februar 2014 Del Skrevet 18. februar 2014 på php.net står det header(disse-lure-tingene); og exit; Lenke til kommentar
martin808 Skrevet 19. februar 2014 Forfatter Del Skrevet 19. februar 2014 (endret) Jeg har funnet ut av det. Dette er ganske flaut, men helt øverst i koden min var det litt html som hadde lurt seg inn. Uansett tusen takk for svar. Endret 19. februar 2014 av martin808 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå