• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] .htaccess /deny from all - entweder mit Header oder include den Pfad ändern

LikeStar

New member
Hallo Community,

wenn die PHP Skripte ausgeführt werden kann sich oftmals der Pfad ändern:

http://localhost/advance/loeschen/loeschen.php

in der letzten Zeile der datei loeschen.php steht:

header("Location: ../"); exit;

Dann ändert sich der Pfad logischerweise:

http://localhost/advance/

Wenn ich allerdings einen .htaccess Datei erstelle mit: deny from all

Lässt sich die Funktion header nicht öffnen, da ja man auf Grund der .htacces Datei keinen Zugriff mehr hat.

Wie kriege ich es trotzdem hin? Irgend eine Idee?
 
Ich habs nicht kapiert... Kannst du das vielleicht nochmal bisschen genauer erklären.
 
Danke Rico, dass es nicht nur mir so geht. Hab mich nur nicht getraut zu fragen, weil ich von PHP keinen Blassen hab. :)
 
Ich habs nicht kapiert... Kannst du das vielleicht nochmal bisschen genauer erklären.

Hallo und danke für deine Rückmeldung.

Mit den Bildern möchte ich das Problem einigermaßen gut schildern.

Bild1


1.jpg

PHP Script führt Befehle aus und möchte zurück zur Seite
localhost/advance/

Bild2

2.jpg

Bei diesem Bild ist gut zu erkennen, dass durch ein PHP Script, man wieder zurück zu
localhost/advance/ gelangen soll.

Vielen Dank. :icon7:


Header lässt sich nicht nutzen, da mit .htaccess [deny from all] das bloße aufrufen nicht erlaubt ist.
 
Zuletzt bearbeitet:
Du willst also einfach nur eine neue Seite aufrufen?

Das könntest du doch mit JS machen, location.href = '....' oder kommt das für dich nicht in Frage? Header wird vermutlich auch deshalb nicht funktionieren, da du bestimmt Ausgaben machst, bevor du es aufrufst und dann klappt die header() Funktion nicht mehr. (PHP: header - Manual)
 
@rico2009,

das ist, wie schon erwähnt, leider nicht möglich.

Das Gästebuch ist Passwort geschützt. Nach dem Login gelangt man zur Seite.

Das bloße Aufrufen ist also nicht möglich. Wegen der .htaccess Datei (deny from all)

Nur mit include kann man weitere Seiten "einbinden".
 
Hää... Dann raff ichs immer noch net. Musst du dann die Logindaten mitschicken oder wie kommt man generell auf diese Seite? Und warum möchtest du die Seite dann überhaupt aufrufen, wenn sie sowieso PW-Geschützt ist?
 
Nach dem Login -> gelangt man, mit einem include Befehl, zur eigentlichen Seite. Dort kann man Einträge löschen.

Mit Header lässt sich dies nicht lösen, da wie schon erwähnt, das bloße Aufrufen nicht möglich ist.

Wenn ich einen Eintrag gelöscht habe, möchte ich wieder zur eigentlichen Seite, wo man Einträge löschen kann.

Allerdings geht das nur über include

Schöne viele Grüße

:)
 
Warum ist das so aufgebaut? Ich würde halt Anzeigen und Löschen in ein und das selbe Script packen und Löschen über Anzeigen machen, damit man je nach Request erst löscht und dann anzeigt. Oder eben nur anzeigt je nach Variablen im Browser Request. Und selbst wenn es nicht so aufgebaut werden kann, kann man es aber so bauen. Ob und wieviele Scripts da serverseitig für includet werden müssen spielt überhaupt keine Rolle.

Nur eine Frage der richtigen Struktur, Thema Client/Server Request/Response, hier: wie arbeite ich mit einem Browser Request mehrere Dinge auf dem Server ab. Ich hab ein ganz klein bisschen den Eindruck, dass du immer wieder damit in Konflikt kommst oder ich hab die Frage nicht verstanden, das kann auch sein. Und vor allem immer wieder: Das sind keine Seiten sondern Scripte! Und genau das kann man sich auch hier bei dieser Frage wieder zunutze machen, denn es geht nicht um die Bezeichnung sondern die Eigenschaft. Scripte sind ausführbar, Seiten nicht, die werden zum Browser geschickt und der zeigt sie zunächst mal nur an. Seiten/Dokumente wären es, wenn kein Interpreter mehr zwischen Webserver und Datei stünde. Das erreicht man auf den meisten Webservern beispielsweise mit den Endungen .html, .css, .js, alle Images usw. Aber nicht .php, das sind ausführbare Scripte.

Nach dem Login -> gelangt man, mit einem include Befehl, zur eigentlichen Seite. Dort kann man Einträge löschen.
Genau das meine ich: es gibt kein "man gelangt mit include Befehl...". Du musst technisch denken. Was passiert wann an welcher Stelle? Das ist die entscheidende Frage. Browser und Server sind hier völlig unabhängig voneinander, was auf dem Server passiert ist völlig entkoppelt von dem was der Benutzer im Browser tut. Das ist ja einer der Vorteile des Client/Server Prinzips, für manche aber auch ein Fluch.
 
Ich denke du gehst in die falsche Richtung und verrennst dich da in was, was vermutlich jeder schon mal gehabt hat und jeder musste sich früher oder später mit diesem Thema auseinander setzen. Du hast eine Seite auf der Beiträge angezeigt werden. Nun klickst du auf einen Button "löschen" und rufst damit (von mir aus) eine Seite "/loeschen" auf. Das PHP Script dahinter bearbeitet die Anfrage und gibt dem Browser ein "OK" oder ein "FAIL" zurück. Der Browser kann damit dann weiter arbeiten, z.B. mit Hilfe von JS, welches dich dann wieder auf die letzte Seite leitet.

Eine andere Möglichkeit (für fortgeschrittene/größere Anwendungen und Benutzer) ist die Verwendung einen sogenannten Routers, dieser verarbeitet Serverseitig alle Requests. Ein weiterer Vorteil ist die Benutzung des MVCs, des Model-View-Controllers, welcher dir nochmal eine ziemlich gute Kapselung zwischen Server und Client liefert.

Mikdoe schrieb ja schon, man sollte sich genau überlegen, welche Dinge vom Server verarbeitet werden müssen und welche vom Client (Browser).


Ich würde dir jetzt gerne irgendein einfaches PHP Beispiel nennen, was Open Source ist und welches genau solche Situationen bearbeitet, leider fällt mir z.Z. kein passendes Beispiel ein. Du könntest dir höchstens mal PHP Shop Systeme auf github anschauen, die werden zwar komplexer sein, müssen aber auch solche Probleme bearbeiten. Vielleicht hilft dir das ja ein wenig weiter und du bekommst eine passende Idee.
 
Die obigen Beiträge sind leider völlig überflüssig. Man könnte meinen, dass hier Einiges missverstanden wurde.

Ich kann mich jedenfalls diesbezüglich nicht äußern.
Danke.
 
Wir wollen dir nur helfen. Du bist jetzt vermutlich angepisst, weil wir dir keine konkrete Antwort gegeben haben. Das liegt aber daran, dass wir oder du das Problem nicht verstanden haben. Wir möchten dir nicht unterstellen, dass du kein PHP kannst. Wir versuchen dir nur zu helfen und dich auf den richtigen Weg zu bringen. Das ist leider gerade wirklich schwer...

Also, fangen wir nochmal an oder hast du es inzwischen gelöst?
 
Ich glaube, dass du die HTACCESS umbauen musst. Wenn kein Zugriff erlaubt ist, dann kann ich da auch nicht zugreifen. Du könntest aber in der HTACCESS Ausnahmeregeln erzeugen.

Wenn du von include sprichst, heißt es eigentlich, dass du Seiten in eine andere Seite integrieren möchtest. Das kann also funktionieren ohne die HTACCESS Regel zu ändern. Dann kannst du aber nicht über die Verzeichnisse springen.
Zudem ist die Frage was in den Datein steht und ob sie sich ohne weiteres inkludieren lassen.
 
Er hat da entweder ein suEXEC Problem, weshalb er Bibliotheken ins public legen muss und das hakelt jetzt mit der .htaccess oder seine Scriptstruktur ist falsch.
Aber wenn er nicht will, sollten wir ihm die Hilfe nicht aufzwingen!
 
Zurück
Oben