Tekst uit Input ophalen via PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Baas

Tom Baas

28/06/2012 19:19:05
Quote Anchor link
Hee,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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
 
PHP hulp

PHP hulp

29/03/2024 15:04:55
 
Eddy E

Eddy E

28/06/2012 19:35:30
Quote Anchor link
Tje.... $_POST['input'] al geprobeerd?
 
ScrapZz nl

ScrapZz nl

28/06/2012 19:47:45
 
Tom Baas

Tom Baas

29/06/2012 11:07:56
Quote Anchor link
Bedankt voor de reacties!

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!
 
Obelix Idefix

Obelix Idefix

29/06/2012 12:35:19
Quote Anchor link
Wat bedoel je met 'raw tekst'? Geef eens een voorbeeld?
 
Tom Baas

Tom Baas

29/06/2012 12:41:59
Quote Anchor link
Als ik invul:
--------------------------------------------------
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
 
Eddy E

Eddy E

29/06/2012 12:47:48
Quote Anchor link
Aha, je verzend het formulier via
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
method="GET"
?
Probeer eens POST in plaats van GET.

Dat staat dus in je formulier (html!)
 
Tom Baas

Tom Baas

29/06/2012 13:44:34
Quote Anchor link
Mijn method was al POST, ik heb nu GET geprobeerd maar dit geeft ook de error: 'message body empty'. Wat zou ik volgens u in moeten vullen in de 3de regel?

alvast bedankt voor de reacties!
 
ScrapZz nl

ScrapZz nl

29/06/2012 18:31:07
Quote Anchor link
Eddy Erkelens op 29/06/2012 12:47:48:
Aha, je verzend het formulier via
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
method="GET"
?
Probeer eens POST in plaats van GET.

Dat staat dus in je formulier (html!)


dan moet je denk ook nl2br(); gebruiken??
en die error komt miss door je andere bestand?? wat staat daar in?
 
Tom Baas

Tom Baas

30/06/2012 13:16:17
Quote Anchor link
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>
Gewijzigd op 30/06/2012 13:16:47 door Tom Baas
 
ScrapZz nl

ScrapZz nl

30/06/2012 14:36:30
Quote Anchor link
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>


Laat dan is alles zien ;)
en dit zal ook gewoon moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
    '
;
}

?>
Gewijzigd op 30/06/2012 14:37:02 door ScrapZz nl
 
Tom Baas

Tom Baas

30/06/2012 20:01:28
Quote Anchor link
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!
 
ScrapZz nl

ScrapZz nl

30/06/2012 20:34:23
Quote Anchor link
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!


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 ;)
 
Obelix Idefix

Obelix Idefix

30/06/2012 20:41:28
Quote Anchor link
eregi is, zoals de melding aangeeft, verouderd. Kijk naar preg_match.
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.
 
Eddy E

Eddy E

01/07/2012 10:03:36
Quote Anchor link
Toch frappant dat het nu eindelijk met method="POST wel werkt.
Je zei op 29/06/2012 13:44:34 dat je methode als POST was, maar 2 berichten later stond er nog GET.
Tja...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.