Fehler unklar, vermute php Fehler oder .htaccess

  • Hallo,


    wie ihr in meinem letzten Beitrag bei css vielleicht gesehen habt oder vermutet habt, programmiere ich zurzeit an meiner eigenen CMS für mich selber um mehr zu lernen. Nun habe ich ein gewissen Anteil an Arbeit verändert und folge einem Interessanten Buch. Nun tritt bei mir ein mir noch unklarer Fehler auf, wo ich hoffe, das einer von euch mir helfen kann.


    Also ihr findet das was ich bis jetzt habe auf : https://code.google.com/p/gamer-ms-cms/source/browse/


    Dort habe ich bis zum Bereich der schöneren Url alles ohne Probleme gehabt. Nun habe ich zur Sicherheit meiner GET Abfrage die

    Zitat

    function filterfilename


    mir genommen von einem alten CMS Tutorial welches ich gefunden habe und habe meine .htaccess mit folgender Anweißung ausgestattet:

    Code
    1. Options +FollowSymlinks
    2. RewriteEngine on
    3. RewriteCond %{REQUEST_URI} /(.*).html
    4. RewriteRule (.*) /index.php?include=%1


    Das ganze könnt ihr auch dort im Browse sehen. Nun bekomme ich aber bei dem Aufruf der Seite http://127.0.0.1/testsite.htm die folgende Fehlermeldung:

    Zitat

    [h=1]Objekt nicht gefunden![/h] Der angeforderte URL konnte auf dem Server nicht gefunden werden. Sofern Sie den URL manuell eingegeben haben, überprüfen Sie bitte die Schreibweise und versuchen Sie es erneut.
    Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den postmaster@localhost hierüber.
    [h=2]Error 404[/h] 127.0.0.1
    Apache/2.4.7 (Win32) OpenSSL/0.9.8y PHP/5.4.22


    Eigentlich sollte aber die testsite.htm die ja im Ordner articles vorhanden ist dadurch angesprochen werden :/ Wo ist der Fehler ? Übersehe ich irgendwas wichtiges ? Falls es wichtig ist, möchte ich dazu sagen das ich als lokalen Testserver XAMMP nutze :)


    Mit lieben Grüßen

  • Hallo Grevas :) Du bist immer die schnellste ^^ Ich danke dir für die Hilfe , dieser Fehler hat sich nun doch recht gut behoben, wiederum auch nicht so gut das ich es fehlerfrei bekommen habe.
    Nachdem ich das umgeändert habe, habe ich natürlich wieder versucht einmal die Index.php aufzurufen, wo ich dann folgende Fehlermeldung erhalte:

    Zitat


    Notice: Undefined index: include in C:\xampp\htdocs\index.php on line 10
    FEHLER


    Das Wort "FEHLER" ist die geladene 404.php die in der filenamefilter aufgerufen wird wenn was ist. Doch eine Einsicht dazu bekomme ich auch nicht wirklich mit dem All Error Report.


    Meine Index.php sieht wie folgt aus:


    Und bei dem aufruf von http://127.0.0.1/testsite.html funktioniert die Anzeige nun ohne Fehler und es wird mir der Text "TESTSEITE" angezeigt. Aso und ich habe noch in filenamefilter die entsprechende Anweißung:


    Hier habe ich die .php natürlich auch in .html geändert. Das hatte ich leider vergessen.

  • Hallo lieber Bandit,


    mein Problem ist das ich in diesem Function Thema mich nicht genug auskenne zurzeit und deswegen ein Tutorial dafür zur Hilfe genommen habe zu meinem eigentlichen Buch, daher mein Buch auf Smarty aufbauen will und ich das nicht will ^^


    Hier habe ich nun 3 wichtige Tutorial Sektoren für den Bereich
    Sicherheit des include befehls
    Schöne Urls im CMS
    Das HTML Grundgerüst für CMS


    Bei diesen habe ich auch schon die Kommentare durch gelesen doch der Fehler ist dort nicht wirklich genannt oder er ist ähnlich genannt aber nicht behoben. Leiderweiße antwortet der Tutorial Ersteller nicht mehr über Kontaktmöglichkeiten wie g+ und fb, daher ziehe ich euch ja zu rat :) Kannst du da irgendwo erkennen was ich vergessen habe ? Ich möchte ja nur diese Function und dieses include von dem Tutorial fehlerfrei haben und danach wieder das Buch benutzen :) Oben der Link zeigt ja immernoch den aktuellen svn an, einzige Änderung sind die genannten die ich leider noch nicht hochladen konnte daher ich gerade nicht an meinem Heimpc bin :) Wiederum kann man es sonst aktuell auch auf https://github.com/MentisMora/GamerMS finden, daher ich dort eine AndroidApp für habe ^^ Ich hoffe das hier einer mir helfen kann oder ihr :)

  • Code
    1. /index.php?include=%1


    Mach daraus mal

    Code
    1. /index.php?include=[B]$1[/B]


    Und um den Folgepost etwas vorzubeugen.

    PHP
    1. $filename = preg_replace("/[^a-z0-9\-\/]/i","",$filename);


    Dabei sagtest du oben du würdest "testseite.htm" includieren wollen. Der Schnipsel PHP gibt in dem Fall aber "testseitehtm".

    PHP
    1. $filename = preg_replace("/^[\.\/]+|[^a-z0-9\-\/\.]/i","",$filename);


    Mit dem Ausdruck kann dann auch

    PHP
    1. if($filename[0] == "/"){
    2. $filename = substr($filename,1);
    3. }

    raus.


    PHP
    1. $filename .= ".php"; <---to html

    <---to html? Kommentare in PHP sehen anders auch, verstehen tu ich's dennoch nicht.


    Um mal den Klassiker hier im Forum zu zitieren: