WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » REFERER herausfinden trotz index.html » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

REFERER herausfinden trotz index.html
von languitar
Nee, das wird jetzt glöst ;)
Also so wie ich die Fehlermeldung verstehe sollst du die Klasse vor der Session laden. Bau das doch mal so um.
von billi
session destroy würde passen. Aber damit zerschieße ich mir die laufende Session die ich im Shop bekomme gleich mit.
Ich glaub ich laß das lieber sonst leg ich meinen Shop noch lahm.
Danke für Deine Super hilfe..

billi
von languitar
Wie bitte? Eine Session kann man für alles mögliche Benutzen. Das ist einfach eine Seitenübergreifende Variablen- und Objektsammlung. Session_exit() oder so hieß der Befehl. Guck mal bei SelfPHP.
von billi
Oh menne.. Ist das ein Schrott... So ein blöder referer macht mir voll zu schaffen. Gibt es ne möglichkeit, den referer wieder zu schließen wenn ich das Fenster schließe?
Mit
1: 
2: 
3: 
4:
<?php
session_start();
$_SESSION['referer'] = $HTTP_REFERER;
?>
starte ich ja die Session für den referer.

Muß ja bestimmt ne Möglichkeit geben wie man nur für diesen referer die session wieder beendet. Oder gibts das net?
von languitar
Buaaaa, da blick ich nicht durch. Der Session-Start-Befehl muss überall ganz oben stehen, mehr kann ich dir nicht sagen, weil ich die Navi-Klasse da nicht kenne
von billi
Hab ich auch hin bekommen. Der referer wird mir bis in den Shop übergeben.
Aber nur wenn ich einmal auf den 1.Link klicke. Wenn ich alle Fenster, bis auf das wo der Link steht schließe, und dann den Link noch einmal benutze, dann bekomm ich das hier.

Fatal error: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition navigationhistory of the object you are trying to operate on was loaded _before_ the session was started in /homepages/32/d66748116/htdocs/carmodding/catalog/includes/application_top.php on line 318


Das ist doch bestimmt, weil die Session noch offen ist. Wie kann man das abändern?

In der application_top.php steht dieses um zeile 318

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12:
// navigation history
  if (tep_session_is_registered('navigation')) {
    if (PHP_VERSION < 4) {
      $broken_navigation = $navigation;
      $navigation = new navigationHistory;
      $navigation->unserialize($broken_navigation);
    }
  } else {
    tep_session_register('navigation');
    $navigation = new navigationHistory;
  }
  $navigation->add_current_page();


billi
von billi
Ähm.. geht.. Hatt die Firewall noch an.
Nun wir aber
http://www.xyz.dehttp://www.1234.de/
angezeigt...
Aber da ist http://www.1234.de zuviel. Ich wollt nur den ersten referer haben.
Und nun? Wie kann man das ändern?
von billi
Also irgendwie steh ich auf dem schlauch. Ha mal bißchen probiert.
Von URL www.xyz.de wird auf www.1234.de gelinkt. Dort wird ne index.php aufgerufen, welche wie folgt aufgebaut ist.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
<?php
session_start();
$_SESSION['referer'] = $HTTP_REFERER;
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<a href="http://www.4567.de/window.php">weiter </a>


Über den link wird dann die window.php aufgerufen. Welche wie foglt aussieht.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<?php
session_start();
?>
<?php
$referer = $_SESSION['referer'];
// oder
echo $_SESSION['referer'];
?>

Eigentlich sollte mir doch da der Referer schon angezeigt werden. Oder?
Wo hab ich da jetzt nen Fehler drin?
von billi
Hm.. Dann werd ich php nehmen. Na da bau ich das mal um. Bin gespannt obs dann funzt...

billi
von languitar
billi schrieb am 20.09.2003 00:51
Meine erste seite ist aber eine html datei. Diese ruft dann eine 2. html Datei auf.
Wie binde ich das in der html Datei ein?

billi


In HTML-Dateien grundsätzlich erst mal gar nicht. Da müsstest du entweder wirklich JavaScript nehmen, wie c3o das vorschlägt, oder daraus eine PHP-Datei machen
von c3o
Setz doch mit JavaScript ein Cookie...
von billi
Achso.. die 2.html Datei ruft dann in /catalog/ die index.php auf. Und an diese soll der referer dann übergeben werden.
von billi
Meine erste seite ist aber eine html datei. Diese ruft dann eine 2. html Datei auf.
Wie binde ich das in der html Datei ein?

billi
von languitar
auf der ersten Seite (inde.php) fügst du folgenden Code ein:
1: 
2: 
3: 
4:
<?php
session_start();
$_SESSION['referer'] = $HTTP_REFERER;
?>

PHP kümmert sich jetzt automatisch darum, dass die sog. Session-ID übergeben wird. Entweder in der Adresszeile oder mit einem Cookie. Mit Sessions kannst du im Prinzip Variablen über alle Seiten hinweg benutzen. Allerdings muss auf allen anderen Seite natürlich auch wieder auf die Session zurückgegriffen werden, die vorher angelegt wurde. Folglich musst du jetzt auf allen anderen Seiten auch
1: 
2: 
3:
<?php
session_start();
?>
ganz am Anfang am besten Einfügen. Du musst dann natürlich alle Dateien in php-Dateien ändern. Auf den in der Session gespeicherten Referer kannst du dann so zugreifen:
1: 
2: 
3: 
4: 
5:
<?php
$referer = $_SESSION['referer'];
// oder
echo $_SESSION['referer'];
?>
von billi
Hm..
Und wie mach ich das?

billi
von languitar
du kanst den z.B. am Anfang auslesen und dann über ne Session weitergeben
von billi
Hi...
ICh habe das selbe Prob in meinem Shop. Da wird der referer auch gespeichert. Nur bei mir kommt man auch über ne index.html, und dann ist meine eigene URL immer als referer gespeichert. Wie kann ich das machen, das der referer gespeichert wird bzw. weitergereicht wird. HAb schon überall nach einer Lösung gesucht, aber noch nichts gefunden.

thx
billi
von slackerbitch
alternativ ueber .htaccess html dateien parsen lassen; das sollte auch gehen.
von Mondschatten


...Danke für die Hilfe! Ich habe es nunmehr genau so gelöst und es funktioniert wunderbar.

Manchmal sieht man den Wald vor lauter Bäumen nicht.

Liebe Grüsse
Mondschatten

von stalkerX
Nein, du kannst aber die Abfrage schon auf der Startseite starten - von mir aus in der ersten Zeile. Abfragen, in eine Variable speichern und dann vom PHP-Script auswerten lassen.


---
.: Web 2.0 Entwickler & seine Notizen :.
von Mondschatten
Ihr Lieben,

folgende Frage beschäftigt mich im Moment:

ich benutze die Methode $ref= $HTTP_REFERER, um den Referer eines Besuchers herauszufinden. Da die php-Datei, in der diese Abfrage steht, von meiner index.html aufgerufen wird, liefert mir $HTTP_REFERER immer den url der index.html als Referer zurück.

Was kann ich tun? Ich kann doch nicht die php-Datei als erste aufrufen - noch vor der Startseite...

Liebe Grüsse
Mondschatten

Nach oben