Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

Formulier verzenden zonder php

bewerkt wo 23 dec 2015 in XHTML, XML Posts: 117
Nu staat er volgens mij nog geen zend script in of iets dergelijks? Wat is nu voor mij het makkelijkst om dit formulier werkend te krijgen?
Gezien ik geen .php held ben :) Hebben jullie daar een html-foefje voor?
Alvast bedankt voor de reacties!
Carlos!

Reacties

  • PMPosts: 879
    Data verzenden kan alleen met een serverside scripttaal, zoals php. Met HTML alleen kan dat niet.
    Op basis van jouw contactformulier ga je als volgt te werk:
    1. Allereerst hernoem je contact.html naar contact.php
    2. Op de plaats waar je form staat in contact.php (nu dus) vervang je je form door deze 3 regels:

    <?php
    include ('verzend.php');
    ?>
    Dus:

    <p><strong>Eazy-Klus</strong><br>
    Klusstraat 1, 2525 AA, Den Haag, NL<br>
    KvK: 000000, BTW#: 000000<br>
    Telefoon: 06 333 99 333<br>
    Mobiel: 06 333 99 333</p>
    <form method="get" action="http://rdesign070.nl/ek/info@rdesign070.nl">;
    <ul>
    <li>
    <label>Uw Naam:</label>
    <input type="text" name="name">
    </li>
    <li>
    <label>Bedrijfsnaam:</label>
    <input type="text" name="company">
    </li>
    <li>
    <label>E-mail Adres:</label>
    <input type="text" name="email">
    </li>
    <li>
    <label>Telefoonnummer:</label>
    <input type="text" name="phone">
    </li>
    <li>
    <label>Bericht:</label>
    <textarea name="query"></textarea>
    </li>
    <li>
    <input type="checkbox" name="newsletter" value="Ja">
    <label>Ik wil graag nieuws, informatie en speciale aanbiedingen over Eazy-Klus ontvangen.</label>
    </li>
    <li>
    <input type="submit" value="Zend">
    </li>
    </ul>
    </form>
    <div class="clear"></div>

    ziet er nu zo uit:

    <p><strong>Eazy-Klus</strong><br>
    Klusstraat 1, 2525 AA, Den Haag, NL<br>
    KvK: 000000, BTW#: 000000<br>
    Telefoon: 06 333 99 333<br>
    Mobiel: 06 333 99 333</p>
    <?php
    include ('verzend.php');
    ?>
    <div class="clear"></div>
    3. Maak een nieuw bestand aan met de naam verzend.php en zit deze code erin:

    <?php
    error_reporting(E_ALL);
    // functie spamcheck
    function spamcheck($field)
    {
    //filter_var() sanitizes the e-mail
    //address using FILTER_SANITIZE_EMAIL
    $field=filter_var($field, FILTER_SANITIZE_EMAIL);

    //filter_var() validates the e-mail
    //address using FILTER_VALIDATE_EMAIL
    if(filter_var($field, FILTER_VALIDATE_EMAIL))
    {
    return TRUE;
    }
    else
    {
    return FALSE;
    }
    }

    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {

    // definieren variabelen
    $ontvanger = 'jouw@email.nl'; // HIEW JOUW EMAIL INVULLEN
    $onderwerp_email = "Contactformulier"; // onderwerp wat in de email te zien is; tussen de "" evt zelf veranderen zoals je wilt
    $naam = $_POST['naam'];
    $bedrijfsnaam = $_POST['bedrijfsnaam'];
    $email = $_POST['email'];
    $telefoon = $_POST['telefoon'];
    $bericht = $_POST['bericht'];


    // headers opmaken
    $headers = 'MIME-Version: 1.0';
    $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
    $headers .= 'From: '.$email;


    // body voor de email opmaken
    $body = "";
    $body .= "Naam: ";
    $body .= $naam;
    $body .= "\n";

    $body .= "Bedrijfsnaam: ";
    $body .= $bedrijfsnaam;
    $body .= "\n";

    $body .= "Email: ";
    $body .= $email;
    $body .= "\n";

    $body .= "Telefoon: ";
    $body .= $telefoon;
    $body .= "\n";

    $body .= "Bericht: ";
    $body .= $bericht;
    $body .= "\n";


    // verwerking input checkbox
    if(isset($_POST['newsletter']) &&
    $_POST['newsletter'] == 'yes')
    {
    $body .= "Nieuwsbrief: Ja";
    $body .= "\n";
    }
    else
    {
    $body .= "Nieuwsbrief: Nee";
    $body .= "\n";
    }


    // mailcheck, wordt later gechecked
    $mailcheck = spamcheck($_POST['email']);

    // checken of een robot ons formulier bezoekt
    if($_POST['robot'] != 'test_spambot') {
    die();
    }
    //check of email geldig is en geldige input is geleverd

    elseif ($mailcheck==FALSE) {
    echo 'Ongeldige input emailveld<br /><br />';
    }

    else {

    // email verzenden
    $formsent = mail($ontvanger, $onderwerp_email, $body, $headers);

    // echo's als email is verzonden
    if ($formsent){
    echo 'Uw bericht is successvol verstuurd!<br /><br />';
    }
    else{
    echo 'Sorry, maar er is iets misgegaan met het versturen, probeer het later nog eens.';
    }
    }
    } // endif submit
    ?>

    <form method="post" action="">
    <ul>
    <li>
    <input type="hidden" name="robot" value="test_spambot"> <!-- spamcheck -->
    </li>
    <li>
    <label>Uw Naam:</label>
    <input type="text" name="naam">
    </li>
    <li>
    <label>Bedrijfsnaam:</label>
    <input type="text" name="bedrijfsnaam">
    </li>
    <li>
    <label>E-mail Adres:</label>
    <input type="text" name="email">
    </li>
    <li>
    <label>Telefoonnummer:</label>
    <input type="text" name="telefoon">
    </li>
    <li>
    <label>Bericht:</label>
    <textarea name="bericht"></textarea>
    </li>
    <li>
    <input type="checkbox" name="newsletter" value="yes">
    <label>Ik wil graag nieuws, informatie en speciale aanbiedingen over Eazy-Klus ontvangen.</label>
    </li>
    <li>
    <input type="submit" name="submit" value="Zend">
    </li>
    </ul>
    </form>

    Op de plaats hierboven waar jouw@email.nl staat vul je je eigen email in.
    4. Zet het bestand verzend.php in dezelfde map als contact.php
    5. Ready for use!


  • PMPosts: 117
    Nou kijk eens aan! Helemaal goud Nuet! Top! Dank je wel!
  • PMPosts: 117
    Het is geluk Nuet! Kan ik dit nu toepassen op elk andere website? met een paar aanpassingen denk ik?
    Thanks! ook voor de uitleg!
    nuet
  • PMPosts: 879
    ja het principe blijft hetzelfde, alleen zal je ff moeten kijken naar de form en de name attributen want die moeten corresponderen met de POST variabelen. Ik zal er eens een handleiding van maken hoe je met een bestaande form de data voor verzending kunt maken met php
  • PMPosts: 117
    Dat zal heel fijn zijn :) Echt leerzaam! Top! Dank je he!
  • PMPosts: 732
    Wat betreft die spam die werkt volgens mij niet ?


    <input type="hidden" name="robot" value="test_spambot">


    if($_POST['robot'] != 'test_spambot') {
    die();
    }

    Waarom zou een bot deze value veranderen ?
    Daarbij de name = robot ?

    Ik zou eerder gaan voor:
    Aangezien email altijd wel wordt ingevuld.


    <input type="email" name="email" id="email" value="">


    #email{ padding:0;border:0;height:0}


    if ( empty ( $_POST['email'] ) ) {
    # het email script
    } else {
    header("Location: ./index.php?status=spam");
    }
    nuet
    If it's not fun, you're not doing it right!
  • PMPosts: 879
    helemaal gelijk Rene; de gedachtengang achter die spamprotectie is dat een hidden field altijd door een robot wordt ingevuld en het moet wel heel toevalli zijn als ie daar net de waarde test_spambot inschrijft.
    Maar ik heb wel vaker meegemaakt dat dit niet het geval was en dat ie het hidden field niet invulde; daarmee is de spamprotectie dus omzeep. De jouwe is idd veel veiliger tegen spam omdat op email altijd wel getriggerd wordt :)>-
  • PMPosts: 732
    Ik denk tevens dat type hidden ook invloed heeft, een height 0 of display none is in mijn ogen ook raadzaam.
    If it's not fun, you're not doing it right!
Login of Registreer om te reageren.