VRAAG: PHP script post Shout/Request to email
Ik wil graag een werkende Shout/Request bij mijn radio site.
Mijn vraag is of jullie me kunnen helpen met een php script,
wanneer je me wilt helpen lees dan verder.
Shout/Request code ziet er als volgt uit:
[De code hieronder komt op de radio pagina!]
<form name="form1" method="post" action="post.php"><table border="0"><tr><td>Naam:</td><td><input type="text" name="name"></td></tr>
<tr><td>Je Shout/Request:</td><td><textarea name="msg"></textarea></td></tr><tr><td></td><td><input type="submit" value="Verzend Shout/Request"></tr></form>
Kan iemand hiervan een php script maken?
De eisen voor een post script zie je hieronder
Wat wil ik nou graag in de php script hebben:
- Fouten controle, wanneer je iets niet hebt ingevuld moet het aangegeven worden.
- Ik wil graag dat het verzonden wordt naar een email dit graag zo aangeven in je script [[email protected]]
- Wanneer je op verzend Shout/Request drukt moet er dit bericht komen:
Bedankt, je Shout/Request is verzonden naar de DJ.
Klik hier om nog een Shout/Request door te geven.
Hierbij moet dus een link komen wat je kan aanklikken om weer terug op de radio pagina te gaan.
Dit graag zo aangeven in de script [website url]
Bedankt voor het lezen, ik hoop dat iemand me kan helpen.
Alvast bedankt!
Met vriendelijke groet,
Dylan
Radio Site Eigenaar
In het eerste geval: wat is je kennis?
Anders lijkt me dit meer op een vacature.
Nou daarom post ik het dus mijn vraag is of jullie me kunnen helpen
Maar goed: je wilt hulp. Bij deze een link naar een basistut: http://www.phptuts.nl/view/39/
Misschien kan jij me helpen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
//kijken of er wat gepost word
if($_SERVER["REQUEST_METHOD"] == POST){
//Moet nog tegen sql injection beschermt worden ben alleen vergeten hoe ;)
$Name = $_POST["name"];
$message = $_POST["msg"];
//Je email
$jouwMailAdres = "...";
//De afzender
$from = "$name";
//Ondewerp
$onderwerp = "&name";
//jouw naam
$uwnaam = "SimChannel";
//Kijken of de formulier is ingevuld
if($name){
$send = true;
}elseif($message){
$Send = true;
}
if($Send){
//Checken of de mail is aangekomen
if(mail("$Uwnaam <$JouwMailAdres>","$Onderwerp","Naam: $name <br/>Bericht: $message","From: $Name <$From> \r\nContent-type: text/html")){
echo"Je reqeust is verzonden";
}else{
//Als de mail niet is aan gekomen!
echo "Je reqeust kon niet verzonden worden!";
}
}else{
//Mislukte formulier
echo"Je formulier is niet corect ingevult <a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
}else{
//Als er niks gepost word
echo"
<form name="form1" method="post" action="post.php"><table border="0"><tr><td> Naam:</td><td><input type="text" name="name"></td></tr>
<tr><td>Je Shout/Request:</td><td><textarea name="msg"></textarea></td></tr><tr><td></td><td><input type="submit" value="Verzend Shout/Request"></tr></form>
";
}
?>
//kijken of er wat gepost word
if($_SERVER["REQUEST_METHOD"] == POST){
//Moet nog tegen sql injection beschermt worden ben alleen vergeten hoe ;)
$Name = $_POST["name"];
$message = $_POST["msg"];
//Je email
$jouwMailAdres = "...";
//De afzender
$from = "$name";
//Ondewerp
$onderwerp = "&name";
//jouw naam
$uwnaam = "SimChannel";
//Kijken of de formulier is ingevuld
if($name){
$send = true;
}elseif($message){
$Send = true;
}
if($Send){
//Checken of de mail is aangekomen
if(mail("$Uwnaam <$JouwMailAdres>","$Onderwerp","Naam: $name <br/>Bericht: $message","From: $Name <$From> \r\nContent-type: text/html")){
echo"Je reqeust is verzonden";
}else{
//Als de mail niet is aan gekomen!
echo "Je reqeust kon niet verzonden worden!";
}
}else{
//Mislukte formulier
echo"Je formulier is niet corect ingevult <a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
}else{
//Als er niks gepost word
echo"
<form name="form1" method="post" action="post.php"><table border="0"><tr><td> Naam:</td><td><input type="text" name="name"></td></tr>
<tr><td>Je Shout/Request:</td><td><textarea name="msg"></textarea></td></tr><tr><td></td><td><input type="submit" value="Verzend Shout/Request"></tr></form>
";
}
?>
Waar loop ik vast:
De code doet het niet er komt webpagina niet gevonden
Gewijzigd op 10/08/2014 14:06:28 door Dylan nvt
- op lijn 36 moet je een single-quoted echo gebruiken.
Ik neem aan dat je dat met $From of $from probeert te doen
Zet je error reporting eens aan, want op $From had je een melding moeten krijgen (als de paf=gina tenminste gevonden wordt)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
//kijken of er wat gepost word
if($_SERVER["REQUEST_METHOD"] == "POST"){
//Moet nog tegen sql injection beschermt worden ben alleen vergeten hoe ;)
$Name = $_POST["name"];
$message = $_POST["msg"];
//Je email
$jouwMailAdres = "[email protected]";
//De afzender
$from = "$name";
//Ondewerp
$onderwerp = "&name";
//jouw naam
$uwnaam = "SimChannel";
//Kijken of de formulier is ingevuld
if($name){
$send = true;
}elseif($message){
$Send = true;
}
if($Send){
//Checken of de mail is aangekomen
if(mail("$Uwnaam <$JouwMailAdres>","$Onderwerp","Naam: $name <br/>Bericht: $message","From: $Name <$From> \r\nContent-type: text/html")){
echo"Je reqeust is verzonden";
}else{
//Als de mail niet is aan gekomen!
echo "Je reqeust kon niet verzonden worden!";
}
}else{
//Mislukte formulier
echo"Je formulier is niet corect ingevult <a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
}else{
//Als er niks gepost word
echo'
<form name="form1" method="post" action="post.php"><table border="0"><tr><td>Naam:</td><td><input type="text" name="name"></td></tr>
<tr><td>Je Shout/Request:</td><td><textarea name="msg"></textarea></td></tr><tr><td></td><td><input type="submit" value="Verzend Shout/Request"></tr></form>
';
}
?>
//kijken of er wat gepost word
if($_SERVER["REQUEST_METHOD"] == "POST"){
//Moet nog tegen sql injection beschermt worden ben alleen vergeten hoe ;)
$Name = $_POST["name"];
$message = $_POST["msg"];
//Je email
$jouwMailAdres = "[email protected]";
//De afzender
$from = "$name";
//Ondewerp
$onderwerp = "&name";
//jouw naam
$uwnaam = "SimChannel";
//Kijken of de formulier is ingevuld
if($name){
$send = true;
}elseif($message){
$Send = true;
}
if($Send){
//Checken of de mail is aangekomen
if(mail("$Uwnaam <$JouwMailAdres>","$Onderwerp","Naam: $name <br/>Bericht: $message","From: $Name <$From> \r\nContent-type: text/html")){
echo"Je reqeust is verzonden";
}else{
//Als de mail niet is aan gekomen!
echo "Je reqeust kon niet verzonden worden!";
}
}else{
//Mislukte formulier
echo"Je formulier is niet corect ingevult <a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
}else{
//Als er niks gepost word
echo'
<form name="form1" method="post" action="post.php"><table border="0"><tr><td>Naam:</td><td><input type="text" name="name"></td></tr>
<tr><td>Je Shout/Request:</td><td><textarea name="msg"></textarea></td></tr><tr><td></td><td><input type="submit" value="Verzend Shout/Request"></tr></form>
';
}
?>
Nu geeft die aan
Je reqeust kon niet verzonden worden!
Op regel 6 maak je eerst $Name aan, om daar een $_POST waarde in te zetten, daarna maak je op regel 11 $from aan om die te vullen met $name (let op: kleine letter). Waarom?
Zou de variabelen zoals op regel 11 en regel 24 niet tussen "" zetten.
Wees consequent in de naam van je variabelen. Die op regel 6 begin je met een hoofdletter, op regel 7 niet.
Waar controleer je of de variabelen $_POST['name'] en $_POST['msg'] wel een waarde hebben?
Waar komt $name vandaan op regel 17?
Ook $send kent twee schrijfwijzes: regel 18 is anders dan regel 20.
De tekst op regel 23 klopt niet; je controleert of de mail is verzonden, niet of die is aangekomen.
Grote kans dat je headers bij de mail onvolledig zijn (http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders).
Ik zou de variabelen die van een user zijn en je in je mail gebruikt, beveiligen.
Is het niet 'request' ipv 'reqeust'? ;-)
Gewijzigd op 10/08/2014 14:20:09 door Obelix Idefix
Kan iemand zeggen wat aangepast moet worden alvast bedankt :)
Heb je mijn post gelezen?!
Daar staat in ieder geval een aantal zaken in, waardoor je mogelijk die (fout)melding krijgt.
Toevoeging op 10/08/2014 22:21:54:
Crossposting: http://www.pfz.nl/forum/topic/10811-vraag-php-script-post-shoutrequest-to-email/