16. marts 2003 - 23:31
Der er
31 kommentarer og 1 løsning
PHP script til at sende mail fra en site.
Hejsa! Jeg søger et php script som kan sende e-mails fra min side! Det skulle bare være hvor man kan indtaste sit navn, en overskrift(titel), og en info om problemet som skal tages fat på. Når brugeren så trykker send, så skal der sendes en mail til mig, hvori jeg så kan læse om problemet de har raporteret. Der må gerne være et tjek som gør at der max må gå 60 sekunder før man kan sende igen (for at undgå spam). Jeg har INGEN forstand på PHP, kunne godt selv have fundet en løsning i ASP, men da den server jeg muligvis skal bruge det på kører php, så vil jeg gerne have et script i php. Derfor de 200 points, det skal være et script som er "fuldt" ud fungerende, og som er noget vi evt kan rette her :)
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
16. marts 2003 - 23:35
#1
<?php if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST['emne']", "$_POST['besked']", "From: $_POST['navn'] <$_POST['mail']>\nContent-type: text/html; charset=iso-8859-1"); echo "Din mail er nu sendt"; } ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form>
16. marts 2003 - 23:36
#2
sammen med ahv´s løsning, kan man sætte en cookie, som gør at man ikke kan sende igen
16. marts 2003 - 23:38
#3
<form action="<?php echo $PHP_SELF; ?>" method="post"> skal, hvis vi er igang med de nye globals være <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
16. marts 2003 - 23:38
#4
hmm, jeg får mailen ind, men der er ikke noget af det med jeg har indtastet i formsne :)
16. marts 2003 - 23:40
#5
Ja eller sæt en session: <?php session_start(); if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST['emne']", "$_POST['besked']", "From: $_POST['navn'] <$_POST['mail']>\nContent-type: text/html; charset=iso-8859-1"); echo "Din mail er nu sendt"; $_SESSION[tjek] = 1; } if(!$_SESSION[tjek]) { ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form> <?php } ?> Sådan kunne man vil også undgå spam.
16. marts 2003 - 23:42
#6
Sådan her: <?php session_start(); if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST[emne]", "$_POST[besked]", "From: $_POST[navn] <$_POST[mail]>\nContent-type: text/html; charset=iso-8859-1"); echo "Din mail er nu sendt"; $_SESSION[tjek] = 1; } if(!$_SESSION[tjek]) { ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form> <?php } ?> Så burde den være der.
16. marts 2003 - 23:47
#7
Kan man lave det så den ikke kan trykkes "refresh" og så sender igen? Hvis man gør det så skal den bare komme tilbage til der hvor man kan indtaste besked...
16. marts 2003 - 23:50
#8
<?php session_start(); if(!$_SESSION[tjek]) { if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST[emne]", "$_POST[besked]", "From: $_POST[navn] <$_POST[mail]>\nContent-type: text/html; charset=iso-8859-1"); echo "Din mail er nu sendt"; $_SESSION[tjek] = 1; } ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form> <?php } ?> Prøv dette.
16. marts 2003 - 23:50
#9
Desuden lukker det script helt af for at kunne komme ind og indtaste igen :(
16. marts 2003 - 23:51
#10
Og hvis ikke den skal vise formen igen: <?php session_start(); if(!$_SESSION[tjek]) { if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST[emne]", "$_POST[besked]", "From: $_POST[navn] <$_POST[mail]>\nContent-type: text/html; charset=iso-8859-1"); echo "Din mail er nu sendt"; $_SESSION[tjek] = 1; }} if(!$_SESSION[tjek]) { ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form> <?php } ?>
16. marts 2003 - 23:52
#11
Ja det gør det, indtil session dør, de har en leve tid på 20 min.
16. marts 2003 - 23:53
#12
16. marts 2003 - 23:54
#13
Hmm, sessions er ikke så godt! Så er det bedre den bare siger redirect til index.php så man skal indtaste igen! evt...
16. marts 2003 - 23:55
#14
<?php if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST[emne]", "$_POST[besked]", "From: $_POST[navn] <$_POST[mail]>\nContent-type: text/html; charset=iso-8859-1"); header("Location: index.php"); } <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form>
16. marts 2003 - 23:58
#15
ups: <?php if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST[emne]", "$_POST[besked]", "From: $_POST[navn] <$_POST[mail]>\nContent-type: text/html; charset=iso-8859-1"); header("Location: index.php"); } ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form>
16. marts 2003 - 23:58
#17
lækkert :)
16. marts 2003 - 23:59
#18
blaatand >> Jeg har rettet fejlen i det sidste jeg postede.
16. marts 2003 - 23:59
#19
Jeg siger tak, og giver dig dine points. Det er noget jeg kan bruge ;)
17. marts 2003 - 00:00
#20
oh btw, er det muligt at lave det så at der kommer besked når den er sendt? i asp kan man jo bruge querystring til de forskellige modes
17. marts 2003 - 00:06
#21
Hvilken sider ønsker du dette på, på den side som sender mailen eller index.php? Jeg smutter i seng nu, men læser lige dit svar på dette imorgen.
17. marts 2003 - 00:08
#22
index.php som i det første script, hvis den sender en besked, så kommer der en besked i toppen med at den er blevet sendt :)
17. marts 2003 - 07:32
#23
Sådan her mener du? <?php if(isset($_POST['send'])){ mail("alexander_hv@hotmail.com", "$_POST[emne]", "$_POST[besked]", "From: $_POST[navn] <$_POST[mail]>\nContent-type: text/html; charset=iso-8859-1"); echo "Din mail er nu sendt"; } if(!isset($_POST['send'])){ ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form> <?php } ?>
17. marts 2003 - 19:36
#24
Smukt, det var lige hvad jeg skulle bruge :) Dog, så er det med at man kan trykke refresh ikke så fedt, så den bliver spammet afsted
17. marts 2003 - 19:37
#25
Så er der løsningen med min session. Det kunne laves sådan - hvis du er interesseret - at man max kunne sende 3 beskeder.
17. marts 2003 - 19:39
#26
Det lyder godt nok, 3 beskeder indenfor 20 minuter eller hvordan?
17. marts 2003 - 19:42
#27
Men lad os sige det er godt nok, du skal ikke bruge mere tid på det. Det er ikke for at det er noget at der skal være sådan vildt professionelt :) Kan det sættes op i koden så den f.eks sender ril 2 e-mail adresser? eller 10... :)
17. marts 2003 - 19:47
#28
Jeg laver lige et et eksempel. Ja det vil blive sådan, at når brugeren har sendt 3 mails, så vi lder gå fra den sidste mai ler sendt 20 min. før der kan sendes 3 nye.
17. marts 2003 - 19:49
#29
Eller browseren skal lukkes og startes op igen ;) Anyways, det lyder godt nok hvis du gider lave det! Evt smække en e-mail mere ind for at jeg kan se hvordan det skal sættes op til mere end en?!
17. marts 2003 - 19:59
#30
<?php session_start(); if($_SESSION[tjek] == 3) { echo "Du kan ikke sende flere mails"; exit; } if(isset($_POST['send'])){ mail("mail1@udbyder.dk, mail2@udbyder.dk", "$_POST[emne]", "$_POST[besked]", "From: $_POST[navn] <$_POST[mail]>\nContent-type: text/html; charset=iso-8859-1"); echo "Din mail er nu sendt"; if(!$_SESSION[tjek]){ $_SESSION[tjek] = 1; }else{ $_SESSION[tjek] = $_SESSION[tjek]+1; }} ?> <form action="<?php echo $PHP_SELF; ?>" method="post"> Navn: <input type="text" name="navn"><br> Email: <input type="text" name="mail"><br> Emne: <input type="text" name="emne"><br> Besked: <input type="text" name="besked"><br> <input type="submit" name="send" value="Send tilmelding"> </form>
17. marts 2003 - 20:16
#31
Takker, det virker fint, jeg siger mange tusind tak :)
17. marts 2003 - 20:17
#32
Det var så lidt.
Vi tilbyder markedets bedste kurser inden for webudvikling