über funktion in .php dateien schreiben ?

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

  • über funktion in .php dateien schreiben ?

    Hallo zusammen!

    Ich bräuchte dringend Eure hilfe.
    Ich habe eine kleine Funktion geschrieben, die mir den Inhalt eines
    beliebigen Ordners anzeigt und die Dateien verlinkt.
    PHP-Code:
    <?php
    $pfad 
    ".";
    if (
    is_dir($pfad)==true) {
        
    $handle opendir($pfad);
        while ((
    $file readdir($handle)) ==! false) {
        if (
    $file =="." || $file == "..") {continue;}
        if(
    preg_match("/.php$/"$file)==1) {
            echo(
    "<img src=\"php_icon.gif\"/>&nbsp;<a href=\"$file\">$file</a><br>");}
            elseif( (
    preg_match("/.gif$/"$file)==1) || preg_match("/.jpg$/"$file)==|| preg_match("/.png$/"$file)==
                { echo(
    "<img src=\"image_icon.gif\"/>&nbsp;$file<br>"); }
                else { echo(
    "<a href=\"$file\">$file</a><br>"); }
        }
    }
    ?>

    Jetzt möchte ich aber das z.B. alle .php nur als "text/plain" im browser ausgegeben werden, damit ich mir den quellcode anschauen kann.
    Da ich jetzt nicht manuell in jeder einzelnen .php datei den http header ändern möchte, wollte ich fragen wie man das lösen könnte, dass bei einem Klick auf eine .php Datei folgender http header an den Anfang der Datei geschrieben wird:
    PHP-Code:
    <?php
    header
    ("Content-Type: text/plain; charset=UTF-8");
    ?>
    Hat jmd. eine idee?

  • #2
    Du gibst den Link in der Form
    Code:
    showsource.php?file=DEINE_DATEI
    aus und dieses Skript setzt den Header und zeigt den Quellcode an. Das ist natürlich mit äußerster Vorsicht zu genießen, da bei mangelnder Parameterüberprüfung jede Datei angezeigt werden kann! Also wenn, dann nur im Adminbereich mit ausreichender Prüfung!

    Kommentar


    • #3
      Hallo,

      ich habe eben mir mal schnell die mühe gemacht ein wenig was runter zu schreiben, kann man ja noch verbessern.

      Hier der Code

      PHP-Code:
      <?php
      if(!isset($_GET["file"])) $_GET["file"]='';
      //------------------------
      if($_GET["file"]!=''){
          if(
      file_exists($_GET["file"])){
              if(!
      headers_sent()){
                  
      header("Content-Type: text/plain; charset=UTF-8");
                  
      $text implode (''file ($_GET["file"]));
                  echo 
      $text
              }
          } else {
              echo 
      'Die '.htmlspecialchars($_GET["file"]).' ist nicht auf den Server.';
          }
          
      }
      //------------------------
      $pfad ".";
      if (
      is_dir($pfad)==true) {
          
      $handle opendir($pfad);
          while ((
      $file readdir($handle)) ==! false) {
          if (
      $file =="." || $file == "..") {continue;}
          if(
      preg_match("/.php$/"$file)==1) {
              echo(
      "<img src=\"php_icon.gif\"/>&nbsp;<a href=\"$file\">$file</a><br>");}
              elseif( (
      preg_match("/.gif$/"$file)==1) || preg_match("/.jpg$/"$file)==|| preg_match("/.png$/"$file)==
                  { echo(
      "<img src=\"image_icon.gif\"/>&nbsp;$file<br>"); }
                  else { echo(
      "<a href=\"".htmlspecialchars($_SERVER['PHP_SELF'])."?file=$file\">$file</a><br>"); }
          }
      }
      ?>
      mfg. Nico
      Webspace , Php

      Kommentar


      • #4
        PHP-Code:
        if($_GET["file"]!=''){
            if(
        file_exists($_GET["file"])){ 
        Genau sowas meine ich mit
        Das ist natürlich mit äußerster Vorsicht zu genießen, da bei mangelnder Parameterüberprüfung jede Datei angezeigt werden kann!
        Ist natürlich super unsicher!!
        Jetzt ist der Aufruf jeder Datei möglich:
        Code:
        deineDatei.php?file=/Pfad/zu/deinenDatenbankZugangsdaten.php
        Btw: readfile ist etwas fixer als die Ausgabe von implode ('', file ($_GET["file"]));

        Kommentar


        • #5
          Spitzenmäßig!!

          Funktioniert prima, vielen Dank!
          Das mit der Sicherheit ist nicht allzu schlimm, da das ganze nur lokal verwendet wird.

          Kommentar


          • #6
            Naja man sollt hier noch mit absoluten Pfaden arbeiten beim einlesen von Datein. Wie oben geschriebn war das nur ein ansatz der es verdeutlichen sollt wie man es machen könnte.

            Mfg. Nico
            Webspace , Php

            Kommentar

            Lädt...
            X