Ankündigung

Einklappen
Keine Ankündigung bisher.

Kontaktformular für eigene Bedürfnisse umändern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kontaktformular für eigene Bedürfnisse umändern

    Hallo,

    Es geht um dieses Tutorial WebDesign - Tips und Tricks: universeller Formmailer
    bzw. das Script was dort zur Verfügung gestellt wird das sieht so aus:

    PHP-Code:
    <?php
    define 
    ('MAILTO'"mail@example.org"); // Empfänger hier eintragen
    define ('MAILFROM'"Kontaktformular"); // ggfls. Absender hier eintragen
    define ('CHARSET'"ISO-8859-15"); // Zeichenkodierung ggfls. anpassen
    $Pflichtfelder = array('Nachricht'); // ggfls. weitere Pflichtfelder angeben


    $AddHeader 'Content-Type: text/plain; charset='.CHARSET;
    if(
    MAILFROM$AddHeader .= chr(13).chr(10).'From: '.MAILFROM;

    if(
    $Formular_abgeschickt = !empty($_POST)) {
      
    $Formular_leer trueset_magic_quotes_runtime(0);
      
    $_POST array_map('Formular_Daten'$_POST);
    }
    function 
    Formular_Daten($val) {
      global 
    $Formular_leer;
      if(
    is_array($val)) return array_map('Formular_Daten'$val);
      if(
    get_magic_quotes_gpc()) $val stripslashes($val);
      if(
    $val trim($val)) $Formular_leer false;
      return 
    $val;
    }

    function 
    Formular_Pflichtfelder() {
      global 
    $Pflichtfelder;
      
    $Fehler '';
      foreach (
    $Pflichtfelder as $Feld) {
        
    $key str_replace(' ','_',$Feld);
        if(!(isset(
    $_POST[$key]) && trim($_POST[$key]))) {
          if(
    $Fehler$Fehler .= '<br />';
          
    $Fehler .= 'Pflichtfeld "' $Feld '" nicht ausgefüllt.';
        }
      }
      return 
    $Fehler;
    }

    function 
    Formular_neu($log='.htPOSTdata.txt') {
      if(
    file_exists($log) && is_readable($log)
       && 
    file_get_contents($log) == print_r($_POST,true))
      return 
    false;
      if(
    $handle=@fopen($log'w')) {
        
    fwrite($handleprint_r($_POST,true)); fclose($handle);
      }
      return 
    true;
    }

    function 
    Formular_Check() {
      global 
    $Formular_leer;
      if(
    $Formular_leer$Fehler 'Keine Daten eingetragen.';
      elseif(!
    $Fehler Formular_Pflichtfelder()) {
        if(!
    Formular_neu()) $Fehler 'Nachricht war bereits verschickt.';
      }
      return 
    $Fehler;
    }

    function 
    Formular_Eingabe($Feldname$def='') {
      if(!empty(
    $_POST[$Feldname])) echo htmlspecialchars($_POST[$Feldname]);
      else echo 
    $def;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
      <title>Kontaktformular</title>
      <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET?>" />
    </head>
    <body>
    <h1>Kontakt</h1>

    <?php
    if($Formular_abgeschickt) {
      if(
    $Formular_Fehler Formular_Check())
        echo 
    '<p class="Meldung" id="Fehler">',$Formular_Fehler,'</p>';
      elseif(@
    mail(MAILTO"Nachricht"print_r($_POST,true), $AddHeader))
        echo 
    '<p class="Meldung" id="OK">Nachricht verschickt.</p>';
      else echo 
    '<p class="Meldung" id="Fehler">Server-Fehler !</p>';
    }
    ?>

    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post"
     enctype="multipart/form-data" accept-charset="<?php echo CHARSET?>">
      <fieldset><legend>Kontaktformular</legend>
        <p>
          <label for="Name">Ihr Name:</label>
          <input name="Name" id="Name" size="66"
           value="<?php Formular_Eingabe('Name'); ?>" />
        </p>
        <p>
          <label for="Nachricht">Nachricht:</label>
          <textarea name="Nachricht" id="Nachricht" rows="5" cols="50"><?php
           Formular_Eingabe
    ('Nachricht'); ?></textarea>
        </p>
        <p><input type="submit" value="abschicken" /></p>
      </fieldset>
    </form>

    </body>
    </html>

    Wie gesagt bin ich Laie, deswegen bin ich hier und habe dazu paar Fragen:
    1. Woher soll den bitte der Empfänger wissen von wem es abgeschickt wurde - es ist nirgends ein Feld wo der Absender seine Mail einzutragen hat.

    2. Würde ich gerne das Script um wie bereits geschrieben das Feld "e-mail" und noch das feld "betreff" erweitern - wie müsste ich das machen, kann mir jemand den veränderten Code bitte posten.

    ich gehe davon aus dass ich vorher im html teil einfach zwei felder ergänzen müsste z.B so:

    Code:
        <p>
          <label for="Name">E-mail</label>
          <input name="email" id="email" size="66"
           value="<?php Formular_Eingabe('email'); ?>" />
        </p>
    
        <p>
          <label for="betreff">Betreff</label>
          <input name="Betreff" id="Betreff" size="66"
           value="<?php Formular_Eingabe('betreff'); ?>" />
        </p>
    Soweit richtig?

    Und nun hab ich aber kein Plan wie ich das in dem php Teil machen müsste. kann mir bitte jemand helfen?

    Wie würde das fertige ergänzende Script aussehen ?

    Und dann würde ich gerne wissen ob das Kontaktformular ein Injection Schutz hat?

    thx für hilfe.
    mfg

  • #2
    kann mir jemand den veränderten Code bitte posten.
    Bitte beachten: Forenrichtlinien
    Sei sozial
    Wir haben kein Interesse daran, Deine Skripte zu reparieren, da das sehr viel Zeit und Mühe kosten kann. Akzeptiere also, dass sich unsere Motivation eventuell von Deiner unterscheidet und wir daher nur Hilfe zur Selbsthilfe geben. Stell Deine Frage bitte auch nur in einem Forum, Du stößt uns (und sicherlich auch der anderen Community) sonst vor den Kopf. Wir investieren ungern Zeit in die Lösung Deines Problems, während es vielleicht längst an anderer Stelle gelöst wurde.

    [MOD: verschoben]
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      hmm okay und mit was für einer antwort dürfte ich sonst rechnen?

      Kommentar


      • #4
        Zitat von Nabonid Beitrag anzeigen
        hmm okay und mit was für einer antwort dürfte ich sonst rechnen?
        Lerne Grundlagen.

        ODER

        Überweise [SUMME_IN_EURO] auf Konto [XXX] und du hast den Kram in 1h durch jemanden erledigt, der sich damit auskennt. Bitte stelle hier bei Bedarf eine entsprechende Anfrage.

        Zu:
        Zitat von Nabonid Beitrag anzeigen
        Code:
            <p>
              <label for="Name">E-mail</label>
              <input name="email" id="email" size="66"
               value="<?php Formular_Eingabe('email'); ?>" />
            </p>
        
            <p>
              <label for="betreff">Betreff</label>
              <input name="Betreff" id="Betreff" size="66"
               value="<?php Formular_Eingabe('betreff'); ?>" />
            </p>
        Soweit richtig?
        Ja. Das ist schon ein guter Anfang. Die for-Attribute der Label sollten allerdings den IDs der zugehörigen Input-Elemente entsprechen. Wenn du dir den von dir verlinkten Artikel noch mal durchliest und das Skript studierst, hast du die Antwort wahrscheinlich selbst ganz schnell gefunden.
        Je grösser der Dachschaden, desto schöner der Ausblick zum Himmel. - [WIKI]Karlheinz Deschner[/WIKI]

        Kommentar


        • #5
          wenigstens die fragen kann man ja beantworten, ist ja ein anfängerforum.

          mfg

          Kommentar


          • #6
            ist ja ein anfängerforum
            Nein, ist es nicht. Wir sind ein Entwicklerforum, mit einem Bereich für Einsteiger und Foren für fortgeschrittene Nutzer sowie einige sprachspezifische Subforen.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              und jetzt erklär du mir mal was der unterschied zwischen einem anfänger und einsteiger ist? ich glaub den unterschied kennst du nicht.

              Kommentar


              • #8
                Wir sind ein Entwicklerforum
                Da liegt die Betonung.

                "ist ja ein anfängerforum" wird immer als Synonym für "der Kunde ist König" und "der Anfänger hat den Idiotenbonus" verwendet. Nö. Wir wollen die Programmierung in der Sprache PHP fördern, nicht die Verbreitung von PHP-Produkten. Wenn DU etwas willst, musst Du etwas investieren, ob das nun Geld, eigene Zeit, Motivation oder wenigstens Interesse ist. Ich sehe nichts davon in Deinen Beiträgen.
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar

                Lädt...
                X