Tekst uit Input ophalen via PHP
Ik ben een mail forum aan het maken, alles werkt, alleen de tekst die PHP met uit de input haalt wordt in raw tekst in de mail weergeven, ik weet dat dit aan de onderstreepte functie ligt. (Zie onderstaan deel van mijn script)
-------------------------------------------------------------------
require_once('class.phpmailer.php');
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
require_once('class.phpmailer.php');
$mail = new PHPMailer(); // defaults to using php "mail()"
[i]$body = file_get_contents("php://input");[/i]
-----------------------------------------------------------------------
Kan iemand mij vertellen met welke functie of op welke manier ik gewone tekst kan ontvangen in mail i.p.v. raw tekst?
mvg,
Tom
require_once('class.phpmailer.php');
$mail = new PHPMailer(); // defaults to using php "mail()"
[i]$body = file_get_contents("php://input");[/i]
-----------------------------------------------------------------------
Kan iemand mij vertellen met welke functie of op welke manier ik gewone tekst kan ontvangen in mail i.p.v. raw tekst?
mvg,
Tom
Tje.... $_POST['input'] al geprobeerd?
(kan het fout hebben)
in elk geval zo zal je een mail met input veld kunnen versturen (pas hem zelf even aan aan jouw wensen)
[linebreak]Code (php) 12345678910111213141516 <?phpif($_SERVER["REQUEST_METHOD"] == POST){ if(mail("naam <[email protected]>","Onderwerp",$_POST["tekst"],"FROM: Van <[email protected]>")){ echo Je email is verstuurd!; }else{ echo Mail versturen mislukt; }}else{ echo <form action="" method="POST"> <input type="text" name="tekst"/><br/> <input type="Submit" value="Verstuur"/> </form> ;}?> [linebreak]
(de forum reageert hier vaag op XD kijk anders even op scrapzz.nl/input.html daar heb ik hem naar geupload!!)
om dus de input te krijgen vraag ik $_POST["tekst"] op!!
Gewijzigd op 28/06/2012 19:52:08 door ScrapZz nl
Ik heb eerst succes proberen te boeken door: $_POST['input']; te vervangen met de 3de regel van de code. Dit leverde op: 'message body empty'
Mijn programmeer kwaliteit met PHP is zeer laag. Ik heb het script uit de 2de reactie geprobeerd, ik heb daarbij alleen de email-adressen veranderd, maar ik vindt het opmerkelijk dat het met dat zou kunnen lukken, je hebt namelijk geen extern bestand nodig dan zoals ik gebruik?
Ik hoop dat er een functie is die ik in mijn huidige script kan aanpassen!
Wat bedoel je met 'raw tekst'? Geef eens een voorbeeld?
--------------------------------------------------
Naam: Tom Baas
Email: [email protected]
bericht:
hoi
Ik wil graag.
gr. Tom
-------------------------------------------------------------------
Dan krijg ik in mijn inbox dit:
name=Tom+Baas&email=tomraas%40hotmail.com&message=Hoi%0D%0A%0D%0A%0D%0AIK+wil+graag.%0D%0A%0D%0AGr.+Tom
?
Probeer eens POST in plaats van GET.
Dat staat dus in je formulier (html!)
Aha, je verzend het formulier via Probeer eens POST in plaats van GET.
Dat staat dus in je formulier (html!)
alvast bedankt voor de reacties!
Eddy Erkelens op 29/06/2012 12:47:48:
dan moet je denk ook nl2br(); gebruiken??
en die error komt miss door je andere bestand?? wat staat daar in?
Mijn contactform werkt met drie bestanden:
-contact.php
- class.phpmailer.php
- En index.html met het form:
<html>
<form action="contact.php" method="get">
<ol>
<label><strong>Neem contact met ons op door te mailen m.b.v. het onderstaande contact formulier.</strong></label>
<li>
<label for="name">U Naam</label>
<input id="name" name="name" class="text" />
</li>
<li>
<label class="naam" for="email">U Email</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="message">Bericht</label>
<textarea id="message" name="message" rows="5" cols="50" style="height:150px;"></textarea>
</li>
<li>
<input class="button" style="color:black;" type="submit" value="Verzenden" />
</li>
</ol>
</form>
</html>
Gewijzigd op 30/06/2012 13:16:47 door Tom Baas
Tom Baas op 30/06/2012 13:16:17:
Oke waar zou ik NL2BR() moeten neerzetten precies? en in de 3de regel zet ik dan: $_POST['input']; ??
Mijn contactform werkt met drie bestanden:
-contact.php
- class.phpmailer.php
- En index.html met het form:
<html>
<form action="contact.php" method="get">
<ol>
<label><strong>Neem contact met ons op door te mailen m.b.v. het onderstaande contact formulier.</strong></label>
<li>
<label for="name">U Naam</label>
<input id="name" name="name" class="text" />
</li>
<li>
<label class="naam" for="email">U Email</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="message">Bericht</label>
<textarea id="message" name="message" rows="5" cols="50" style="height:150px;"></textarea>
</li>
<li>
<input class="button" style="color:black;" type="submit" value="Verzenden" />
</li>
</ol>
</form>
</html>
Mijn contactform werkt met drie bestanden:
-contact.php
- class.phpmailer.php
- En index.html met het form:
<html>
<form action="contact.php" method="get">
<ol>
<label><strong>Neem contact met ons op door te mailen m.b.v. het onderstaande contact formulier.</strong></label>
<li>
<label for="name">U Naam</label>
<input id="name" name="name" class="text" />
</li>
<li>
<label class="naam" for="email">U Email</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="message">Bericht</label>
<textarea id="message" name="message" rows="5" cols="50" style="height:150px;"></textarea>
</li>
<li>
<input class="button" style="color:black;" type="submit" value="Verzenden" />
</li>
</ol>
</form>
</html>
Laat dan is alles zien ;)
en dit zal ook gewoon moeten werken:
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
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
<?php
//Gescript door ScrapZz (scrapzz.nl)
if($_SERVER["REQUEST_METHOD"] == 'POST'){
if(!$_POST["name"]){
echo 'U heeft uw naam leeg gelaten!';
}elseif(!$_POST["email"] || strlen($_POST["email"]) < 5 || !eregi("@",$_POST["email"])){
echo 'U heeft uw email niet op gegeven of is ongeldig!';
}elseif(!$_POST["message"]){
echo 'Wat wilde u ons vertellen??';
}else{
if(mail("Jouw naam <[email protected]>","Email van Jouwsite.nl","U heeft een email gehad van: ".$_POST["name"]."<br/><br/>".nl2br($_POST["message"]),"FROM: ".$_POST["name"]." <".$_POST["email"].">\r\nContent-type: text/html")){
echo 'Uw email is verstuurd!';
}else{
echo 'Mail versturen mislukt';
}
}
}else{
echo '
<form action="" method="POST">
<ol>
<label><strong>Neem contact met ons op door te mailen m.b.v. het onderstaande contact formulier.</strong></label>
<li>
<label for="name">U Naam</label>
<input id="name" name="name" class="text" />
</li>
<li>
<label class="naam" for="email">U Email</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="message">Bericht</label>
<textarea id="message" name="message" rows="5" cols="50" style="height:150px;"></textarea>
</li>
<li>
<input class="button" style="color:black;" type="submit" value="Verzenden" />
</li>
</ol>
</form>
';
}
?>
//Gescript door ScrapZz (scrapzz.nl)
if($_SERVER["REQUEST_METHOD"] == 'POST'){
if(!$_POST["name"]){
echo 'U heeft uw naam leeg gelaten!';
}elseif(!$_POST["email"] || strlen($_POST["email"]) < 5 || !eregi("@",$_POST["email"])){
echo 'U heeft uw email niet op gegeven of is ongeldig!';
}elseif(!$_POST["message"]){
echo 'Wat wilde u ons vertellen??';
}else{
if(mail("Jouw naam <[email protected]>","Email van Jouwsite.nl","U heeft een email gehad van: ".$_POST["name"]."<br/><br/>".nl2br($_POST["message"]),"FROM: ".$_POST["name"]." <".$_POST["email"].">\r\nContent-type: text/html")){
echo 'Uw email is verstuurd!';
}else{
echo 'Mail versturen mislukt';
}
}
}else{
echo '
<form action="" method="POST">
<ol>
<label><strong>Neem contact met ons op door te mailen m.b.v. het onderstaande contact formulier.</strong></label>
<li>
<label for="name">U Naam</label>
<input id="name" name="name" class="text" />
</li>
<li>
<label class="naam" for="email">U Email</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="message">Bericht</label>
<textarea id="message" name="message" rows="5" cols="50" style="height:150px;"></textarea>
</li>
<li>
<input class="button" style="color:black;" type="submit" value="Verzenden" />
</li>
</ol>
</form>
';
}
?>
Gewijzigd op 30/06/2012 14:37:02 door ScrapZz nl
Het luktte vrijwel meteen, alleen heb de eregi(@) verwijderd want ik kreeg een error: deprecated: eregi
Nogmaal bedankt iedereen ben hier zeer blij mee!
Tom Baas op 30/06/2012 20:01:28:
Dankje dankje dankje dankje!!!! eindelijk jezus
Het luktte vrijwel meteen, alleen heb de eregi(@) verwijderd want ik kreeg een error: deprecated: eregi
Nogmaal bedankt iedereen ben hier zeer blij mee!
Het luktte vrijwel meteen, alleen heb de eregi(@) verwijderd want ik kreeg een error: deprecated: eregi
Nogmaal bedankt iedereen ben hier zeer blij mee!
blij dat het gelukt is maar als ik jouw was zal ik dan wel kijken naar een andere oplossing om de email adres te controleren aan gezien de methode die ik aanschreef niet werkt ;)
Ook zou ik bij de controle niet werken met een elseif.
Controleer alles en geef dan in 1x alle eventuele fouten terug. Nu zou een bezoeker tot 3 keer toe een (fout)melding kunnen krijgen.
Daarnaast zou ik het zo maken dat de ingevulde waarden weer getoond worden in het formulier als er iets niet goed is ingevuld.
Je zei op 29/06/2012 13:44:34 dat je methode als POST was, maar 2 berichten later stond er nog GET.
Tja...