Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] leere Formularfelder in Email nicht anzeigen

Einklappen

Neue Werbung 2019

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

  • #46
    Was ist an dem Affenformular besser als an dem? Ich meine meine Pflichtfelder werden ja auch überprüft... Und erst wenn die ordentlich ausgefüllt sind geht es...

    Mehr helfen würde mir, wie man den Script von Chriz in mein Script einbindet...

    Wie gesagt, kann ich nicht im Prinzip die Header Sachen rausnehmen, das von Chriz reinschreiben und das dann mit bei mail () rein? Wie schreib ich das denn nun? mehr möchte ich doch garnicht wissen....

    Kommentar


    • #47
      Laß uns Schritt für Schritt vorgehen.

      Dein Form ist für den Anwender demotivierend, weil er bei einer falschen Angabe (z.B. bei einem Schreibfehler in der Emailadresse) den ganzen Schrums noch einmal ausfüllen darf. Sowas nervt einfach. Es ist - wenn man die Scripte trennt - auch kein großer Mehraufwand, das einzubauen.

      Du hast doch oben auch gefragt, ob es besser wäre, die Scripte zu trennen. Ja wäre es. Schon der Übersichtlichkeit halber.
      Dann wäre es sinnvoll (wie ich schon mal anmerkte) Pflichtfelder zu definieren (die auch Chriz letzter Code benötigt). Bei der Anwendung, die Du gepostet hast, kann ich mir nicht vorstellen, dass bestimmte Daten (wie "vorschaeden" oder "jaehrlfahrlei[s]tung") nicht generelle Voraussetzung für das Versenden der Mail sind.

      Es ist viel komplizierter, Chriz Lösung da jetzt bei Dir reinzufrickeln als das Ganze nochmal ordentlich von Anfang an aufzubauen. Bspw. der HTML Teil kann ja komplett wiederverwendet werden. Was hältst Du davon?
      [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


      • #48
        Aaalso wo fange ich am besten an...

        Ich glaube dein grundlegendes Problem besteht darin das du den eigentlichen E-Mail-Header und den richtigen Inhalt nicht sauber voneinander trennst und somit alles total unübersichtlich wird. Das wurde übrigens bereits angesprochen und auch gesagt das das was du da tust eine Sicherheitslücke auftut. Hier mal ein ganz einfaches Beispiel was eine Mail versendet:

        PHP-Code:
        // Informationen zu der Mail (Kopfdaten = Header)
        $empfaenger 'niemand@example.com';
        $betreff 'Der Betreff';

        $header 'From: cycap@php.de' "\r\n" .
            
        'X-Mailer: PHP/' phpversion();

        // Die eigentliche Nachticht
        $nachricht "Hallo Pixelprinzessin,\n\n";
        $nachricht .= "hier in der Variable 'nachricht'  kannst du alles mögliche reinschreiben und mit deinen Variablen wild umher basteln.\n";
        $nachricht .= 'Gruß\nCyCap';
        // versenden
        mail($empfaenger$betreff$nachricht$header);
        ?> 

        Kommentar


        • #49
          Also wenn was fehlt, der Fehlertext kommt und man zurückgeht, steht bei mir alles noch drin... Die Scripte würde ich per include einbinden... das ist doch ok, oder? Ich weiß nicht was du immer mit den Pflichtfeldern hast, die zu definieren ist ja für mich kein Problem, das mach ich dann schon noch Und zb Vorschäden müssen ja nicht unbedingt sein...

          Mein einziges Problem ist, wie ich nun den zweiten Code von Chriz einbinde, oder besser gesagt, wie ich es einbinde, dass es dann verschickt wird.. Ansonsten geht es ja, und so wie die Pflichtfelder jetzt definiert sind verstehe ich besser als mit dem zusätzlichen array von Chriz.

          Ich muss ja auch jetzt nicht hier das übelste Formular haben. Es reicht wenn es funktioniert, spamgeschützt ist (dazu habe ich ja das unsichtbare Feld) und nur die Felder ankommen die ausgefüllt sind...

          Es ist zwar nett, dass du versuchen willst, mir das alles so Nahe zu bringen, aber ich verstehe es trotzdem besser wenn ich was davon vor mir habe und dann ausprobieren kann wie ich es machen muss. Mein Problem liegt darin, dass ich nicht weiß, wie ich manche Sachen auf meinen Script umschreibe. zb, dass die Ausgabe mir nicht angezeigt wird sondern in der E-Mail erscheint.

          Hmmm.....

          Kommentar


          • #50
            Zitat von cycap Beitrag anzeigen
            Aaalso wo fange ich am besten an...

            Ich glaube dein grundlegendes Problem besteht darin das du den eigentlichen E-Mail-Header und den richtigen Inhalt nicht sauber voneinander trennst und somit alles total unübersichtlich wird. Das wurde übrigens bereits angesprochen und auch gesagt das das was du da tust eine Sicherheitslücke auftut. Hier mal ein ganz einfaches Beispiel was eine Mail versendet:

            PHP-Code:
            // Informationen zu der Mail (Kopfdaten = Header)
            $empfaenger 'niemand@example.com';
            $betreff 'Der Betreff';

            $header 'From: cycap@php.de' "\r\n" .
                
            'X-Mailer: PHP/' phpversion();

            // Die eigentliche Nachticht
            $nachricht "Hallo Pixelprinzessin,\n\n";
            $nachricht .= "hier in der Variable 'nachricht'  kannst du alles mögliche reinschreiben und mit deinen Variablen wild umher basteln.\n";
            $nachricht .= 'Gruß\nCyCap';
            // versenden
            mail($empfaenger$betreff$nachricht$header);
            ?> 
            Genau das ist doch schonmal was Das hilft mir jetz doch schon!!

            PHP-Code:
            printf("Formular-Nachricht: %s"implode("\n\n"$arrMessages)); 


            ich weiß halt nicht wie ich das schreiben muss dann...

            Sicherlich ja auch mit $nachricht .= ... aber wie??

            Kommentar


            • #51
              Damit hätten wir schon ein schönes Beispiel für den Scriptbestandteil, den ich oben mailscript genannt habe. Lediglich die Einbindung dynamischer Daten (alles was aus dem Form kommt) fehlt hier noch.

              Jetzt mal exemplarisch ein Affenform (nur Hauptteil):
              PHP-Code:
              <?= $errormessage ?>
              <form enctype="multipart/form-data" action="" method="post">
                <label>Name</label>
                  <input type="text" name="name" value="<?= $_POST['name'?>" tabindex="1" /><br>
                <label>Beruf</label>
                  <input type="text" name="beruf" value="<?= $_POST['beruf'?>" tabindex="2" /><br>
                <label>Telefon</label>
                  <input type="text" name="telefon" value="<?= $_POST['telefon'?>" tabindex="3" /><br>

                <input class="senden" type="submit" name="senden" value="senden" tabindex="62" />
              </form>
              [edit] Sorry, hab Dein vorletztes Posting überlesen. Ich hör dann mal lieber auf...
              [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


              • #52
                Man merkt echt das du Gestalterin bist, musst immer alles visualisieren

                Also hier mal ein allgemein gültiges Beispiel:

                PHP-Code:
                // Informationen zu der Mail (Kopfdaten = Header)
                $empfaenger 'niemand@example.com';
                $betreff 'Der Betreff';

                $header 'From: cycap@php.de' "\r\n" .
                    
                'X-Mailer: PHP/' phpversion();

                // Die eigentliche Nachticht
                $nachricht "Hallo Pixelprinzessin,\n\n";
                $nachricht .= "du hast an diese Seite folgende Infos gesendet:\n\n";

                foreach(
                $_POST as $key => $value)
                {
                  if(!empty(
                $value))
                  {
                    
                $nachricht '$'."_POST['$key'] enthält $value\n";
                  }
                }

                $nachricht .= '\nGruß\nCyCap';

                // versenden
                mail($empfaenger$betreff$nachricht$header);
                ?> 
                Wenn du das in einer PHP-Datei speicherst und diese dann in IRGENDEIN Formular als action="..." nimmst, dann verschickt er nur die Sachen in denen was drin steht per Mail.

                ACHTUNG: Bitte nur zum testen nutzen und nicht einfach in eine öffentliche Seite einbauen auch wenns verlockend ist.

                Ich hoffe das ist visuell genug für dich und du versuchst es zu verstehen und nicht nur einzubauen.

                Gruß
                Cy

                Kommentar


                • #53
                  Wenn du SOWAS am Anfang geschrieben hättest, hätten wir uns 6 Seiten sparen können, denn DAS verstehe ich ja.

                  Ich muss das halt sehen um das zu verstehen.

                  Ich habs jetzt mal in mein Script mit eingebaut, also so:

                  PHP-Code:
                  <?php

                  $empfaenger 
                  "hagenow@siriusmedia.de";
                  $betreff 'Mein Betreff';
                  $arr = array(
                  'Name' => $_POST['name'],
                  'Geschlecht' => $_POST['geschlecht'],
                  'Straße' => $_POST['strasse'],
                  'PLZ Ort' => $_POST['plzort'],
                  'Beruf' => $_POST['beruf'],
                  );

                  function 
                  checkEmail$email )
                              {
                                 
                  $nonascii      "\x80-\xff";    
                              
                  $nqtext        "[^\\\\$nonascii\015\012\"]";
                              
                  $qchar         "\\\\[^$nonascii]";
                              
                  $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";
                              
                  $pattern       "$user_part\@$domain_part";
                      
                              if (!
                  preg_match"/^$pattern$/"$email ))
                              {
                              return 
                  FALSE;
                              }
                              else
                              {
                              return 
                  TRUE;
                              }
                              }

                  if(
                  $_REQUEST['senden'])
                  {     
                      if (
                  $_POST['email_address'] !== '') {
                      exit(
                  '<h1>Es ist ein Fehler aufgetreten!</h1>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt weden darf.</h1>');
                      }
                    else {    
                      
                  $fehler = array();
                      if(empty(
                  $_REQUEST['name']))
                              {
                          
                  $fehler['name'] = "Bitte geben Sie Ihren Namen an!";
                              }
                      if(!
                  checkEmail($_REQUEST['email']))
                              {
                              
                  $fehler['email'] = "Bitte geben Sie eine gültige E-Mail Adresse an!";
                              }
                      if(
                  count($fehler)>0){
                              foreach (
                  $fehler as $msg){ 
                              echo 
                  "<p align=\"center\">$msg";
                              }
                              echo 
                  "<br /><br /><b><a href=\"javascript:history.back();\">zurück</a></b></p>";
                              }
                      else
                       {
                          
                  $header 'From: &email' "\r\n" 'X-Mailer: PHP/' phpversion();
                          
                          
                  $nachricht "Hallo Pixelprinzessin,\n\n";
                          
                  $nachricht .= "du hast an diese Seite folgende Infos gesendet:\n\n";

                          foreach(
                  $_POST as $key => $value)
                          {
                            if(!empty(
                  $value))
                            {
                          
                  $nachricht '$'."_POST['$key'] enthält $value\n";
                            }
                          }

                          
                  $nachricht .= '\nGruß\nCyCap';
                          
                  $nachricht .= '\nDatum/Zeit:';
                          
                  $nachricht .= 'date("d.m.Y H:i:s")';
                          
                          
                  mail($empfaenger$betreff$nachricht$header); 
                          echo
                  "<p align=\"center\">Vielen Dank!<br />Wir werden uns umgehend bei Ihnen melden!<br /><br /><b><a href=\"javascript:history.back();\">zurück</a></p></b>";
                     }
                  } }
                  ?>
                  ??

                  Kommentar


                  • #54
                    6 von 3 Seiten sparen?

                    Ja teste das Ding doch einfach...

                    Kommentar


                    • #55
                      bei mir sind es 6 Seiten
                      Ja ich hab jetz getestet und bekomme das raus

                      $_POST['Straße'] enthält Meine Straße
                      \nGruß\nCyCap\nDatum/Zeit:date("d.m.Y H:i:s")



                      Sieht irgendwie noch nich so schön aus...

                      foreach($arras $key => $value)

                      hier musste das $arr anstatt $_POST rein, oder? Weil davor hab ich garnichts empfangen..
                      Wie bekomme ich denn das jetz noch ein bisschen schöner?

                      LG Denise

                      Kommentar


                      • #56
                        Versuche es zu verstehen. Guck dir die Variablen und deren Inhalte an und schaue was rauskommt. Der Rest daziwschen ist Logik. Wenn du das verstanden hast, dann hat sich deine Frage erledigt.

                        Kommentar


                        • #57
                          Ups: Fehler von mir:

                          PHP-Code:
                          $nachricht '$'."_POST['$key'] enthält $value\n"
                          muss


                          PHP-Code:
                          $nachricht .= '$'."_POST['$key'] enthält $value\n"
                          heissen.

                          Kommentar


                          • #58
                            Im Prinzip könnte ich ja nur schreiben $key enthält $value, oder? hmmm oder? Aber wie bekomme ich die anderen schönen Sachen hin, dass halt ZB dasteht Straße: ?

                            Und warum wird das in der Nachricht so dargestellt mit dem \n, das is doch eigentlich der Umbruch? Umwandeln tuts das aber nicht... Und ich hatte ja eigentlich auch meinen Namen mit angegeben aber der kommt bei der Ausgabe auch nicht raus... achje.... So versteh ich das ja. Aber ich weiß nicht wie ich irgendwas anders schreiben muss...

                            Kommentar


                            • #59
                              Hallo Pixelprinzessin,

                              du hast an diese Seite folgende Infos gesendet:

                              $_POST['Name'] enthält Denise
                              $_POST['Straße'] enthält Musterstraße
                              $_POST['PLZ Ort'] enthält 08371 Glauchau \nGruß\nCyCap\nDatum/Zeit:date("d.m.Y H:i:s")



                              jetz steht es dort unten immernoch so unschön...

                              edit:
                              Hallo Pixelprinzessin,

                              du hast an diese Seite folgende Infos gesendet:

                              $Name: Denise
                              $Geschlecht: weiblich
                              $Straße: Hausweg
                              $Beruf: Mediengestalter
                              \nGruß\nCyCap\nDatum/Zeit:date("d.m.Y H:i:s")

                              Kommentar


                              • #60
                                Du musst es im Detail verstehen. und nicht nur oberflächlich. Deine Frage mit dem \n zum Beispiel:

                                Sieh dir den kleinen Unterschied an und du kommst selber drauf:

                                PHP-Code:
                                $nachricht "Hallo Pixelprinzessin,\n\n"
                                PHP-Code:
                                $nachricht .= '\nGruß\nCyCap'
                                Ich dachte du lernst am besten wenn du es siehst? Also das hier sieht man eindeutig und wenn du diese "Lernmethode" anwenden willst, dann RICHTIG!

                                Kommentar

                                Lädt...
                                X