Avatar billede blaatand Nybegynder
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 :)
Avatar billede ahv Nybegynder
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>
Avatar billede ztyxx Nybegynder
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
Avatar billede ztyxx Nybegynder
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">
Avatar billede blaatand Nybegynder
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 :)
Avatar billede ahv Nybegynder
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.
Avatar billede ahv Nybegynder
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.
Avatar billede blaatand Nybegynder
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...
Avatar billede ahv Nybegynder
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.
Avatar billede blaatand Nybegynder
16. marts 2003 - 23:50 #9
Desuden lukker det script helt af for at kunne komme ind og indtaste igen :(
Avatar billede ahv Nybegynder
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
}
?>
Avatar billede ahv Nybegynder
16. marts 2003 - 23:52 #11
Ja det gør det, indtil session dør, de har en leve tid på 20 min.
Avatar billede blaatand Nybegynder
16. marts 2003 - 23:53 #12
http://www.jokester.dk/gamesurfadmin/

kan kun sende en gang...
Avatar billede blaatand Nybegynder
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...
Avatar billede ahv Nybegynder
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>
Avatar billede ahv Nybegynder
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>
Avatar billede blaatand Nybegynder
16. marts 2003 - 23:58 #16
Parse error: parse error, unexpected '<' in D:\www.uo-dan.dk\Web\gamesurfadmin\Index.php on line 9
Avatar billede blaatand Nybegynder
16. marts 2003 - 23:58 #17
lækkert :)
Avatar billede ahv Nybegynder
16. marts 2003 - 23:59 #18
blaatand >> Jeg har rettet fejlen i det sidste jeg postede.
Avatar billede blaatand Nybegynder
16. marts 2003 - 23:59 #19
Jeg siger tak, og giver dig dine points. Det er noget jeg kan bruge ;)
Avatar billede blaatand Nybegynder
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
Avatar billede ahv Nybegynder
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.
Avatar billede blaatand Nybegynder
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 :)
Avatar billede ahv Nybegynder
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
}
?>
Avatar billede blaatand Nybegynder
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
Avatar billede ahv Nybegynder
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.
Avatar billede blaatand Nybegynder
17. marts 2003 - 19:39 #26
Det lyder godt nok, 3 beskeder indenfor 20 minuter eller hvordan?
Avatar billede blaatand Nybegynder
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... :)
Avatar billede ahv Nybegynder
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.
Avatar billede blaatand Nybegynder
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?!
Avatar billede ahv Nybegynder
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>
Avatar billede blaatand Nybegynder
17. marts 2003 - 20:16 #31
Takker, det virker fint, jeg siger mange tusind tak :)
Avatar billede ahv Nybegynder
17. marts 2003 - 20:17 #32
Det var så lidt.
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