- Converge
- Medlem ●
- Göteborg
- 2009-07-02 21:27
Hej,
Jag sitter som hastigast och lär mig lite php inför en kurs jag skall ta i höst. Jag har installerat MAMP för att enkelt kunna utveckla lokalt och testa sakerna jag bygger i lugn och ro.
Ett problem har dock dykt upp. Jag har enligt läroboken byggt ett formulär som skall gå att fylla i med ett antal frågor. När användaren sedan klickar på submit-knappen skall dels en konfirmationssida visas där ens svar redovisas, men scriptet skall även skicka ett mail till mig med informationen som användaren knapprade in. Och här är problemet: konfirmationssidan visas som den skall, men inget mail anländer. Inget felmeddelande, ingenting.
Koden för scriptet ser ut som följer:
<html> <head> <title>Aliens abducted me - Report an Abduction</title> </head> <body> <h2>Aliens abducted me - Report an abduction</h2> <?php /* stoppa in all data från formuläret i variablar */ $name = $_POST['firstname'].' '.$_POST['lastname']; $when_it_happened = $_POST['whenithappened']; $how_long = $_POST['howlong']; $how_many = $_POST['howmany']; $alien_description = $_POST['aliendescription']; $what_they_did = $_POST['whattheydid']; $fang_spotted = $_POST['fangspotted']; $other = $_POST['other']; $email = $_POST['email']; /* redogör för hur mailet skall se ut, och vart det skall skickas */ $to = '[email protected]'; $subject = 'Ett litet testmail'; $msg = "$name was abducted $when_it_happened and was gone for $how_long.\n" . "Number of aliens: $how_many\n" . "Alien description: $alien_description\n" . "What they did: $what_they_did\n" . "Fang spotted? $fang_spotted\n" . "Other comments: $other"; /* skickar mailet */ mail($to, $subject, $msg, '$from:' . $email); /* skriver ut konfirmationssidan efter att användaren har skickat formuläret */ echo 'Thanks <a href="mailto:' . $email . '">' . $name . '</a> for submitting the form.<br />'; echo 'You were abducted ' . $when_it_happened; echo ' and were gone for ' . $how_long . '<br />'; echo 'Describe them: ' . $alien_description . '<br />'; echo 'How many were there? ' . $how_many . '<br />'; echo 'What did they do to you? ' . $what_they_did . '<br />'; echo 'Was Fang there? ' . $fang_spotted . '<br />'; echo 'Your email address is '.$email.'<br />'; echo '<br />'; echo 'Do you have anything else to add? '.$other; ?> </body> </html>
Alla $_POST är fält i formuläret som finns på en intilliggande html-sida.
Eftersom inget felmeddelande kommer upp, och scriptet körs utan något klagande så borde det inte finnas något fel i det, men likt förbannat får jag inga mail ([email protected] är såklart utbytt mot min mailadress). Boken jag läser (Head first PHP & MySQL) tipsar om att om inga mail går fram KAN det bero på att PHP-installationen man använder inte vet hur den skall skicka mail, och kan behövas konfigureras. Därefter hänvisas man till php.net, där jag inte lyckas klura ut vad mitt problem är, därav min undran här.
När jag kollar phpinfo() på min lokala installation (PHP5 via MAMP) så specar den sendmail_path till "/usr/sbin/sendmail -t -i", SMTP till "localhost" och smtp_port till "25"; om det sedan är rätt har jag inte tillräckligt med kunskap för att kunna avgöra; någon kanske kan upplysa mig? "sendmail_from" har inget värde, men det deklarerar jag ju i scriptet ovan, så det bör väl inte spela in?
Är tacksam för hjälp, är inne i litet av ett flow där jag fattar allt och har ingen lust att gå vidare i boken innan jag är 100% säker på att jag gjort rätt hittills. Har jag missat att delge någon fundamental information som ni kan tänkas behöva för att kunna hjälpa mig får ni skälla på mig; en eventuell miss är av ren och skär okunskap i sådant fall.
Tack på förhand för hjälpen!