history back in php
Jürgen
- php
0 Cheatah0 Edgar Ehritt0 dedlfix
0 Edgar Ehritt0 dedlfix
0 Edgar Ehritt
Hallo,
beiJavascript gibt es ja die history back Funktion(damit kommt man auf die zuletzt aufgerufene seite zurück), gibt es sowas auch in php?
Oder wie kann ich die Javascript funktion in php einbauen ohne dass ich aktiv einen linik betätigen muss?
Danke jürgen
Hi,
beiJavascript gibt es ja die history back Funktion(damit kommt man auf die zuletzt aufgerufene seite zurück), gibt es sowas auch in php?
läuft PHP im Browser? Nö. Na also.
Oder wie kann ich die Javascript funktion in php einbauen ohne dass ich aktiv einen linik betätigen muss?
Indem Du die entsprechende URL an den Link anfügst, der zur Ausführung Deines PHP-Codes führt. Falls Dir jemand den HTTP-Referer empfehlen sollte, so ignoriere ihn gepflegt; dieser Header ist weit von jeder Verlässlichkeit entfernt.
Cheatah
Hallo Jürgen,
auf einer Website kann PHP die innerhalb des Webs besuchten Seiten auf drei Möglichkeiten speichern und sogar eine History erstellen. PHP speichert dabei beim Aufruf eines Scripts durch den Nutzer den jeweiligen Pfad des Scripts (also $_SERVER['PHP_SELF')
1.) in einem Cookie durch setcookie().
Beim nächsten Folgeaufruf eines Scripts des Webs ist der Inhalt des
Cookies über $_COOKIE erreichbar. Bedenke dabei aber, dass der Nutzer
Cookies nicht annehmen muss.
2.) innerhalb der aufzurufenden URL. So müsste an jeden Web-internen
Verweis z. B. ein "?url={$_SERVER['PHP_SELF']}" angehangen werden.
Dies kann dann im Folgescript durch $_GET verarbeitet werden.
3.) in einer Session. Dies wäre meine Methode, weil sie die sicherste
ist. Darüber hinaus bietet sie auch die Möglichkeit eine ganze
History anzulegen, da ganze Datensätze identifizierbar zu einem
Nutzer gespeichert werden können.
Dennoch ist der Aufwand sehr groß, den man betreibt - egal mit welcher Methode. Jeder Browser, (bei eben der Einschränkung, dass es sich um eine Website und nicht um eine Serverapplikation handel) bietet von sich aus dem Nutzer Möglichkeiten der Navigation in der History. Frage Dich also auch nochmals nach dem tatsächlichen Nutzen im Verhältnis des Aufwands.
Gruß aus Berlin!
eddi
Hi!
2.) innerhalb der aufzurufenden URL. So müsste an jeden Web-internen
Verweis z. B. ein "?url={$_SERVER['PHP_SELF']}" angehangen werden.
Seltsam, in einem deiner anderen heutigen Postings hast du noch gewusst, wie man mit Daten umzugehen hat, die man in eine URL einfügen möchte.
Lo!
Hallo dedlfix,
"?url={$_SERVER['PHP_SELF']}"
Seltsam, in einem deiner anderen heutigen Postings hast du noch gewusst, wie man mit Daten umzugehen hat, die man in eine URL einfügen möchte.
$_SERVER['PHP_SELF'] ist aller Voraussicht nach ASCII-codiert aber dennoch keine fertige Lösung.
Seltsam finde ich jedoch, dass Du statt konstruktiv zu verbessern, also dem jeweiligen OP (hier wie in Deinem herangezogenem Beispiel) eine bessere oder vollständigere Lösung zu präsentieren, heute zweitmalig nur an mir herumkrittelst. Hier ist es eine forumsüblichen Vereinfachungen zur Demonstration der Herangehensweise, die Dir anders als bei anderen dabei aufstößt. Warum machst Du das so auffällig nur bei mir?
Gruß aus Berlin!
eddi
Hi!
$_SERVER['PHP_SELF'] ist aller Voraussicht nach ASCII-codiert aber dennoch keine fertige Lösung.
Nein, warum sollte es ausgerechnet für den URL-Kontext vorbereitet sein? Dann müsste man es erst umständlich dekodieren, um es normal oder für andere Kontexte zu verwenden. (Es reicht schon, sie mit Magic Quotes rumärgern zu müssen.)
Seltsam finde ich jedoch, dass Du statt konstruktiv zu verbessern, also dem jeweiligen OP (hier wie in Deinem herangezogenem Beispiel) eine bessere oder vollständigere Lösung zu präsentieren,
Der Link zur Vorabversion meines Kontextwechsel-Artikels zeigt auf eine Lösung für das Problem.
heute zweitmalig nur an mir herumkrittelst.
Das beobachtest du falsch, ich kritisiere auch andere, wenn ich meine, dass sie etwas nicht richtiges oder unvollständiges zum Besten geben, und habe das heute auch schon gemacht. Ich kann nur nichts dafür, dass du etwas allergisch auf Kritik reagierst. Nicht nur auf meine.
Lo!
Hallo,
Hi!
$_SERVER['PHP_SELF'] ist aller Voraussicht nach ASCII-codiert aber dennoch keine fertige Lösung.
Nein, warum sollte es ausgerechnet für den URL-Kontext vorbereitet sein?
Du irrst, weil $_SERVER['PHP_SELF'] Der Dateiname des aktuell ausgeführten Skripts, relativ zum Document Root ist. Nehmen wir hierzu ein praktisches Beispiel: Wir haben einen Webserver lighttpd für den die Konfiguration gilt
var.docroot ="/var/www/"
server.chroot =docroot
server.document-root=docroot + server.name
PHP läuft als Fast-CGI. Alle Dateinamen, die PHP zu verarbeiten hat, setzen sich also zusammen aus docroot + server.name + "%{URI}", wobei %{URI} der vom HTTP-client aufgerufene Universal Resource Identifier ist. Laut Definition des PHP Manuals ist aber $_SERVER['PHP_SELF']
"Der Dateiname des aktuell ausgeführten Skripts, relativ zum Document Root" (im Beispiel %{URI}). (Punkt)
So und nun begründe mir bitte, warum Du anderer Auffassung bist. Für mich ist nicht ersichtlich, warum ein vom client angelieferte, zwingend URL-konforme Zeichenkette nicht dem URL-Kontext angehören soll!
Dann müsste man es erst umständlich dekodieren, um es normal oder für andere Kontexte zu verwenden. (Es reicht schon, sie mit Magic Quotes rumärgern zu müssen.)
Seltsam finde ich jedoch, dass Du statt konstruktiv zu verbessern, also dem jeweiligen OP (hier wie in Deinem herangezogenem Beispiel) eine bessere oder vollständigere Lösung zu präsentieren, heute zweitmalig nur an mir herumkrittelst.
ich kritisiere auch andere, wenn ich meine, dass sie etwas nicht richtiges oder unvollständiges zum Besten geben
Offensichtlich schätzt Du die tatsächliche 'Komplexität' Deinem "umständlich dekodieren" nachstehend völlig falsch ein. Muss also ein String, der als Querystring im HTML-dokument notiert wird, Deiner Meinung nach prinzipiell codiert werden, zeigt mir volgendes Beispiel etwas anderes:
<?php if($_SERVER['QUERY_STRING']!='') {exit($_SERVER['QUERY_STRING']);} ?>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head><title>test</title></head>
<body>
<p><a href="http://localhost/s.php?var=http://c2.ac-images.myspacecdn.com/ ä_ö_Ü">test</a></p>
</body>
</html>
Ausgabe per Link von Mozilla und Opera: var=http://c2.ac-images.myspacecdn.com/%20%E4_%F6_%DC
Ausgabe per Link vom IE (hier 6.0): var=http://c2.ac-images.myspacecdn.com/%20ä_ö_Ü
Auch die hard core version (<a href="http://192.168.1.34/test/s.php?var=Геннадий ЗЮГАНОВ: «Необходимо раскрыть глаза тем, кто заблуждается»">test</a>
) Bedarf ebenso wenig einer Kodierung.
Für die client-Seite muss meiner Auffassung der Beispiel nach überhaupt nicht kodiert werden. Das können die von ganz alleine. Es muss nur auf Server-Seite decodiert werden. (Daran krankt es u. a. auch bei Web.de. Aber man will ja nicht auf Eingaben hören.)
Seltsam finde ich jedoch, dass Du statt konstruktiv zu verbessern, also dem jeweiligen OP (hier wie in Deinem herangezogenem Beispiel) eine bessere oder vollständigere Lösung zu präsentieren,
Der Link zur Vorabversion meines Kontextwechsel-Artikels zeigt auf eine Lösung für das Problem.
Dann hast Du sicher Beispiele genug, die das oben stehende wiederlegen. Ich habe mir Deinen Artikel nicht angesehen.
heute zweitmalig nur an mir herumkrittelst.
Das beobachtest du falsch, ich kritisiere auch andere, wenn ich meine, dass sie etwas nicht richtiges oder unvollständiges zum Besten geben, und habe das heute auch schon gemacht. Ich kann nur nichts dafür, dass du etwas allergisch auf Kritik reagierst. Nicht nur auf meine.
Wenn sie denn berechtigt ist, nehme ich sie an. Derzeit bist Du ohne Argumente (wohl gemerkt hier im thread; ich werde mir den Artikel jetzt ja reinziehen müssen) auf Konfrontationskurs.
Gruß aus Berlin!
eddi
Hi!
[...] auf Konfrontationskurs.
Danke, kein weiterer Diskussionsbedarf auf dieser Ebene.
Lo!
Re:
[...] auf Konfrontationskurs.
Danke, kein weiterer Diskussionsbedarf auf dieser Ebene.
Abschließend bleibt zu hoffen, dass Du Deinen Artikel nochmals überdenkst und mir fortan also von vornherein mit Argumenten begegnest, um mich nicht nochmal auf Kniehöhe anzupinkeln, was ich wieder als Konfrontationskurs ansehen werde!
Gruß aus Berlin!
eddi
Hi,
Für die client-Seite muss meiner Auffassung der Beispiel nach überhaupt nicht kodiert werden. Das können die von ganz alleine.
Sobald du an irgendeiner Stelle "aber es funzt doch" als Basis (d)einer Argumentation gebrauchst, solltest du eigentlich von selber stutzig werden.
MfG ChrisB
Hallo ChrisB,
ja, ich weiß; nur war eben Dir dieses Feuerwerk nicht vorbehalten. ^,-
Gruß aus Berlin!
eddi