Machtingingsformulier Maken

Status
Niet open voor verdere reacties.

BoukeWeening

Gebruiker
Lid geworden
3 apr 2007
Berichten
232
Hoi, ik ben bezig met het maken van een machtigingsformulier op de website. Ik kom hier niet helemaal uit, wie kan mij helpen?

Ingevuld moet worden:

Naam:
Adres:
Postcode:
Woonplaats:
Mailadres:
Keuze bedrag: 3,16 p/m of 6,32 p/m of .... (zelf in te vullen)
Rekeningnummer:
Optioneel een bericht:

Aanvink vakje met: Hierbij machtig ik....

Het zijn allemaal verplichte velden excl. het bericht. Bij het bedrag moet ze dus een keuze maken dus 3,16 of 6,32 of een eigen keuze.

Kan iemand me hier mee helpen? dan zou ik heel blij van worden!:rolleyes:
 
Wat heb je al en wat is precies het probleem?

Je weet trouwens dat machtigingen via internet op deze manier niet geldig zijn:
Machtiging via internet

Machtigingen via internet zijn alleen geldig als ze zijn geprint, ondertekend en verstuurd naar de instelling die incasseert.
 
Ik weet dat het niet mag, maar met toestemming van de Bank mag het dan wel weer...

Ik heb nu dit:

PHP:
<?PHP
 session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
                             
                            // E-mailadres van de ontvanger
                            $mail_ontv = 'vriendenvanfestival316@uniteinchrist.nl'; // <<<----- voer jouw e-mailadres hier in!


// Speciale checks voor naam en e-mailadres
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $error = array();
        // naam controle
        if (!empty($_POST['naam']) || !preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
            $error[] = '<p>Uw naam mag alleen letters bevatten.</p>';
        // e-mail controle
        if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
                $error[] = '<p>Uw e-mailadres is niet juist.</p>';
        // antiflood controle
        if (!empty($_SESSION['antiflood']))
        {
            $seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
            $tijd = time() - $_SESSION['antiflood'];
            if($tijd < $seconde)
                $error[] = '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
        }
        if(!isset($_POST['machtiging'])) 
            $error[] = 'U moet de machteging nog checken';
    }
 
    // Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
    if (($_SERVER['REQUEST_METHOD'] == 'POST' &&  ( empty($_POST['bericht'])) || $_SERVER['REQUEST_METHOD'] == 'GET'))
    {
        if(isset($error)){
            foreach( $error as $msg ) {
                echo $msg;
            }
        }
if(!empty($_POST)) {
        extract($_POST);      
    } else {
        $naam = '';
        $adres = '';
        $postcode = '';
        $woonplaats = '';
        $mail = '';
        $bedrag = '';
        $rekeningnummer = '';
        $bericht = '';
    }
    
// HTML e-mail formlier
      echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
      <p>
      
          <label for="naam">Naam:</label>
          <input type="text" class="input" id="naam" name="naam" value="' .htmlspecialchars($naam). '" /><br />
          
          <label for="adres">Adres:</label>
          <input type="text" class="input" id="adres" name="adres" value="' .htmlspecialchars($adres). '" /><br />
          
          <label for="postcode">Postcode:</label>
          <input type="text" class="input" id="postcode" name="postcode" value="' .htmlspecialchars($postcode). '" /><br />
          
          <label for="Woonplaats">Woonplaats:</label>
          <input type="text" class="input" id="woonplaats" name="woonplaats" value="' .htmlspecialchars($woonplaats). '" /><br />
                                          
          <label for="mail">E-mailadres:</label>
          <input type="text" class="input" id="mail" name="mail" value="' .htmlspecialchars($mail). '" /><br />
          
          <label class="margin" for"bedrag">Bedrag:</label>
          <input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">3,16 euro p/m<br />
          <input type="radio" id="bedrag" class="submit_formulier" value="6,32 euro p/m" name="bedrag">6,32 euro p/m<br />
          <input type="radio" id="bedrag" class="submit_formulier" value="vrij" name="bedrag"><input type="text" class="bedrag" "id="bedrag" name="bedrag" value="' .htmlspecialchars($bedrag). '" /> euro p/m<br /><br />
          
          <label for="rekeningnummer">Rekeningnummer:</label>
          <input type="text" class="input" id="rekeningnummer" name="rekeningnummer" value="' .htmlspecialchars($rekeningnummer). '" /><br />
          
          <label for="bericht">Bericht:</label><br />
          <textarea id="bericht" name="bericht" rows="4" style="width: 430px;">' .htmlspecialchars($bericht). '</textarea><br />
         
          <input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  /> Hierbij machtig ik Stichting Festival316 om het aangegeven bedrag af te schrijven van bovengenoemd bankrekeningnummer.</p> 
 
          
          <input type="submit" name="submit" value=" Versturen " />
      </p>
      </form>';
    }
    // versturen naar
    else
    {      
      // set datum
      $datum = date('d/m/Y H:i:s');
        
      $inhoud_mail = "===================================================\n";
      $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
      $inhoud_mail .= "===================================================\n\n";
      
      $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
      $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
      $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
      $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
      $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
      $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
      $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
      $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
      $inhoud_mail .= "Bericht:\n";
      $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
        
      $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
        
      $inhoud_mail .= "===================================================\n\n";
      
      // --------------------
      // spambot protectie
      // ------
      // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
      // ------
      
      $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
      
      $headers = stripslashes($headers);
      $headers = str_replace('\n', '', $headers); // Verwijder \n
      $headers = str_replace('\r', '', $headers); // Verwijder \r
      $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
      
      $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
      $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
      $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
      
      if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
      {
          // zorg ervoor dat dezelfde persoon niet kan spammen
          $_SESSION['antiflood'] = time();
          
          echo '<h1>Het contactformulier is verzonden</h1>
          
          <p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
      }
      else
      {
          echo '<h1>Het contactformulier is niet verzonden</h1>
          
          <p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
      }
    }
    ?>

Het grote probleem is dat hij het bedrag niet mee stuurt in de mail en ik niet zeker weet of het zo goed is geschreven... En ik zou graag de bedankt tekst openen in een nieuw geladen pagina, nu wordt dit onderaan een heel stuk tekst weer gegeven. Zie ook: www.festival316.nl/vriendenvanfestival316/

Alvast bedankt!
 
Over het algemeen is het, als het gaat om betalingen en andere zeer belangrijke formulieren, een goed idee om het te laten doen door iemand die er verstand van heeft. Als je mensen betalingen wil laten doen zit je niet te wachten op bugs en je hebt grote kans dat die er komen als je een formuliertje in elkaar beunt terwijl je zelf niet weet wat je doet, met hulp van mensen die er ook maar even naar kijken en wat tips geven...

Gewoon een stukje advies :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan