Avatar billede hans01 Nybegynder
23. juni 2011 - 07:10 Der er 16 kommentarer og
1 løsning

min formular vil ikke sende

Jeg har fundet et lille php script til afsendelse af en formular, det virker alt sammen find, det eneste er bare jeg modtager aldrig beskeden, er der nogen der kan hjælpe?
min script ser sådan ud:

<?php
if(isset($_POST['email'])) {
   
    // CHANGE THE TWO LINES BELOW
    $email_to = "info@exampel.dk";
   
    $email_subject = "website kontakt formular";
   
   
    function died($error) {
        // your error code can go here
        echo "Vi er kede af det, men der var fejl da fomularen blev afsendt. ";
        echo "Du kan se hvilke fejl underneden.<br /><br />";
        echo $error."<br /><br />";
        echo "De bedes venligst gå retur for at rette fejlene.<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('Vi er kede af det, men der var fejl.');     
    }
   
    $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 .= 'Din Email adresse er ikke gyldigt.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'Dit fornav er ikke gyldigt.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'Dit efternavn er ikke gyldigt.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'Dine kommentarer er ikke gyldige.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Formular details nedenunder.\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);
?>

<!-- place your own success html below -->

Tak for jeres henvendelse til Procesanlaeg.dk, vi vil returnere med et svar snarest.

<?php
}
die();
?>
Avatar billede majbom Novice
23. juni 2011 - 08:36 #1
jeg har ikke læst din kode

den lander ikke i dit spamfilter?
Avatar billede Slettet bruger
23. juni 2011 - 08:56 #2
Fjern @ foran mail her "@mail($email_to, $email_subject, $email_message, $headers);"

Den gør så der ikke bliver vist nogen fejl meddelelser, og du vil aldrig finde ud af hvorfor der intet sker :-)
Avatar billede hans01 Nybegynder
23. juni 2011 - 09:16 #3
hej dennis,

så er det gjort og jeg modtager følgende besked:
Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <info@exampel.com>: Recipient address rejected: Ikke korrekt afsender in E:\inetpub\vhosts\procesanlaeg.dk\httpdocs\html_form_send.php on line 70
Avatar billede hans01 Nybegynder
23. juni 2011 - 09:17 #4
hej splazz, nej det har jeg chekket, jeg mener ikke den lander der.
Avatar billede LilleUdvikler Nybegynder
23. juni 2011 - 09:30 #5
Prøv at ændre:

$email_to = "info@exampel.dk";

til din egen email:)
Avatar billede LilleUdvikler Nybegynder
23. juni 2011 - 09:34 #6
Jeg kan også se, at du kører local, med xampp eller mamp, eller sådan noget.

Jeg er ikke sikker på, at du kan bruge mail funktionen, hvis ikke du sætter scriptet online.

Har du mulighed for, at gøre dette for, at teste om der er noget galt? :)
Avatar billede hans01 Nybegynder
23. juni 2011 - 09:37 #7
Hej udvikler

Jeg har prøvet med min egen mail adresse, scriptet er on-line here:

http://www.procesanlaeg.dk/procesanlaeg_kontakt.php
Avatar billede LilleUdvikler Nybegynder
23. juni 2011 - 09:44 #8
Jeg kan ikke umiddelbart finde fejlen. Men når det så er sagt, så synes jg det ser meget voldsomt ud med al den kode, prøv den her i stedet, hvis du lyster:

Du skal ændre $modtager, til din egen mail (eller hvem der skal modtage mailen) Også skal du indsætte det her på samme side.. :o)


<?php
if (isset($_POST['navn']) && isset($_POST['besked']))
{
    if (empty($_POST['navn']))
    {
        echo "Du skal indtaste dit navn";
    }
    elseif (empty($_POST['email']))
    {
        echo "Du skal indtaste email.";
    }
    elseif (empty($_POST['telefon']))
    {
        echo "Du skal indtaste telefon.";
    }
    elseif (empty($_POST['besked']))
    {
        echo "Du skal indtaste en besked";
    }
    else
    {
        $modtager = "mod@modtager.dk";
        $emne = "Mail fra en bruger";
        $besked = "Hej, du har modtaget mail fra en bruger: \n
                            Navn: " . $_POST['navn']. "\n
                            E-mail " . $_POST['email']. "\n
                            Telefon " . $_POST['telefon']. "\n
                            Besked: " . $_POST['besked'];

        $header = "from:afs@afsender.dk";

        mail($modtager, $emne, $besked, $header);
        echo "Emailen er nu sendt!";
    }
}
?>

<form action="mail.php" method="post">
    Navn: <br>
    <input type="text" name="navn" style="width: 200px;"> <br><br>

    E-mail: <br>
    <input type="text" name="email" style="width: 200px;"> <br><br>

    telefon: <br>
    <input type="text" name="telefon" style="width: 200px;"> <br><br>

    Besked: <br>
    <textarea name="besked" style="width: 200px; height: 100px;"></textarea> <br><br>

    <input type="submit" value="Send mail">
</form>
Avatar billede majbom Novice
23. juni 2011 - 10:00 #9
hvis du er 100% sikker på at email-adressen er gyldig og findes, så vil mit bud være en fejl på SMTP-serveren.

du kan alternativt prøve at benytte phpmailer: http://phpmailer.worxware.com/
Avatar billede hans01 Nybegynder
23. juni 2011 - 10:23 #10
Hej splazz, jeg har også prøvet med min hotmail adresse der kommer den samme besked frem;:
Warning: mail() [function.mail]: SMTP server response: 554 5.7.1 <hans@hotmail.com>: Recipient address rejected: Ikke korrekt afsender in E:\inetpub\vhosts\procesanlaeg.dk\httpdocs\html_form_send.php on line 70

@udvikler, jeg har prøvet din løsning men modtager den samme fejl meldning
Avatar billede majbom Novice
23. juni 2011 - 10:41 #11
hvor har du siden hostet?
Avatar billede hans01 Nybegynder
23. juni 2011 - 10:43 #12
Hos intergate
Avatar billede hans01 Nybegynder
23. juni 2011 - 10:43 #13
jeg chekker lige de andre sider jeg får hosted hos intergate
Avatar billede LilleUdvikler Nybegynder
23. juni 2011 - 10:44 #14
#10

Hvem er din udbyder?
- Jeg tror ikke du kan benytte SMTP så. Jeg havde samme fejl på et tidspunkt. Det er noget med, at din mail server ikke er konfigureret ordentligt.
Avatar billede LilleUdvikler Nybegynder
23. juni 2011 - 10:45 #15
Intergate understøtter kun IMAP og POP3. Du skal have lavet dig en formular der er lavet til dette. :)
Avatar billede hans01 Nybegynder
23. juni 2011 - 10:53 #16
Hej udvikler.

Ved du hvad jeg skal ændre i min formular?
Avatar billede hans01 Nybegynder
01. juli 2011 - 07:40 #17
problemet er løst af min udbyder, der var problemer i deres ende. tak for hjælpen
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