Avatar billede exodusdk Nybegynder
21. december 2002 - 23:28 Der er 23 kommentarer og
2 løsninger

Mail-sender-ting

Jeg prøver at lære noget php, og har nu prøvet at lave min første Online-Mail-Sender-Ting...
Den jeg har lavet virker i princippet, men eftersom alle variabler og pi* og lor* ligger i samme .php fil, sender den en tom mail til mig, hver gang siden loades/reloades; og det er jo noget skidt.
Hvordan kan man komme uden om det?

koden:

<?php include("$_SERVER[DOCUMENT_ROOT]/header.txt"); ?>
<br>
<center><h1>Brug denne formular, hvis du vil sende mig en mail</h1></center>
<br><br>

<form action="sendmail.php" method="post">
Dit navn:<br><input type="text" name="afsnavn" class="box"><br>
Din E-Mail:<br><input type="text" name="afsemail" class="box"><br>
Din besked:<br><textarea cols="65" rows="4" name="besked" class="box"></textarea><br>
<input type="submit" value="Send" class="button" onClick="return alert(&quot;nMail'en er nu sendt til mig\r\nTak for din mail.&quot;);">
</form>

<?
$afsnavn = $_REQUEST["afsnavn"];
$afsemail = $_REQUEST["afsemail"];
$besked = $_REQUEST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
?>
Avatar billede rippie Nybegynder
21. december 2002 - 23:36 #1
prøv at bruge $_POST istedet for $_REQUEST
Avatar billede htm Nybegynder
21. december 2002 - 23:38 #2
Smid en if-statement ind!

<?
if ($_POST()) {
$afsnavn = $_REQUEST["afsnavn"];
$afsemail = $_REQUEST["afsemail"];
$besked = $_REQUEST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
}
else {
//hvis formen
}
Avatar billede rippie Nybegynder
21. december 2002 - 23:40 #3
Sådan her måske....
-------------------------------------------------

<?

include("$_SERVER[DOCUMENT_ROOT]/header.txt"); ?>
<br>
<center><h1>Brug denne formular, hvis du vil sende mig en mail</h1></center>
<br><br>

<form action="sendmail.php" method="post">
Dit navn:<br><input type="text" name="afsnavn" class="box"><br>
Din E-Mail:<br><input type="text" name="afsemail" class="box"><br>
Din besked:<br><textarea cols="65" rows="4" name="besked" class="box"></textarea><br>
<input type="submit" value="Send" class="button" onClick="return alert(&quot;nMail'en er nu sendt til mig\r\nTak for din mail.&quot;);">
</form>

<?

if(isset($POST_send)) {
$afsnavn = $_REQUEST["afsnavn"];
$afsemail = $_REQUEST["afsemail"];
$besked = $_REQUEST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");

}

?>
Avatar billede htm Nybegynder
21. december 2002 - 23:42 #4
Ja selvfølgelig rippie - glemte lige isset() :-)
Avatar billede exodusdk Nybegynder
21. december 2002 - 23:43 #5
Stadig det samme...

Jeg har haft den til at virke, hvis jeg ændrer '<form action="sendmail.php"' til f.eks. '<form action="sendt_mail.php"' og jeg så i filen sendt_mail.php, indsætter <?
$afsnavn = $_REQUEST["afsnavn"];
$afsemail = $_REQUEST["afsemail"];
$besked = $_REQUEST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");

echo "Mail'en er nu sendt til mig. Tak for din mail";
?>

Men det betyder jo, at den åbner en ny side, hvorfra den sender mail'en. Det vil jeg ikke have. Det eneste jeg vil have, den skal gøre, er at komme med "Alert"-boksen, og så sende mail'en...
Avatar billede exodusdk Nybegynder
21. december 2002 - 23:43 #6
For satan... I er alt for hurtige
Avatar billede exodusdk Nybegynder
21. december 2002 - 23:50 #7
Med

<?
if(isset($POST_send)) {
$afsnavn = $_POST["afsnavn"];
$afsemail = $_POST["afsemail"];
$besked = $_POST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
}
?>

Får jeg ingen mails overhovedet...
Avatar billede exodusdk Nybegynder
21. december 2002 - 23:54 #8
Kom nuuu... I var så hurtige før...
Avatar billede tipsen Nybegynder
21. december 2002 - 23:54 #9
Prøv med:

<?
if(isset($POST_send)) {
$afsnavn = $_POST["afsnavn"];
$afsemail = $_POST["afsemail"];
$besked = $_POST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
} else {
  echo 'variablen $POST_send er vist ikke helt god...';
}
?>
Avatar billede htm Nybegynder
21. december 2002 - 23:54 #10
Skal være if (isset($_POST[]) {
Avatar billede htm Nybegynder
21. december 2002 - 23:57 #11
Altså:

<?
if(isset($POST)) {
$afsnavn = $_POST["afsnavn"];
$afsemail = $_POST["afsemail"];
$besked = $_POST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
} else {
  echo 'variablen $POST_send er vist ikke helt god...';
}
?>
Avatar billede tipsen Nybegynder
21. december 2002 - 23:59 #12
Alternativt:

if($_SERVER['REQUEST_METHOD'] == "POST") {

htm: Med $_POST[] - spørger du så på variablen $POST eller et element i arrayet $_POST!?
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:00 #13
med

<?
if (isset($_POST[])) {
$afsnavn = $_POST["afsnavn"];
$afsemail = $_POST["afsemail"];
$besked = $_POST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
} else {
  echo 'variablen $POST_send er vist ikke helt god...';
}
?>

heller intet held
Avatar billede rippie Nybegynder
22. december 2002 - 00:02 #14
hmm din send knap har ingen name="blablabla" ???
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:02 #15
Med

<?
if (isset($_POST)) {
$afsnavn = $_POST["afsnavn"];
$afsemail = $_POST["afsemail"];
$besked = $_POST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
} else {
  echo 'variablen $POST_send er vist ikke helt god...';
}

?>

Bliver der stadig sendt en tom mail, ved hver reload
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:04 #16
Rippie >> Er det et krav for $POST_send virker?
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:09 #17
Hvad nu hvis jeg laver f.eks.:

if (isset($_POST["afsemail"] {
$afsnavn = $_POST["afsnavn"];
$afsemail = $_POST["afsemail"];
$besked = $_POST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");
?>
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:09 #18
Hov... Mangler lige et par )) efter if
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:11 #19
Hvad nu hvis jeg laver f.eks.:

if (isset($_POST["afsemail"])) {

$afsnavn = $_POST["afsnavn"];
$afsemail = $_POST["afsemail"];
$besked = $_POST["besked"];
mail("Webmaster@exodus.dk","Besked fra Exodus.dk Mail-sender",
"Besked sendt fra Exodus.dk fra $afsnavn ($afsemail)\n\nBeskeden:\n$besked",
"From: $afsemail\nReply-to: $afsemail");

}
?>

Sådan...?
Avatar billede tipsen Nybegynder
22. december 2002 - 00:16 #20
Har du prøvet:

if($_SERVER['REQUEST_METHOD'] == "POST") {

som jeg tidligere foreslog - det fungerer hvertfald!
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:19 #21
Narj, egentlig ikke Tipsen, fordi jeg fik det til at virke, ved at bruge den jeg selv foreslog lige før...
Avatar billede exodusdk Nybegynder
22. december 2002 - 00:32 #22
Nu troede jeg så lige jeg var smart, og lavede denne linie:

if (isset($_POST["afsnavn", "afsemail", "besked"])) {

for at få den til at tjekke, om alle felter er udfyldt. Men den gik ikke... Er der noget andet i stil med den, man kan bruge...?
Avatar billede htm Nybegynder
22. december 2002 - 11:01 #23
Den skal se sådan ud:
if (isset($_POST["afsnavn"]) && isset($_POST["afsemail"]) && isset($_POST["besked"])) {

tipsen>> Tjek på $_POST gør det samme som din metode!
Avatar billede tipsen Nybegynder
22. december 2002 - 11:18 #24
htm: Mit check undersøger om siden blev requestet vha. POST, mens din undersøger om der er sat nogle variable - ikke nødvendigvis det samme, men i dette tilfælde vil resultatet være det samme!
Avatar billede exodusdk Nybegynder
13. november 2003 - 15:37 #25
Er vidst på tide at kalde det besvaret...
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