Falsche Pfade beim Inkludieren - wie kann man das ändern?

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

  • #16
    Original geschrieben von brmartin
    ...Idee als zusätzlicher Schutz....
    dann könnte dich dieser hier sicher auch interessieren... is ne gute basis - wie ich finde:

    http://www.drweb.de/webmaster/sicher...re-teil4.shtml
    **********
    arkos
    **********

    Kommentar


    • #17
      Und schon wieder Dank an dich arkos,
      Aber langsam wirds etwas viel

      Leider ist meine Signatur was PHP, CSS und ähnliches betrifft keine Untertreibung.

      Aber wie gesagt, ich bin lernwillig.

      Zuerst kommt das Formular wie ich es will, dann der Schutz.

      Wobei dein letzter Link http://www.drweb.de/webmaster/siche...are-teil4.shtml
      da auch wieder gut ist, denn in dem Bausatz ist auch was zur Formularüberprüfung, das zieh ich mir dann heute abend rein, obwohl ich eigentlich zuerst unterscheidliche Empfänger realisieren wollte

      Naja, was solls.

      Gruß

      Martin
      Greets

      Martin

      absolut beginner
      aber lernwillig

      Kommentar


      • #18
        mach dir kein stress

        unterschiedliche empfänger? meinst du, dass die mail gleich an mehrere rausgehen soll?

        das zu erlernen und erlesen kannst du eher nebenbei mit nem kühlen blonden erledigen. das is keine atomphysik
        **********
        arkos
        **********

        Kommentar


        • #19
          Das hat auch mit register_globals nichts zu tun, die stehen ja auf off, wie es sich gehört. Wenn ich deinen Code (fehlerbereinigt und ein wenig meinem Stil angepasst) ausfühere, erhalte ich problemlos die Mail (ohne global!). Ich bin sowieso der Meinung global sollte nur in Ausnahmefällen benutzt werden, es gibt praktisch immer andere Wege. Aber in dinem Fall sind sie, wie gesagt, gar nicht nötig. Hier der Code:
          PHP-Code:
          <?php
          //  send2.php
          foreach($_POST as $key => $val){
              $
          $key htmlentities($val);
          }

          if (!empty(
          $sent) and !empty($eMail))

             
          printf("<font color='#4b9eff' size='+1'><b>Gesendet am:</b><br />\n%s<br />%s<br />Von:<b>%s %s</b><br />
                     Absender: <b>%s</b><br />\n<b>Betreff: %s</b><br />\n<b>Ihre Nachricht: </b><br />%s</font><br />\n"
          ,    
                    
          date('D, d.m.Y'),
                    
          date('H:i:s'),
                    
          $vorname,
                    
          $nachname,
                    
          $eMail,
                    
          $betreff,
                    
          $nachricht);
             
             include (
          "send.inc.php");

          else {
             echo 
          "Eingabe fehlt";

          ?>

          //=====================================================

          <?php
          // send.inc.php
          if(stripos($eMail'bcc:')){    // Minimale Kontrolle
              
          die("Ung&uuml;ltige Absenderadresse, Mail nicht verschickt<br />"); 
          }
          $absender "absender@meineDomain.tld" ;
          $empfaenger "iempfaenger@meineDomain.tld" ;
          $nachricht2 sprintf("<b>Gesendet am: </b>%s<br /><b>um: </b>%s<br /><b>von: </b>%s %s<br />
                                   <b>E-Mailadresse: </b>%s<br /><b>Betreff: </b>%s<br /><b>Nachricht: </b><br>%s"
          ,
                              
          date('D, d.m.Y'),
                              
          date('H:i:s'),
                              
          $vorname,
                              
          $nachname,
                              
          $eMail,
                              
          $betreff,
                              
          $nachricht);

          $headers  'From:' $absender "\r\n" ;
          $headers .= 'Reply-To:' $eMail "\r\n" 
          $headers .= 'X-Mailer: PHP/' phpversion() . "\r\n" 
          $headers .= 'X-Sender-IP: ' $_SERVER['REMOTE_ADDR'] . "\r\n" 
          $headers .= "Content-type: text/html\r\n" ;

          //echo "$empfaenger<br /> $betreff<br /> $nachricht2<br />  $headers<br />";
          mail($empfaenger$betreff$nachricht2,  $headers) ;
          ?>
          Gruss
          H2O

          Kommentar


          • #20
            Original geschrieben von arkos
            mach dir kein stress
            Nee, Stress mach ich mir mal keinen, nur bin ich manchmal etwas schwer von Begriff.

            Original geschrieben von arkos
            unterschiedliche empfänger? meinst du, dass die mail gleich an mehrere rausgehen soll?
            Genau das meinte ich nicht.
            Liese sich ja relativ einfach mit einem $Empfaenger = array
            und einer foreach-Schleife lösen.

            Nein es soll nur eine Mail versandt werden, es gibt aber mehrere mögliche Empfänger, davon kann man dann einen wählen.

            bekomm ich auch noch hin, muß aber erstmal gemacht und getestet werden


            Original geschrieben von H2O
            Das hat auch mit register_globals nichts zu tun, die stehen ja auf off, wie es sich gehört. Wenn ich deinen Code (fehlerbereinigt und ein wenig meinem Stil angepasst) ausfühere, erhalte ich problemlos die Mail (ohne global!).
            Gut ein Fehler im Script, danke.
            Aber was war genau der Fehler?
            Daß ich aus den POST-Variablen lokale Variablen gemacht habe (isset....)?
            Tja, das war dann wohl ganz schöner Mist und ich hab es in deinem erten Post nichtmal verstanden, sorry!

            P.S.
            Danke fürs bereinigen.
            Schau mir heute abend das ganze mal in Ruhe durch, jetzt muß ich arbeiten gehen.

            Gruß

            Martin
            Greets

            Martin

            absolut beginner
            aber lernwillig

            Kommentar


            • #21
              Original geschrieben von brmartin
              Gut ein Fehler im Script, danke.
              Aber was war genau der Fehler?
              Daß ich aus den POST-Variablen lokale Variablen gemacht habe (isset....)?
              Nein, das mache ich ja auch. Aber arbeite dann mit den lokalen Variablen weiter. Und dass mit dem "fehlerbereinigt" war auch nicht so gemeint. Die einzigen wirkliche Fehler waren, dass $headers bei der ersten ".="-Zuweisung und $REMOTE_ADDR nicht definiert sind. Wenn du irgwendwo am Anfang des Scripts
              PHP-Code:
              error_reporting(E_ALL
              einsetzst, kriegst du dfür auch eine Fehlermeldung.
              Der Rest waren unkorrekte HTML-Tags, (<p> ist ein Block-Element und muss geschlossen werden), die aber von den meisten Browsern trotzdem richtig interpretiert werden.
              EDIT:
              Ich hab es soeben noch mit deinem Orginalcode, aber ohne global probiert, und es funktioniert auch.
              Gruss
              H2O

              Kommentar


              • #22
                Abend,

                @H2O

                Ohoh, irgendwie gieng da einiges schief.
                Auf den HTML-Code hab ich bei den ersten Versuchen gar nicht weiter geachtet.
                Wenn du meine letzte Version des Formulars ansiehst, da stimmen dann die Tags, aber die HTML-Tags in den Scripts hab ich einfach vergessen.

                Was mir gerade noch auffällt:

                Du beendes alle Header mit "/r/n"

                Ich hab folgendes gelesen:
                Edit: korrekte Schreibweise, ü eingepflegt

                Anmerkung: Sie müssen die Header mit \r\n trennen, auch wenn einige Unix-MTAs automatisch \n durch \r\n ersetzen (was zu doppeltem \r führt, wenn \r\n verwendet wird).
                Daher nur das "/n" bei mir.

                Was ist hier jetzt korrekt?
                Oder muss hier nach der Methode "testen was passiert" vorgegenagen werden?

                P.S.
                Ich hab mein altes Script auch nochmal selbst durchlaufen lassen.
                Das Ergebnis:
                Es klappt
                Was war da vorgestern blos los?
                Zuletzt geändert von brmartin; 02.11.2007, 11:31.
                Greets

                Martin

                absolut beginner
                aber lernwillig

                Kommentar


                • #23
                  Original geschrieben von brmartin
                  Sie müssen die Header mit \r\n trennen, auch wenn....
                  klingt irgendwie eindeutig, oder??

                  n morgen zusammen.

                  zu deinen mehreren empfängern... wenns ein und die selbe mail (mailinhalt) sein soll, wirst du ja hoffentlich nicht pro empfänger eine mail absetzen wollen, oder???
                  **********
                  arkos
                  **********

                  Kommentar


                  • #24
                    Original geschrieben von arkos
                    klingt irgendwie eindeutig, oder??
                    Eigentlich schon , ohoh, man merkt daß ich krank bin.
                    Original geschrieben von arkos
                    zu deinen mehreren empfängern... wenns ein und die selbe mail (mailinhalt) sein soll, wirst du ja hoffentlich nicht pro empfänger eine mail absetzen wollen, oder???
                    Quatsch, nicht foreach, währe natürlich wie du gesagt hast, pro Empfänger eine Mail, aber ich will ja eh nicht die selbe Mail an mehrere Empfänger.

                    Ins Formular komm eine Auswahlliste, etwa so:
                    <p><select name="Liste" size="3">
                    <option value="1">Empfänger1</option>
                    <option selected="selected" value="2">Empfänger2</option>
                    <option value="3">Empfänger3</option>
                    </select></p>
                    Empfänger 2 ist standard (daher selected)

                    Das gibt mir eine $Liste mit einem Wert 1 - 3

                    Das wird dann in
                    PHP-Code:
                    switch ($Liste)
                    {
                       case : 
                    1
                           $empfaenger 
                    "Empfänger1@meineDomain.tld";
                           break;

                       case : 
                    2
                           $empfaenger 
                    "Empfänger2@meineDomain.tld";
                           break;

                       case : 
                    3
                          $empfaenger 
                    "Empfänger3@meineDomain.tld";
                          break;

                       default:
                          echo 
                    "Fehler! kein Empfänger";

                    Umgesetzt, so zumindest der Gedanke.
                    default: müsste ich mir ja sparen können, da case: 2 ja im Formular als standard gesettzt ist, oder ist die default zeile zwingend? bin mir da nicht so sicher und schaden kann sie ja eigentlich nicht.

                    Aber zuerst muß ich mir H2O's Überarbeitung zu Gemüte führen,
                    gestern abend/nacht hat es nur eine Fehlerausgabe gegeben.

                    Gruß

                    Martin
                    Greets

                    Martin

                    absolut beginner
                    aber lernwillig

                    Kommentar


                    • #25
                      PHP-Code:
                      $empfaenger = array("du@domain.tld","er@domain.tld","sie@domain.tld");
                      $Liste $POST['Liste'];
                      if (
                      $empfanger[$Liste])
                      {
                        
                      mail($empfanger[$LISTE], $betreff$nachricht2,  $headers) ;


                      btw heißt es richtig:
                      Code:
                      <opiton selected>blabla</option>
                      nicht selected="selected"...

                      edit: und liste muss dann bei 0 anfangen
                      **********
                      arkos
                      **********

                      Kommentar


                      • #26
                        btw heißt es richtig:
                        Code:
                        <opiton selected>blabla</option>
                        nicht selected="selected"...
                        Falsch! In XHTML gibt es keine Attribute ohne Wert, also hat brmartin das schon richtig gemacht!

                        Kommentar


                        • #27
                          is wahr? sorry, is an mir vorbeigegangen....

                          heißt demnach auch, das "checked" und konsorten so nicht mehr stehen dürfen wa... hm, ich glaub da muss ich eben ma was überarbeiten ...
                          **********
                          arkos
                          **********

                          Kommentar


                          • #28
                            heißt demnach auch, das "checked" und konsorten so nicht mehr stehen dürfen wa... hm, ich glaub da muss ich eben ma was überarbeiten ...
                            Richtig. Genau wie du Tags ohne Inhalt mit /> schließen musst, muss jedes Attribut einen Wert besitzen

                            Kommentar


                            • #29
                              ... mit /> schließen musst...
                              OffTopic:

                              na komm, n bisschen weiß ich schon

                              **********
                              arkos
                              **********

                              Kommentar


                              • #30
                                OffTopic:

                                na komm, n bisschen weiß ich schon

                                OffTopic:
                                Wenn du das sagst

                                Kommentar

                                Lädt...
                                X