Ankündigung

Einklappen
Keine Ankündigung bisher.

php-Kontaktformular - Email und Betreff als Optional einstellen

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php-Kontaktformular - Email und Betreff als Optional einstellen

    Moooin, ich habe ein Problem mit meinem Kontaktformular. Ich möchte, dass der Betreff und die Email-Adresse als Optional eingestellt sind - hier sind sie aktuell noch Pflichtangaben. Ich habe irgendwas versucht, Teile des Codes rausgenommen, aber dann wird keine Mail an mich verschickt.

    Könnt ihr mir weiterhelfen??

    Code:
    <?php
    
    // *** Einstellungen ***
    $mail_to = 'lustig@mehl.de'; // Ihre Mailadresse (Empfängeradresse)
    
    // #############################################################################
    $from_name=GetParam('fromname');
    $from_mail=strtolower(GetParam('frommail'));
    $mail_subject=GetParam('mailsubject');
    $mail_text=GetParam('mailtext');
    $send=GetParam('s');
    
    $err_text='';
    if(trim($from_name)=='') $err_text.='Name:<br>';
    if(trim($from_mail)=='')
      $err_text.='Email:<br>';
    else
      if(!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/i',$from_mail))
        $err_text.='Bitte geben Sie eine gültige E-Mail-Adresse an.<br>';
    if(trim($mail_subject)=='') $err_text.='Bitte geben Sie einen Betreff ein.<br>';
    if(trim($mail_text)=='') $err_text.='Bitte geben Sie einen Nachrichtentext ein.<br>';
    
    $from_name=str_replace(chr(34),"''",$from_name);
    $mail_subject=str_replace(chr(34),"''",$mail_subject);
    $from_name=stripslashes($from_name);
    $from_mail=stripslashes($from_mail);
    $mail_subject=stripslashes($mail_subject);
    $mail_text=stripslashes($mail_text);
    
    if (($send == '1') && ($err_text != '')) {
      echo '<p><big><b>Fehler:</b></big><br>';
      echo $err_text.'</p>';
    }
    
    if (($send != '1') || ($err_text != '')) {
    ?>
    
    <form action="<?=GetParam('PHP_SELF','S')?>" method="post">
    <table border=0 cellspacing=2 cellpadding=0 width=100%>
    <tr>
      <td nowrap align=right>Name:</td><td>&nbsp;</td>
    <td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?=$from_name?>"></td></tr>
    <tr>
      <td nowrap align=right>Email:</td><td></td>
    <td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?=$from_mail?>"></td></tr>
    <tr>
      <td nowrap align=right>Homepage:</td><td></td>
    <td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?=$mail_subject?>"></td></tr>
    <tr>
      <td nowrap align=right valign=top>Eintrag:<br></td><td></td>
    <td width=100%><textarea cols=40 rows=10 name="mailtext"><?=$mail_text?></textarea></td></tr>
    <tr><td></td><td></td><td>
    <input type="hidden" value="1" name="s">
    <input type="submit" value="Abschicken" name="submit">
    </td></tr>
    </table>
    </form>
    
    <?php
    } else {
      $header="From: $from_name <$from_mail>\n";
      $header.="Reply-To: $from_mail\n";
      $header.="X-Mailer: PHP-ContactForm-Script\n";
      $header.="Content-Type: text/plain";
      $mail_date=gmdate('D, d M Y H:i:s').' +0000';
      $send=0;
      if(@mail($mail_to,$mail_subject,$mail_text,$header))
      {
        echo "<p><b>Die Nachricht wurde erfolgreich abgesendet.</b></p>";
        echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
      }else{
        echo "<p><b>Beim Versenden der Nachricht ist ein Fehler aufgetreten!</b></p>";
        echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
        echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
      }
    }
    
    function GetParam($ParamName, $Method = 'P', $DefaultValue = '') {
      if ($Method == 'P') {
        if (isset($_POST[$ParamName])) return $_POST[$ParamName]; else return $DefaultValue;
      } else if ($Method == 'G') {
        if (isset($_GET[$ParamName])) return $_GET[$ParamName]; else return $DefaultValue;
      } else if ($Method == 'S') {
        if (isset($_SERVER[$ParamName])) return $_SERVER[$ParamName]; else return $DefaultValue;
      }
    }
    ?>
    Gruß Dennis


  • #2
    Dann nimm die Überprüfung raus. Jedoch solltest Du die Daten aber validieren ...

    Z.B. diesen Teil hier:
    PHP-Code:
    if(trim($mail_subject)==''$err_text.='Bitte geben Sie einen Betreff ein.<br>'
    Wenn ich es richtig gelesen habe wird auf $err_text überprüft.

    Ich bin zwar nicht der PHP Gott und mache auch viele Anfängerfehler aber Du solltest den Code generell mal Überholen und die Formatierungen hier im Forum mal beachten. Der Code ist ja der Horror.

    Kommentar


    • #3
      Zitat von Matt0815 Beitrag anzeigen
      Dann nimm die Überprüfung raus. Jedoch solltest Du die Daten aber validieren ...

      Z.B. diesen Teil hier:
      PHP-Code:
      if(trim($mail_subject)==''$err_text.='Bitte geben Sie einen Betreff ein.<br>'
      Wenn ich es richtig gelesen habe wird auf $err_text überprüft.

      Ich bin zwar nicht der PHP Gott und mache auch viele Anfängerfehler aber Du solltest den Code generell mal Überholen und die Formatierungen hier im Forum mal beachten. Der Code ist ja der Horror.
      Ich stehe mit meinen Kenntnissen noch komplett am Anfang. Ich habe den Code als Free-Code im Internet gefunden - er ist daher nicht von mir.

      Ich habe schon diverse Sachen ausprobiert, nur dann wird mir keine Mail mehr geschickt...

      Kommentar


      • #4
        naja diverse scripst aus dem internet ohne die funktionsweise zu verstehen ist immer eine sehr gefährliche sache. learning by doing. lies dir die funktionen durch und verstehe sie.

        z.B.:
        PHP: mail - Manual

        lg

        Kommentar


        • #5
          Zitat von laemmen Beitrag anzeigen
          Ich habe irgendwas versucht, Teile des Codes rausgenommen, aber dann wird keine Mail an mich verschickt.
          "Irgendwas versucht"?

          Was soll das denn heißen?
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Bitte beachten: Forenrichtlinien

            [MOD: Thread geschlossen]
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar

            Lädt...
            X