+ Antworten
Ergebnis 1 bis 3 von 3

Thema: PHP-Kontaktformular und Grafik-Check

  1. #1
    theprodigy
    Gast Avatar von theprodigy

    PHP-Kontaktformular und Grafik-Check

    Hallo liebe Forengemeinde,

    ich benutze unten aufgeführtes Skript für ein PHP-Kontaktformular.
    Es funktioniert auch ganz gut und mit dem E-Mail-Check klappt auch
    alles.

    Das Problem ist, dass dass die ganzen Bots mittlerweile ja schon etwas
    schlauer sind und die ganzen Formulare korrekt ausfüllen.

    Daher wollte ich einfach eine Grafik mit einer Zahl oder einem Wort neben
    das Formular packen und eine Abfrage eben dieses Wortes einrichten, so
    dass der ganze Mist nicht mehr durchkommt.

    Da ich mich kaum mit PHP auskenne, benötige ich eure Hilfe und frage euch,
    wie das Skript stattdessen aussehen müsste? Muss die Abfrage in einer
    anderen Datei stattfinden, damit der Bot das Wort nicht schon in der PHP-
    Datei auslesen kann oder wie löst man das Problem?

    Vielen Dank euch im Voraus.

    kontakt.php:
    Code:
    <?
     require("$DOCUMENT_ROOT/menulinks.inc.php"); 
     $status = $menu["kontakt"]["id"];
     require("$DOCUMENT_ROOT/header.inc.php");
    ?>
     
    <div id="main">
    <?php
    function generate_formular() {
    ?>
    <div id="contentleft">
     <p class="centered">
      Bei ernsthaftem Interesse an einer Zusammenarbeit freue ich mich über eine Anfrage mit vollständigen Angaben.
     </p> 
    <form action="kontakt.php" method="post">
     <p>
      <label for="anrede">Anrede</label>
        <select name=anrede size="1">
          <option selected>Herr
          <option>Frau
          <option>Firma/Agentur
         </select>
      </p>
    
     <p>
      <label for="name">Name</label>
        <input type="text" name="name" size="40" maxlength="120" />
      </p>
     <p>
      <label for="telefon">Telefon</label>
        <input type="text" name="telefon" size="40" maxlength="80" />
      </p>
      
      <p>
       <label for="email">E-Mail-Adresse</label>
        <input type="text" name="email" size="40" maxlength="90" />
       </p>
    
      <!!   ------------------------------------------------------Angaben Referenzen des Fotografen      -----------------------------------------------------------------!!> 
      <p>
       <label for="website">Internetpräsenz</label>
        <input type="text" name="website" size="40" maxlength="90" />
       </p>
     <p>
      <label for="betreff2">Betreff</label>
      <input type="text" name="betreff2" size="40" maxlength="90" />
     </p>
     <p> <label for="nachricht">Nachricht</label>
      <textarea name="nachricht" cols="40" rows="8"></textarea>
     </p>
      <textarea class="gbcommentnv" name="comment1" cols="40" rows="5"></textarea> 
      <textarea class="gbcommentnv" name="comment2" cols="40" rows="5"></textarea> 
      <textarea class="gbcommentnv" name="comment3" cols="40" rows="5"></textarea> 
     <p>
      <input type="submit" name="mail" value="E-Mail verschicken" /> 
     </p>
    </form>
    <p class="centered">
     <br /><br />
     Bitte keine Anfragen bezüglich Escort-Service oder ähnlicher Dienstleistungen.
    </p>
    </div> <!-- contentleft -->
    <div id="contentright">
      <img id="right" src="images/kontakt.jpg" alt="Bild des Autors" />
    </div>
    <?
    }
    function generate_answer() {
    ?> 
     <p class="headline">
      Ihre Mail wurde zugestellt.<br />
      Herzlichen Dank für Ihr Interesse. 
     </p>
    <?
    }
    
    /* function *main* */
    if (!sent || strlen($name) < 2 || strlen($email) <2) {
       generate_formular();
    } else {
     $pruefung = array(
      'email' => '/^ [\w.!#%&\*\/=\?\^\`\{\|\}\~+-]{1,64}
        \@ [[:alnum:].-]{1,255} \. [a-z]{2,6} $/xi',
        'name' => '/^[[:print:]]{3,}$/',
      'betreff' => '/^[[:print:]]{3,}$/');
     //Eingabeprüfung
     $fehler = array();
     foreach($_POST as $parameter => $wert) {
      if(isset($pruefung[$parameter])) {
         if(!preg_match($pruefung[$parameter], $wert)) {
            $fehler[] = "Probleme mit Feld " . $parameter . ": " . $wert;
          }
      } else {
          unset($_POST[$parameter]);
      }
     }
       if(strlen($_POST['comment1']) == 0 and strlen($_POST['comment1']) == 0 and strlen($_POST['comment1']) == 0 and empty($fehler)){
        $betreff = "E-Mail über Kontaktformular";
        $message = "<html><body>
            <p align=\"left\">
            <b>Anrede: </b>    $anrede<br />
            <b>Name: </b>     $name<br />
            <b>Telefon: </b>     $telefon<br />
            <b>E-Mail: </b>    $email<br />
            <b>Internetpräsenz: </b>  <a href=\"$website\">$website</a><br /><br />
            <b>Betreff: </b>    $betreff2<br />
         <b>Nachricht: </b>   $nachricht<br />
            </p>
            </body></html>
            ";
            
     
      $header    = "From: $email\r\n";
      $header   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
      $header   .= "X-Mailer: PHP ". phpversion();
      
      mail ("bla@xsdfsdfdsfsd.org", $betreff, $message, $header);
     
        generate_answer();
     } else { // if commentfelder 0
        if(!empty($fehler)){
          ?><ul><?
          foreach($fehler as $row){
           echo"<li>".$row."</li>"; 
          }
          ?></ul><?
      }
     
        generate_formular(); 
     }
    }
    ?>
    </div> <!-- div main -->
    <?php 
     require("$DOCUMENT_ROOT/footer.inc.php");
    ?>

  2. #2
    Aufsteiger/in Avatar von terra-power

    Registriert seit
    14.4.04 - 15:44
    Beiträge
    435
    Thanks
    0
    Thanked 6 Times in 6 Posts

    AW: PHP-Kontaktformular und Grafik-Check

    Hallo,

    das was du suchst, nennt sich captcha (http://de.wikipedia.org/wiki/Captcha)

    Selbstverständlich hab ich nicht die zeit, dir diese funktionalität zu programmieren, aber ich kann dir zwei hinweise geben:

    1.) um eine Captcha funktionalität selber zu bauen, benötigst du PHP Grafikbibilothek PHP GD
    2.) wenn dies etwas zu kompliziert ist kannst du fertuge sachen nehmen, wie dieses simple beispiel: http://www.stoppt-den-spam.info/webm...hp-script.html
    stop:

    NOP
    JMP stop

  3. #3
    theprodigy
    Gast Avatar von theprodigy

    Lächeln AW: PHP-Kontaktformular und Grafik-Check

    Danke sehr. Mit dem Captcha habe ich
    es nun auch gelöst.

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Ja
  • Beiträge bearbeiten: Ja
  •