Wie kann ich mit PHP die Datei in der URL ausgeben, aber trotzdem Daten weitergeben?

...komplette Frage anzeigen

4 Antworten

Wenn es Dir darum geht, das Du Deine Parameter in der URL verbergen möchtest, also nicht in der Adresse domain.tld/user.php?user=test

sonder domain.tld/user/test

dann braucht du mode-rewrite und eine .htaccess.

Damit must Du Dich intensiv beschäftigen, das geht leider nicht so ruckzuck

In der htaccess (das ist eine Datei im TXT-Format) werden URLS nach definierten Mustern intern umgeleitet.

Im Grunde brauchst Du aber Deine user.php auch nicht direkt über die URL ansprechen.

Das könnte auch so aussehen:

domain.tld/index.php?user=test

if(!empty($_GET['user']){
include('pfadzurusesr.php/user.php');
}

Du solltest aber immer wenn Du $_GET verwendest, dafür Sorge tragen, das Du die Inhalte der Variablen auf erlaubte Inhalte überprüfen kannst, und das auch tun. Sonst ist das eine Sicherheitlücke für Deine Seite.

Enthält die Variable z.B. unerlaubte Zeichen, leitest Du auf eine Fehlerseite weiter und bearbeitest den Variableninhalt nicht weiter.

Zum ausprobieren ist das aber noch nicht notwendig, solange die URL nicht öffentlich ist.

Antwort bewerten Vielen Dank für Deine Bewertung

Du musst immer eine Datei angeben!

Die index.html oder index.php wird auch angegeben aber nicht von dir sondern ist automatisch im Server so eingestellt falls ein Dateiname nicht angegeben wird.

Natürlich kannst du die user.php in index.php umbenennen und in das Unterverzeichnis user anlegen.

Der Aufruf würde dann so aussehen domain.com/user/?user=test oder domain.com/user/index.php?user=test

Antwort bewerten Vielen Dank für Deine Bewertung

index.php?user=abc

in der index

kannst du die variable mit $_GET['user'] abrufen

dateien kannst du mit include() nachladen

Antwort bewerten Vielen Dank für Deine Bewertung

Homero hat es bereits indirekt gesagt, aber nur damit das klar wird: Der bessere Ansatz ist wahrscheinlich, dass user.php gar nicht direkt aufgerufen wird sondern immer index.php und diese user.php einbindet. Also von der Idee her:

http://localhost/index.php -> index.php aufrufen und normal anzeigen

http://localhost/index.php?page=user -> index.php aufrufen und diese bindet user.php ein und diese wird dann ausgeführt

Zu deiner anderen Frage:

Statt 



http://localhost/user.php?user=test

dann

http://localhost/user/test

Was das bedeuten soll? "user" steht für die Seite, also user.php.

"test" steht für den Usernamen.

Die Parameterbezeichnung "user" kannst du weglassen.






Antwort bewerten Vielen Dank für Deine Bewertung
fluffiknuffi 20.02.2016, 19:52

Damit das ganze gut funktioniert wäre natürlich das festlegen von "Routen" zu  empfehlen. Sprich du definierst dir eine Route "user/<username>" die deine Website auswertet damit sie weiß, was die Bedeutung der URL-Parameter ist.

Allerdings ist das schon ein deutlicher Schritt nach vorne. Vielleicht ist es dafür auch noch zu früh.

0

Was möchtest Du wissen?