Gå til innhold

[Løst] Script vil ikke sende meg videre (redirect)


Anbefalte innlegg

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 av martin808
Lenke til kommentar
Videoannonse
Annonse

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...