mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 15:29 Benutzername: Passwort: Auto-Login

Thema: Kontaktformular in PHP richtig? vom 29.05.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Kontaktformular in PHP richtig?
Seite: Zurück  1, 2
Autor Nachricht
fishtown

Dabei seit: 20.06.2009
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 20.06.2009 14:45
Titel

Antworten mit Zitat Zum Seitenanfang

Smooth-Graphics hat geschrieben:
fishtown hat geschrieben:
Ja, ne, is klar. Danke erstmal, aber wo kommt was hin?
Sorry, aber scheint so als ob ich in meinem Alter echt Probleme mit dem Verstehen habe.


Code:
<?php
$empfaenger = 'niemand@example.com';
$betreff = 'Der Betreff';
$nachricht = 'Hallo';
$header = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($empfaenger, $betreff, $nachricht, $header);
?>


Schau dir mal die $header Variable an. Allerdings kann das ganze auch vom Hoster bedingt sein, manche haben da ziemlich "blöde" Einstellungen, so dass immer diese E-Mail angezeigt wird.


Und genau das finde ich bei dem Script ja nicht:
Code:
<?
session_start();
$captchaValidierungOk = false;

if (ereg('^[a-z]{4}$', $_POST['captcha_code']) &&       
   !empty($_SESSION['captcha_code']) &&               
     ($_SESSION['captcha_code']==$_POST['captcha_code'])) {

  $captchaValidierungOk = true;
}

$code = '';
for ($i = 0; $i < 4; $i++) {
  $code .= chr(rand(97, 122));
}
$_SESSION['captcha_code'] = $code;
?>
<!-- .......................................................................... -->
<!--                              Anfang Formular                               -->
<!--                              ...............                               -->
<!--                                                                            -->
<!--    Autor:               Michael Peuss                                      -->
<!--    WebSeite:            http://www.formular-generator.de                   -->
<!--    Nutzungsbedingungen: Dieses Formular darf auf privaten und gewerblichen -->
<!--                         Webseiten eingebunden werden. Sie sind dadurch zu  -->
<!--                         keiner Gegenleistung verpflichtet. Wenn Sie mit    -->
<!--                         dem Formular zufrieden sind, wuerde ich mich ueber -->
<!--                         einen Link von Ihrer Seite sehr freuen.            -->
<!--                         Danke!                                             -->
<!-- .......................................................................... -->
<script language=JavaScript>
<!--
 function isValid() {

   var msg = "";
   
   if (kontaktFormular.eMail.value.indexOf("@") < 1 ||
       kontaktFormular.eMail.value.indexOf(".") < 1) {
     msg += "- Die E-Mail-Adresse ist syntaktisch nicht korrekt.\n";
   }
   
   if(kontaktFormular.vorName.value == "") {
     msg += "- Leeres Feld: Vorname:\n";
   }

   if(kontaktFormular.nachName.value == "") {
     msg += "- Leeres Feld: Nachname:\n";
   }

   if(kontaktFormular.betreff1.value == "") {
     msg += "- Leeres Feld: Betreff:\n";
   }

   if(kontaktFormular.nachricht.value == "") {
     msg += "- Leeres Feld: Nachricht:\n";
   }
   
   if(msg == "") {
     return true;   
   }
   alert(msg);
   return false;
 }
-->
</script>
<?php
 
  $formularAnzeigen = false;
  if (!empty($_POST["senden"]) && (
      empty($_POST["vorName"]) ||
      empty($_POST["nachName"]) ||
      empty($_POST["eMail"]) ||
      empty($_POST["betreff1"]) ||
      !$captchaValidierungOk ||
      empty($_POST["nachricht"]))) {
    $formularAnzeigen = true;
    echo '<span style="color: #FF0000; font-size: x-large;">Bitte alle Pflichtfelder ausfuellen.</span>';
  } else if (!empty($_POST["senden"]) &&
             !isEmail($_POST["eMail"])) {
    $formularAnzeigen = true; 
    echo '<span style="color: #FF0000; font-size: x-large;">Die E-Mail-Adresse ist nicht korrekt.</span>';
  } else if (empty($_POST["senden"])) {
    $formularAnzeigen = true; 
  }
  if ($formularAnzeigen) {
?>
<body background="http://www.harms-esens.de/images/image001.jpg">

<form name="kontaktFormular" method="post" action="<?=$_SERVER[PHP_SELF]; ?>" onSubmit="return isValid()">
  <table width="800" border="0">
<!--anfang vorName--> 
    <tr>
      <td><div align="center">*</div></td>
      <td><strong>
        Vorname:
      </strong></td>
      <td>
      <input name="vorName" type="text" value="<?=$_POST['vorName']; ?>" /></td>

      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende vorName-->
<!--anfang nachName-->   
    <tr>
      <td><div align="center">*</div></td>
      <td><strong>
        Nachname:
      </strong></td>
      <td><input name="nachName" type="text" value="<?=$_POST['nachName']; ?>" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende nachName-->
<!--anfang eMail-->       
    <tr>
      <td><div align="center">*</div></td>
      <td><strong>
        E-Mail:
      </strong></td>
      <td><input name="eMail" type="text" id="eMail" value="<?=$_POST['eMail']; ?>" /></td>
      <td>
        zB: name@gmx.net, ihrName@web.de
      </td>     
    </tr>
<!--ende eMail-->
<!--anfang betreff1-->
    <tr>
      <td><div align="center">*</div></td>
      <td><strong>
        Betreff:
      </strong></td>
      <td><input name="betreff1" type="text" id="betreff1" value="<?=$_POST['betreff1']; ?>" size="50" /></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende betreff1-->
<!--anfang nachricht-->     
    <tr>
      <td><div align="center">*</div></td>
      <td><strong>
        Nachricht:
      </strong></td>
      <td><textarea name="nachricht" cols="40" rows="10"><?=$_POST['nachricht']; ?></textarea></td>
      <td>
        &nbsp;
      </td>         
    </tr>
<!--ende nachricht-->
<!--anfang kopie-->       
    <tr>
      <td>&nbsp;</td>
      <td><strong>
        Kopie der Nachricht:
      </strong></td>
      <td><input name="kopie" type="checkbox" value="checked" <?=$_POST['kopie']; ?>></td>
      <td>
        Möchten Sie eine Kopie der Nachricht per E-Mail erhalten?
      </td>         
    </tr>
<!--ende kopie-->
<!--anfang Captcha -->       
    <tr>
      <td><div align="center">*</div></td>
      <td>
<?
  if(!@include "http://www.formular-generator.de/captcha/formular.php?captcha_code=$code&v=ptk") {
?>
      <p>Code: <?=$code?></p>
<?
  }
?>
            </td>
      <td><input type="text" name="captcha_code" size="4" /></td>
      <td>Übertragen Sie bitte den Code</td>         
    </tr>
<!--ende Captcha -->   
    <tr>
      <td colspan="3">
        <div align="center">
          <input name="senden" type="submit" value="Senden" />
        </div>
      </td>         
      <td>&nbsp;</td>         
    </tr>
  </table>
</form>

<?php
  echo'Dieses Formular wurde mit dem <a href="http://www.formular-generator.de" target="_blank">Formular Generator</a> erstellt.<br />';
  } else {
    $eMail = '
       
Vorname: '.$_POST['vorName'].'
Nachname: '.$_POST['nachName'].'

E-Mail: '.$_POST['eMail'].'

Betreff: '.$_POST['betreff1'].'
Nachricht:
'.$_POST['nachricht'].'

Kopie der Nachricht:'.$_POST['kopie'].'
       

'.$_POST['captcha'].'';
   
    if (@mail("harms.esens@freenet.de",
         "Neue Nachricht vom Kontaktformular",
         $eMail)) {
      echo "Ihre Nachricht wurde an mich verschickt, vielen Dank!<br />";
    } else {
      echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
    }
    if ($_POST['kopie']) {
      if (@mail($_POST['eMail'],
           "Hier die Kopie Ihrer Nachricht an mich",
           $eMail)) {
        echo "Sie haben eine Kopie der Nachricht zugeschickt bekommen.<br />";
      }
    }
  }
  echo' Klicken sie  <a href="http://www.harms-esens.de/seite3.html">hier</a> um zur Hauptseite zurück zugehen.';
  function isEmail($email) {
    $nonascii      = "\x80-\xff";
    $nqtext        = "[^\\$nonascii\015\012\"]";
    $qchar         = "\\[^$nonascii]";
    $protocol      = "(?:mailto:)";
    $normuser      = "[a-zA-Z0-9][a-zA-Z0-9_.-]*";
    $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
    $user_part     = "(?:$normuser|$quotedstring)";
    $dom_mainpart  = "[a-zA-Z0-9][a-zA-Z0-9._-]*\.";
    $dom_subpart   = "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*";
    $dom_tldpart   = "[a-zA-Z]{2,5}";
    $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";
    $regex         = "$protocol?$user_part\@$domain_part";
    if (preg_match("/^$regex$/",$email)) {
      return true;
    }
    return false;
  }
?><!-- ............................................................... --><!--                      Ende KontaktFormular                       --><!-- ............................................................... -->
  View user's profile Private Nachricht senden
willshedo

Dabei seit: 21.12.2005
Ort: Waldshut
Alter: 51
Geschlecht: -
Verfasst Sa 20.06.2009 22:27
Titel

Antworten mit Zitat Zum Seitenanfang

Hi,

weils in der Form nicht enthalten ist, da wo die Email zusammengesetzt wird (unten bei "function isEmail($email) {...")
(Fehlt da ein Teil vom Code? Wo wird die Mail verschickt?)

Schau dir mal dieses Beispiel an, hier hat jemand ebendiesen Formmailer-Code richtig (mit header-Variable *zwinker* ) umgeschrieben.

Grüßle,
  View user's profile Private Nachricht senden
Anzeige
Anzeige
 
Ähnliche Themen Kontaktformular
kontaktformular
Kontaktformular
PHP Kontaktformular
Kontaktformular
Kontaktformular
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.