Avatar billede moscov Praktikant
19. august 2024 - 15:09 Der er 1 kommentar

php driller

På hjemmesiden er der mulighed for at sende en besked. Der bliver via et javascript tjekket om navn, mailadresse og beskedfeltet er korrekt udfyldt, og der bliver så returneret enten en fejlmeddelelse eller et "Tak for din besked...".
Det fungerer altsammen fint - der bliver tjekket for gyldighed og mail bliver sendt.
MEN: Der bliver ikke vist en kvitteringsmeddelelse :-(
Det HAR virket, og jeg kan ikke se, hvor det er kæden hopper af nu. Jeg har spekuleret på, om der er sket en opgradering på serveren, så min php-kode ikke er gyldig mere.
Og jeg skal tilføje, at jeg er absolut ikke php-ekspert!
Gad vide om der er nogen, der lige kan se, om der er nogen fejl, der springer i øjnene?


Der er en "contact.php" side med (bl.a.) denne kode:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
<! HER STÅR DIVERSE IKKE-RELEVANT KODE -->
    <script src="email/validation.js" type="text/javascript"></script>
</head>
<body id="pageBody">
<! HER STÅR DIVERSE IKKE-RELEVANT KODE -->
<form name="enq" method="post" action="email/" onsubmit="return validation();">
  <fieldset>
   
    <input type="text" name="name" id="name" value=""  class="input-block-level" placeholder="Navn" />
    <input type="text" name="email" id="email" value="" class="input-block-level" placeholder="Email" />
    <textarea rows="11" name="message" id="message" class="input-block-level" placeholder="Tekst (husk varenummer)"></textarea>
    <div class="actions">
    <input type="submit" value="Send" name="submit" id="submitButton" class="btn btn-info pull-right" title="Send besked" />
    </div>
   
    </fieldset>
</form> 


Og så er der en "index.php" side med denne kode:

<?php
if(isset($_POST['submit']))
{
    $name = $_POST['name'];
    $email = $_POST['email'];
    $query = $_POST['message'];
    $email_from = $name.'<'.$email.'>';

$to="min@mailadresse.dk";
$subject="Henvendelse";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= "From: ".$email_from."\r\n";
$message="     
     
        Name:
        $name      
        <br>
        Email-Id:
        $email      
        <br>
        Message:
        $query      
     
  "
    ;
    if(mail($to,$subject,$headers,$message))
        header("Location:../contact.php?msg=Tak for din henvendelse. Jeg vender tilbage snarest muligt.");
    else
        header("Location:../contact.php?msg=Der opstod en fejl. Beskeden blev ikke sendt");
        //contact:min@mailadresse.dk
}
?>
Avatar billede ejvindh Ekspert
20. august 2024 - 21:24 #1
I denne linje mangler der noget, eller også skal punktum være semikolon:

$headers .= "From: ".

Derudover kan jeg ikke lige se noget, men vi kender jo heller ikke indholdet af contact.php

Men generelt ville jeg nok gå til den slags ved at sætte nogle echo-sætninger ind undervejs, for at holde øje med hvor langt den kommer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester