Permalänk
Medlem

PHP Mail formulär hjälp

Hej har stött på ett problem med mitt formulär i php, själva formuläret ser ut så här

<html> <head> <title>Formulär</title> </head> <body> <form name="kontakt" method="post" action="mail.php"> För och efternamn<font color="red">*</font> <br> <input type="text" size="20" name="fullnamn"><br> Email<font color="red">*</font><br> <input type="text" size="20" name="email"><br> Adress<font color="red">*</font><br> <input type="text" size="20" name="adress"><br> Personnummer<font color="red">*</font><br> <input type="text" size="20" name="personnummer"><br> Telefon<font color="red">*</font><br> <input type="text" size="20" name="telefon"><br> Är du medlem?<font color="red">*</font><br> <input type="radio" name="medlem" value="Ja, jag är medlem i">Ja, jag är medlem i <select name="foreningar"> <option value="wieg">wieg</option> <option value="wieg">wieg</option> <option value="wieg">wieg</option> </select> <br> <input type="radio" name="medlem" value="Nej, jag vill bli medlem">Nej, jag vill bli medlem i wieg wieg<br> <br> <input type="checkbox" name="nextevent" value="Ja">Jag vill även anmäla mig för ett kommande arrangemang <select name="nextevents"> <option value="Manimal">Manimal 4/2 100:-</option> </select> <br> (<font color="red">*</font>) Måste fyllas i. <br> <input name="submit" type="submit" value="Skicka"> </form>

och när man trycker på submit så ska filen mail.php som ser ut så här ta hand om dom sakerna man fyllt i och sedan skicka de till min mail, men när jag trycker på submit så får jag error 500 eller en vit sida.

<?php $errors = array(); if (!$_POST["fullname"]) $errors[] = "- ditt namn"; if (!$_POST["email"]) $errors[] = "- din epostadress"; if (!$_POST["adress"]) $errors[] = "- ingen adress har skrivits!"; if (!$_POST["personnummer"]) $errors[] = "- inget personnummer har skrivits!"; if (!$_POST["telefon"]) $errors[] = "- inget telefonnummer har skrivits!"; if (count($errors)>0){ echo "<strong>Följande information måste anges innan du kan skicka formuläret:</strong><br />"; foreach($errors as $fel) echo "$fel <br />"; echo "<br />Ange den information som saknas och skicka igen. Tack! <br />"; echo "<a href='javascript:history.go(-1)'>klicka här för att komma tillbaka till formuläret</a>"; } else { $to = "minmailhär@gmail.com"; $from = $_POST["email"]; $subject = "Anmälning"; $fullname = $_POST["fullname"]; $adress = $_POST["adress"]; $telefon = $_POST["telefon"]; $personnummer = $_POST["personnummer"]; mail ($to, $subject, ("$fullname, $adress, $telefon, $personnummer") else echo "Det gick inte att skicka ditt meddelande"; ?>

jag gjorde en test fil som såg ut så här

<?php mail("wieg@gmail.com", "Ämne här", "Meddelandetexten här..."); ?>

och gick in på den med webbläsaren och då fick jag ett mail från min sida så jag vet att mail funktionen fungerar nån som vet vad som är fel? eller har nåt bättre jag kan använda. jag använder webbhotel från one.com

Visa signatur

https://hackernet.se - Wiki med inriktning open source och nätverk.

Permalänk
Medlem

glömt semicolon på denna raden?

mail ($to, $subject, ("$fullname, $adress, $telefon, $personnummer")

Permalänk
Medlem

Du har glömt lite måsvingar vid en else. Sen kan du inte skriva två else på rad. Det går bara med en else på en if/else sats.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem

Nu verkar mail.php fungera men den skickar inte mailet. om jag inte fyller i nåt fält så varnar den och när jag fyller i allt riktigt och trycker på skicka så står det "Det går inte att skicka" direkt. Enligt dreamweaver så har jag inga syntax error nu

<?php $errors = array(); if (!$_POST["fullnamn"]) $errors[] = "- ditt namn"; if (!$_POST["email"]) $errors[] = "- din epostadress"; if (!$_POST["adress"]) $errors[] = "- din adress"; if (!$_POST["personnummer"]) $errors[] = "- ditt personnummer"; if (!$_POST["telefon"]) $errors[] = "- ditt telefonnummer"; if (count($errors)>0){ echo "<strong>Följande information måste anges innan du kan skicka formuläret:</strong><br />"; foreach($errors as $fel) echo "$fel <br />"; echo "<br />Ange den information som saknas och skicka igen.<br />"; echo "<a href='javascript:history.go(-1)'>klicka här för att komma tillbaka till formuläret</a>"; } else { $to = "1337@gmail.com"; $from = $_POST["email"]; $subject = "Anmälning"; $fullnamn = $_POST["fullnamn"]; $adress = $_POST["adress"]; $telefon = $_POST["telefon"]; $personnummer = $_POST["personnummer"]; if (mail('1337@gmail.com','Anmälning','Namn:' ,$fullnamn,'Adress:' ,$adress ,'Telefon:' ,$telefon ,'Personnummer:d' ,$personnummer)); else echo "Det gick inte att skicka ditt meddelande"; } ?>

Visa signatur

https://hackernet.se - Wiki med inriktning open source och nätverk.

Permalänk
Medlem

fortfarande lite fel. Du har ju semicolon i slutet på ifsatsen?

såhär hade jag gjort:

if (!mail('1337@gmail.com','Anmälning','Namn:' ,$fullnamn,'Adress:' ,$adress ,'Telefon:' ,$telefon ,'Personnummer:d' ,$personnummer)) echo "Det gick inte att skicka ditt meddelande";

Permalänk
Medlem

de gick inte heller att skicka när jag skrev som du gjorde JoNaZ

Visa signatur

https://hackernet.se - Wiki med inriktning open source och nätverk.

Permalänk
Medlem

SÄker på att du använder mail rätt ? tar den verkligen så många argument?
mail('1337@gmail.com','Anmälning','Namn:' ,$fullnamn,'Adress:' ,$adress ,'Telefon:' ,$telefon ,'Personnummer:d' ,$personnummer)

borde du inte mena typ 'Namn:'.$fullnamn, ?
du har ju skrivit 2 argument när du menar ett misstänker jag?
'Namn:', $fullnamn,

Permalänk
Medlem

Antagligen har du inte angett någon SMTP-server i php.ini. Vill minnas att Telia har en man kan använda om man är kund där men annars får du googla

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.