Hejsan. Jag har jobbat väldigt länge för att få en Form för att kontakta fungera (skicka e-mail till mig, utan att öppna nått epost program på klientens dator)
Så, du har jag kommit på en idé, att skriva Form datan till en TXT fil på min server, i exempel /posts/.
Ungifär som ett forum fast man inte ser något. Och varje gång någon skickar ett medelenade med min form, ska det skriva en ny TXT fil.
Och sedan ge filen emailen som namnet, exempel: 123456789@abcdefg.hij
Skulle detta kunna fungera? Eller ger det mig ett jätte säkerhets hål?
Om detta inte är en så bra idé, va finns det för andra alternativ?
Hey,
tror du angriper ditt problem lite väl krångligt. Om du bara vill få det som skrivs in i formuläret skickat som ett mail till dig samt kan köra PHP på din server, så kan du ju använda mail() funktionen.
Jo, man tycker det borde funka.
Jag tog denna koden bara för att testa om det funkar;
<?php
// The message
$message = "Line 1\nLine 2\nLine 3";
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);
// Send
mail('caffinated@example.com', 'My Subject', $message);
?>
Ändrade emailen till min email och laddade php filen i webbläsaren... Uppdaterade även ett flertal gånger. Det kom inget mail. Testade på gmail och hotmail.
Jag har PHP, men måste man ha något annat? Servern har även en SMTP mail server installerad. Är det något som jag gör fel?
Hej igen,
Vi kan utgå från det andra exemplet där du har gjort en contact.php som formuläret skickas till.
För det första kan vi prova att byta ut $_REQUEST till $_POST då vi i själva verket vet hur formuläret skickas (method="post") och behöver alltså inte använda oss utav arrayen $_REQUEST som söker igenom sätten $_GET, $_POST, $_COOKIE i den ordningen.
Sedan ser jag ett fel på följande rad i contact.php:
$headers = "From: $email";
Korrekt skrivet ska det vara på följande vis:
$headers = "From: ".$email;
Samtidigt så har jag svårt att tro att detta skulle påverka att inget mail skickas ut överhuvudtaget. Vad säger din if-sats som kollar sent?
Fatal error: Call to undefined function display_errors() in /home/albin/public_html/scripts/contact.php on line 3
Jag sökte i PHP Manualen, o den sa att funktionen inte fanns?
Sätter jag det övan för <? tecket får jag fram följande:
"error_reporting(E_ALL); display_errors(true); We encountered an error sending your mail " Vilken borde hända...
Jag satte ini_set("display_errors",true); högst upp i filen (efter <?) men det gjorde ingen skillnad.
Hmm, eftersom det inte bara är jag som använder den här servern, kan man ha en php.ini fil i tex, min mapp? Eftersom jag inte vill ändra hela serverns inställningar
Jag vet inte vilken method du använder, men testa att skicka formuläret så här.
$adress = 'webmaster@din-site.com';
$subject = 'You've got mail.';
//loopa igenom allt i post och get, du kan ju ta bort den du inte använder, spara det i meddelande.
$meddelande = "___FORMULÄR___\n";
foreach($_POST as $nyckel => $vad)
{
$meddelande .= "{$nyckel} : {$vad}\r\n";
}
foreach($_GET as $nyckel => $vad) //loopa get
{
$meddelande .= "{$nyckel} : {$vad}\r\n";
}
//Jag kommer inte ihåg vilka headers som gör vad.
$headers = "X-Priority: 3\r\n"; //viktigt eller inte.
//ta reda på om du vill/behöver fler headers.
$i = mail($adress, $subject, $meddelande, $headers);
if($i)
{
echo "Formuläret har skickats!";
}
else
{
echo "Formuläret kunde inte skickas!";
}
271 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2