PHP Weiterleitung
bearbeitet von HannesTach,
> $uri = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");
> header("Location: http://$host$uri/$extra");
> Zu mir wurde gesagt das "rtrim(dirname(htmlspecialchars" kann komplett weg, dieses ist in einer URL nicht wichtig
htmlspecialchars() bereitet Text so auf, dass es in HTML-Code keinen Ärger mit den HTML-Sonderzeichen <, >, & und Anführungszeichen gibt. Du verwendest $uri aber nicht HTML-, sondern HTTP-seitig. htmlspecialchars() ist hier fehl am Platze.
Der Rückstrich, den du mit rtrim() entfernen möchtest, hat in URLs nichts zu suchen, das ist eine DOS/Windows-Angelegenheit. Falls du das Skript allerdings auf einem Windows-System ausführst, könnte es sein, dass du _sämtliche_ Rückstriche durch Schrägstriche ersetzen musst. Das funktioniert mit rtrim() natürlich nicht.
Weiterhin ist es unnötig, den letzten Schrägstrich zu entfernen, weil du ihn bei header(... $uri/$extra) eh wieder einfügst. rtrim() ist also überflüssig.
dirname() brauchst du trotzdem in diesem Zusammenhang, denn du möchtest anscheinend nicht auf das Skript weiterleiten, sondern wo immer $extra hinzeigt.
> Außerdem wurde gesagt eine header-Weiterleitung benötigt eine absolute URL, ist dieses so richtig, wie ich es oben geschrieben habe?
Falls du der Meinung bist, damit eine absolute Adresse gebastelt zu haben: Ja. (Falls du nicht weisst, was eine absolute Adresse ist, solltest du das besser selbst nachschlagen. Sowas ist Grundwissen.)
PHP Weiterleitung
bearbeitet von HannesTach,
> $uri = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");
> header("Location: http://$host$uri/$extra");
> Zu mir wurde gesagt das "rtrim(dirname(htmlspecialchars" kann komplett weg, dieses ist in einer URL nicht wichtig
htmlspecialchars() bereitet Text so auf, dass es in HTML-Code keinen Ärger mit den HTML-Sonderzeichen <, >, & und Anführungszeichen gibt. Du verwendest $uri aber nicht HTML-, sondern HTTP-seitig. htmlspecialchars() ist hier fehl am Platze.
Der Rückstrich, den du mit rtrim() entfernen möchtest, hat in URLs nichts zu suchen, das ist eine DOS/Windows-Angelegenheit. Es ist auch unnötig, den Schrägstrich zu entfernen, weil du ihn bei header(... $uri/$extra) eh wieder einfügst. rtrim() ist also überflüssig. Falls du das Skript allerdings auf einem Windows-System ausführst, könnte es sein, dass du _sämtliche_ Rückstriche durch Schrägstriche ersetzen musst. Das funktioniert mit rtrim() natürlich nicht.
dirname() brauchst du trotzdem in diesem Zusammenhang, denn du möchtest anscheinen nicht auf das Skript weiterleiten, sondern wo immer $extra hinzeigt.
> Außerdem wurde gesagt eine header-Weiterleitung benötigt eine absolute URL, ist dieses so richtig, wie ich es oben geschrieben habe?
Falls du der Meinung bist, damit eine absolute Adresse gebastelt zu haben: Ja. (Falls du nicht weisst, was eine absolute Adresse ist, solltest du das besser selbst nachschlagen. Sowas ist Grundwissen.)
PHP Weiterleitung
bearbeitet von HannesTach,
> $uri = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");
> header("Location: http://$host$uri/$extra");
> Zu mir wurde gesagt das "rtrim(dirname(htmlspecialchars" kann komplett weg, dieses ist in einer URL nicht wichtig
htmlspecialchars() bereitet Text so auf, dass es in HTML-Code keinen Ärger mit den HTML-Sonderzeichen <, >, & und Anführungszeichen gibt. Du verwendest $uri aber nicht HTML-, sondern HTTP-seitig. htmlspecialchars() ist hier fehl am Platze.
Der Rückstrich, den du mit rtrim() entfernen möchtest, hat in URLs nichts zu suchen, das ist eine DOS/Windows-Angelegenheit. Es ist auch unnötig, den Schrägstrich zu entfernen, weil du ihn $uri/$extra eh wieder einfügst. rtrim() ist also überflüssig. Falls du das Skript allerdings auf einem Windows-System ausführst, könnte es sein, dass du _sämtliche_ Rückstriche durch Schrägstriche ersetzen musst. Das funktioniert mit rtrim() natürlich nicht.
dirname() brauchst du trotzdem in diesem Zusammenhang, denn du möchtest anscheinen nicht auf das Skript weiterleiten, sondern wo immer $extra hinzeigt.
> Außerdem wurde gesagt eine header-Weiterleitung benötigt eine absolute URL, ist dieses so richtig, wie ich es oben geschrieben habe?
Falls du der Meinung bist, damit eine absolute Adresse gebastelt zu haben: Ja. (Falls du nicht weisst, was eine absolute Adresse ist, solltest du das besser selbst nachschlagen. Sowas ist Grundwissen.)
PHP Weiterleitung
bearbeitet von HannesTach,
> $uri = rtrim(dirname(htmlspecialchars($_SERVER["PHP_SELF"])), "/\\");
> header("Location: http://$host$uri/$extra");
> Zu mir wurde gesagt das "rtrim(dirname(htmlspecialchars" kann komplett weg, dieses ist in einer URL nicht wichtig
htmlspecialchars() bereitet Text so auf, dass es in HTML-Code keinen Ärger mit den HTML-Sonderzeichen <, > und & gibt. Du verwendest $uri aber nicht in HTML, sondern HTTP. htmlspecialchars() ist hier fehl am Platze.
dirname() brauchst du trotzdem in diesem Zusammenhang.
Der Rückstrich, den du mit rtrim() entfernen möchtest, hat in URLs nichts zu suchen, das ist eine MS-DOS-Angelegenheit. Es ist auch unnötig, den Schrägstrich zu entfernen, weil du ihn $uri/$extra wieder einhängst. rtrim() ist also überflüssig. Falls du das Skript allerdings auf einem Windows-System ausführst, könnte es sein, dass du _sämtliche_ Rückstriche durch Schrägstriche ersetzen musst. Das funktioniert mit rtrim() natürlich nicht.
> Außerdem wurde gesagt eine header-Weiterleitung benötigt eine absolute URL, ist dieses so richtig, wie ich es oben geschrieben habe?
Falls du der Meinung bist, damit eine absolute Adresse gebastelt zu haben: Ja. (Falls du nicht weisst, was eine absolute Adresse ist, solltest du das besser selbst nachschlagen.)