Avatar billede mrbs Nybegynder
13. februar 2005 - 23:33 Der er 6 kommentarer og
1 løsning

Mailform vil ikke sende

Jeg har et problem med en mail form som ikke vil sende...
Når jeg har indtastet det hele, og trykker send, echo'er den en besked, som kun bliver vist, hvis alt andet går galt... Kan nogen hjælpe?

link til filen som txt-fil:

www.mrbs.dk/mailform.txt
Avatar billede mrbs Nybegynder
13. februar 2005 - 23:34 #1
Skylder at sige at den besked den giver er:
Beskeden blev ikke sendt - serveren kan være nede. Prøv venligst senere!
Avatar billede Slettet bruger
14. februar 2005 - 00:42 #2
Er det din egen server?

Hvis Windows: Har du skrevet adressen på en SMTP-server i php.ini?

Hvis Unix/Linux: Har du en sendmail på maskinen?
Avatar billede mrbs Nybegynder
14. februar 2005 - 11:42 #3
Nej, det er ikke min egen server. Jeg er hosted af cliche!

Der er sendmail - jeg har før fået det til at virke... Men Cliche (hvor jeg hoster) siger at der SKAL være en afsender i formen, og det er der vel kun i form af en "$email" - variabel - er der nok?
Avatar billede Slettet bruger
14. februar 2005 - 12:09 #4
Jeg opdagede lige, at scriptet laver et eller andet underligt med 3 forskellige subjects. Det kan man ikke. En mail har et subject - hverken mere eller mindre. (Jo teknisk set kan det godt lade sig gøre at lave en mail uden subject, men det er ikke smart.)

I stedet bør de tre ønsker (hvad det så end er) skrives i selve beskeden.

Derudover sætter dit script $subject='' tre gange. Det virker lidt overflødigt - der er jo ikke noget, der fylder noget i den variabel imellem de tre gange.

Og der er ingen grund til at sende $message (som den ser ud nu), for den er jo bare et skjult formularfelt.

Jeg vil foreslå, at du retter følgende:

    $subject = '';
    if (!empty($_POST['subject1'])) $subject1 = trim($_POST['subject1']);
    $subject = '';
    if (!empty($_POST['subject2'])) $subject2 = trim($_POST['subject2']);
    $subject = '';
    if (!empty($_POST['subject3'])) $subject3 = trim($_POST['subject3']);
    $message = '';
    if (!empty($_POST['message'])) $message = trim($_POST['message']);

til

    $subject = 'Her skriver du en fast emnelinie';
    if (!empty($_POST['subject1'])) $subject1 = trim($_POST['subject1']);
    if (!empty($_POST['subject2'])) $subject2 = trim($_POST['subject2']);
    if (!empty($_POST['subject3'])) $subject3 = trim($_POST['subject3']);
    $message = "1. ønske:\n" . $subject1 . "\n";
    $message = "2. ønske:\n" . $subject2 . "\n";
    $message = "3. ønske:\n" . $subject3 . "\n";


Og retter

        }elseif (@mail($to, $subject1, $subject2, $subject3, $message, $extra)){

til

        }elseif (@mail($to, $subject, $message, $extra)){
Avatar billede Slettet bruger
14. februar 2005 - 12:11 #5
Ups. Rettelse til mit forslag:

    $message = "1. ønske:\n" . $subject1 . "\n";
    $message .= "2. ønske:\n" . $subject2 . "\n";
    $message .= "3. ønske:\n" . $subject3 . "\n";

Ellers vil de to sidste linier slette indholdet af $message
Avatar billede mrbs Nybegynder
22. februar 2005 - 23:47 #6
Tak for hjælpen - du må gerne svare!
Avatar billede Slettet bruger
23. februar 2005 - 00:12 #7
Det gør jeg så.
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