Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] HTML-template met PHP versturen per mail

BasHamar
3 antwoorden
  • Ik heb een formulier dat dmv POST wordt doorgestuurd naar een PHP-bestandje dat de gegevens opvangt. De gegevens komen ook door, geen probleem. Ik wil de gegevens echter per email versturen naar m'n eigen adres. En hier loopt het stuk. Ik heb (versimpeld) het volgende:[code:1:e3ed4e49bb]<!– <pre><?php print_r($_POST); ?></pre> –>
    <?php
    // Toon gegevens in de template: dit werkt!
    include("html-template.php");
    // Importeer template naar variabele: werkt ook
    $mail_body = @file("html-template.php");
    // Voeg array samen en verstuur, werkt, maar php blijft php…
    mail($adres,$onderwerp,implode($mail_body),"Content-type: text/html; charset=iso-8859-1
    ");
    [/code:1:e3ed4e49bb]Uiteraard zijn alle variabelen gedeclareerd en die kloppen. Het resultaat is dat ik de HTML-template in m'n mailbox krijg, maar zonder dat het PHP is uitgevoerd. Ik heb geprobeerd het geheel in eval() te gooien maar die spuugt een foutmelding uit, vermoedelijk vanwege het feit dat het geen HTML lust.

    Iemand ideeën?
  • file() leest gewoon letterlijk het bestand in van je filesystem. De php gaat dus niet door de php-parser. Je kan echter aan file() ook een url opgeven, in dat geval zal de template wel eerst worden geparsed. Je zal dan wel wat moeten verzinnen om de post-vars door te sturen naar deze template (via querystring bijvoorbeeld).
    Andere optie is om de uitvoer van de template op te vangen middels output buffering (ipv rechtstreeks naar de client te sturen). Je kan de inhoud van de output buffer opvragen en deze via de mail versturen.
  • Heb je hier wat aan ?.

    [code:1:d1510e2f08]
    <html>
    <body bgcolor="#CCFFFF">
    <form action="" method="post">
    <div align="center"><TABLE border="0" bgcolor="silver" bordercolor="white">
    <tr>
    <Td>
    <TABLE border="0" ALIGN="left" bgcolor="silver">
    <tr>
    <Td width=100><B><font size="1"><select TABINDEX="1" name="aanhef" size=1>
    <option> De heer </option>
    <option> Mevrouw </option>
    <option selected> Familie </option></select></font></B>
    </TD> <td><font color="#ff0000">*</font>
    </td>
    <td width=100><INPUT NAME="naam" SIZE=20 MAXLENGTH=30 TYPE="text" TABINDEX="2">
    </td>
    </TR>
    <TR>
    <Td><B><font size="4">Adres</font></B>
    </TD> <td>
    </td>
    <td><INPUT NAME="adres" SIZE=20 MAXLENGTH=30 TYPE="text" TABINDEX="2">
    </td>
    </TR>
    <TR>
    <Td><B><font size="4">Postcode</font></B>
    </TD> <td>
    </td>
    <td><INPUT NAME="postcode" SIZE=20 MAXLENGTH=11 TYPE="text" TABINDEX="3">
    </td>
    </TR>
    <TR>
    <Td><B><font size="4">Plaats</font></B>
    </TD> <td>
    </td>
    <td><INPUT NAME="plaats" SIZE=20 MAXLENGTH=20 TYPE="text" TABINDEX="4">
    </td>
    </TR>
    <TR>
    <Td><B><font size="4">Telefoon vast</font></B>
    </TD> <td>
    </td>
    <td><INPUT NAME="telefoon" SIZE=20 MAXLENGTH=20 TYPE="text" TABINDEX="5">
    </td>
    </TR>
    <TR>
    <Td><B><font size="4">Onderwerp&nbsp;</font></B>
    </td> <td><font color="#ff0000">*</font>
    </td>
    <td>
    <select TABINDEX="6" name="onderwerp" size=1>
    <option selected>Kies onderwerp</option>
    <option>Brochure aanvragen</option>
    <option>Opmerking over de website</option>
    <option>Andere vraag</option>
    </select>
    </td>
    </TR>
    <TR>
    <Td><B><font size="4">E-mail adres:&nbsp;</font></B>
    </TD> <td><font color="#ff0000">*</font>
    </td>
    <td><INPUT name="email" SIZE=20 MAXLENGTH=50 TYPE="text" TABINDEX="7">
    </td>
    </TR>
    </TABLE>

    </td>
    <td>
    <center>
    <TABLE width=460 height=42 border=0>
    <tr>
    <td align=center><b>Wat U ook vraagt , U krijgt ALTIJD antwoord!.</b>
    </TD>
    </TR>

    <TR>
    <Td><TEXTAREA NAME="vraag" rows="10" cols="53" TYPE="text" TABINDEX="8"></textarea>
    </TD>
    </TR>
    </TABLE>
    </center>
    </TD>
    </TR>


    <TR>
    <Td>
    <center>


    <input type="submit" name="submit" value="Send">
    <input type="reset" name="Reset" value="Reset">
    </form>

    <?php
    if ($submit) { // if the form was sent do the following



    $headers = "MIME-Version: 1.0
    ";
    $headers .= "Content-type: text/html; charset=iso-8859-1
    ";

    if($naam && $email && (($onderwerp<>"Brochure aanvragen" && $vraag<>"") or ($onderwerp=="Brochure aanvragen"))) { // if all field are filled-in send email
    mail("info@mailnaarmij.nl", "vraag", "Wie: $aanhef $naam<br>Adres: $adres<br>Postcode: $postcode <br>
    Plaats: $plaats<br>Telefoon: $telefoon<br>Onderwerp: $onderwerp<br><br>De vraag: $vraag", "$headers"
    ."From: $email
    "
    ."Reply-To: webmaster@$SERVER_NAME
    "
    ."X-Mailer: PHP/" . phpversion());

    echo "Bericht verzonden"; // if all went well, display message was sent
    } else {
    echo "<font color='#0000FF' size='4'>U bent vergeten </font>"; // if not all were filled in, display error message
    if ($naam=="") {echo " <font color=red size='4'>uw naam</font>";}
    if ($email=="") {echo " <font color=red size='4'>uw emailadres</font>";}
    if ($onderwerp=="Kies onderwerp") {echo " <font color=red size='4'>het onderwerp</font>";}
    if ($vraag=="" and $onderwerp<>"Brochure aanvragen") {echo " <font color=red size='4'>uw vraag</font>";}
    echo " <font color='#0000FF' size='4'>in te vullen!</font>";
    }

    } // end php submission code
    ?>


    </body> </html>
    [/code:1:d1510e2f08]



Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.