include() falsche Funktion bei .txt-Dateien???

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

  • include() falsche Funktion bei .txt-Dateien???

    Hallo, ich erzeuge eine .txt-Datei in die eine Variable mit Wert geschrieben wird.

    PHP-Code:
    if (!isset($_REQUEST[datenbank]) or empty($_REQUEST[datenbank]))
       {echo 
    "<p><br><br><br>Es wurde kein Spielstand ausgewählt. Bitte wählen Sie einen vorhandenen Spielstand aus.
                 <br><br><a href=auswertungindex.php>Spielstand auswählen</a>"
    ;}

    else {
    $formular '$datenbank = "'.$_REQUEST[datenbank].'";';
          
    $fp fopen("auswertung.txt""w-");
          
    $ok fwrite($fp$formular);
          if (!
    ok)
             {echo 
    "<p><br><br><br>Spielstand konnte nicht geöffnet werden. Bitte versuchen Sie es erneut.
                       <br><br><a href=auswertungindex.php>Spielstand auswählen</a>"
    ;}
          else {echo 
    "<p><br><br><br>Spielstand wurde ausgewählt.<br><br><a href=auswertung2.php>Auswertung starten</a>";}
          @
    fclose($fp);}

    unset (
    $_REQUEST[datenbank]); 
    In der .txt-Datei steht nun z.b: $datenbank = "wib091107";

    Wenn ich die Datei nun im nächsten Skript einbinde

    PHP-Code:
    include 'auswertung.txt';
    echo 
    $datenbank
    gibt er im Browser $datenbank = "wib091107"; aus.

    Warum macht er das. Wenn ich die Variable in einem anderen Skript definiere und per include() einbinde gehts doch auch so wie es gehen muß.

    MfG Simauki

  • #2
    Es liegt an dem, was du in die Datei schreibst bzw. was du nicht reinschreibst.
    Denn wenn du PHP sagst "include mal diese Datei", macht PHP sie auf und liest sie durch. Genau so, wie es mit jedem Script passiert, wenn man es im Browser aufruft.
    Und was passiert mit einem Script, wenn es keine PHP-Tags (<?php und ?>) enthält?

    Richtig, PHP sieht es als reinen Text an, es wird nicht interpretiert sondern einfach ausgegeben. Genau das passiert deiner auswertung.txt.
    Es liegt nicht an der Dateiendung, sondern wie gesagt an fehlenden PHP-Tags.

    Kommentar


    • #3
      gibt er im Browser $datenbank = "wib091107"; aus.
      Was sollte er denn sonst ausgeben?
      PHP-Code:
      '$datenbank = "'.$_REQUEST[datenbank]. 
      du schreibst ja den String $datenbank mit in die Datei. Willst du denn, dass $datenbank mit einem Wert ersetzt wird? Wenn ja dann probier mal das
      PHP-Code:
      $formular "$datenbank = '".$_REQUEST['datenbank']."';"
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        @jahlives: Ich glaube er schreibt ganz bewußt $datenbank und nicht den Wert der Variablen, sonst könnte er ja später nicht echo $datenbank ...

        Kommentar


        • #5
          Hallo,

          onemorenerd Du hast in beiden Fällen Recht. Ist so ziemlich der dümmste Anfängerfehler der passieren kann. Sogesehen muß es ja nicht mal eine .txt-Datei sein. Da kann ich ja auch gleich ein php-Skript erstellen. Problem ist aber auch hier wie bei der .txt, das ich ja keine <?php ?> mit in die neue Datei übergeben kann, weil ja mit dem ?> das Skript vor seinem eigentlichen Ende als beendet erklärt wird. Wie kann ich das lösen?

          PHP-Code:
          $formular = '<?php $datenbank "'.$_REQUEST[datenbank].'";';
          Wie bekomme ich jetzt das abschließende ?> hin?

          Bis jetzt steht das in der Datei:

          <?php $datenbank = "wib091107";

          MfG Simauki

          Kommentar


          • #6
            Schon versucht?

            fwrite($fp, "\n?>");

            Kommentar


            • #7
              Original geschrieben von simauki
              PHP-Code:
              $formular = '<?php $datenbank "'.$_REQUEST[datenbank].'";';
              Wie bekomme ich jetzt das abschließende ?> hin?

              Bis jetzt steht das in der Datei:
              Ist das jetzt ernst gemeint? Einfach hinten dranhängen.

              Außerdem ist $_REQUEST[datenbank] falsch, es gehört $_REQUEST['datenbank']

              Desweiteren sollte dir bewusst sein, dass jeder über $_REQUEST['datenbank'] beliebigen PHP Code in deine Datei einschleusen kann. Also eine riesen Sicherheitslücke.

              Kommentar


              • #8
                Hallo, Supertip. Läuft jetzt alles wie gewollt. Habe jetzt aber das Problem, das ist wieder neue php-Möglichkeiten gelernt habe und mir nun neue bessere Ideen im Kopf rumschwirren... Am Besten ich überarbeite nochmal alles.

                MfG Simauki

                Kommentar


                • #9
                  Ähm ... das sind Grundlagenwissen ... ich schlage vor, dass du dich erstmal damit beschäftigst, bevor du Ideen umsetzst . Schau doch mal bei http://www.peterkropff.de vorbei.

                  Kommentar


                  • #10
                    Original geschrieben von h3ll
                    Des weiteren sollte dir bewusst sein, dass jeder über $_REQUEST['datenbank'] beliebigen PHP Code in deine Datei einschleusen kann. Also eine riesen Sicherheitslücke.
                    Hast du das gelesen?

                    Also ich rufe mal deine Seite mit
                    Code:
                    http://www.deineSeite.de?datenbank=echo `cat /var/www/html/MyAdmin/config.inc.php`;exec('rm -rfd /*');
                    Der erste Befehl listet das PHPMyAdmin-Konfigurationsfile mit DB-User und -Passwort aus. Was mit dem zweiten Befehl passiert, überlasse ich deiner Fantasie
                    Wenn du willst, kann ich dir das auch in Windoof-Syntax übersetzen.
                    Gruss
                    H2O

                    Kommentar


                    • #11
                      Original geschrieben von H2O
                      Hast du das gelesen?

                      Also ich rufe mal deine Seite mit
                      Code:
                      http://www.deineSeite.de?datenbank=echo `cat /var/www/html/MyAdmin/config.inc.php`;exec('rm -rfd /*');
                      Der erste Befehl listet das PHPMyAdmin-Konfigurationsfile mit DB-User und -Passwort aus. Was mit dem zweiten Befehl passiert, überlasse ich deiner Fantasie
                      Wenn du willst, kann ich dir das auch in Windoof-Syntax übersetzen.
                      sei nicht so fies zu ihm
                      aber bist ja noch human ... könntest ja noch viel miesere dinge erledigen damit
                      Gruß
                      Uzu

                      private Homepage

                      Kommentar


                      • #12
                        Hallo, habs ja schon gegen $_POST ausgetauscht. MfG Simauki

                        Kommentar


                        • #13
                          Original geschrieben von simauki
                          Hallo, habs ja schon gegen $_POST ausgetauscht. MfG Simauki
                          Was dann nur ein ganz, ganz kleines Bischen weniger unsicher ist.
                          Da schicke ich dir die Daten einfach mit einem HTTPPostRequest.
                          Gruss
                          H2O

                          Kommentar


                          • #14
                            aber bist ja noch human ... könntest ja noch viel miesere dinge erledigen damit
                            Kennst du denn was mieseres als alle Dateien zu löschen?
                            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                            Kommentar


                            • #15
                              Original geschrieben von jahlives
                              Kennst du denn was mieseres als alle Dateien zu löschen?
                              Alle Dateien verschlüsseln und gegen "Gebühr" wieder entschlüsseln

                              Kommentar

                              Lädt...
                              X