Toon posts:

[PHP] vorige pagina $HTTP_REFERER

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een bestand met allerlei functies. Dat bestand wordt vanuit diverse andere pagina's aangeroepen, waarna hij vervolgens weer terug moet keren naar de oorspronkelijke pagina. Ik doe dat met:
RedirectTo($HTTP_REFERER);

Dat gaat soms goed, maar het komt ook nogal vaak voor dat hij in een loop blijft hangen, omdat hij het bestand met die functies aanroept, waarna hij hem weer opnieuw aanroept, enzovoort. Het lijkt dus alsof er iets fout gaat met de waarde in $HTTP_REFERER.
Is dit een bekend probleem dat die $HTTP_REFERER niet betrouwbaar is? Ik snap er namelijk helemaal niets meer van...

  • Grum
  • Registratie: Juni 2001
  • Niet online
De referer is zou betrouwbaar als de browser - maar let wel .. het werkt eigelijk alleen bij links vanuit een andere pagina.

Erg betrouwbaar is het niet dus :P

Verwijderd

Topicstarter
Maar is er dan een andere betere methode in PHP? Ik heb zelf zitten zoeken en ik wordt overal naar deze variabele toegestuurd.

  • Grum
  • Registratie: Juni 2001
  • Niet online
gewoon de vorige pagina in een session opslaan oid :)

Verwijderd

Topicstarter
Is niet de mooiste oplossing, maar ja, ik heb geloof ik weinig keus. ;(

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Kan je niet gewoon javascript gebruiken?
history.go(-1) oid ?

  • Grum
  • Registratie: Juni 2001
  • Niet online
dan ben je net zo afhankelijk van de client als met de referer

  • Anders
  • Registratie: December 2000
  • Laatst online: 24-08 18:29
En bovendien krijg je dan de gecachete versie van de pagina voor je neus. Als het bv. om het posten in een forum gaat, zie je je bericht dus niet op de betreffende pagina, ook al staat ie inmiddels wel in de database.

Ik spoor veilig of ik spoor niet.


Verwijderd

Topicstarter
Ik heb nu twee sessie-variabelen aangemaakt. In een stuk code dat bij alle pagina's wordt geinclude, heb ik nu gezet:

$s_fotoco_link = $s_fotoco_page;
$s_fotoco_page = $REQUEST_URI;

Volgens mij moet het ook al met globale variabelen kunnen, en is een sessie-variabele "over-done". Maar met die $REQUEST_URI ben je wel nog steeds afhankelijk van de client. Is alleen minder code dan op elke pagina afzonderlijk instellen.

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 15:08
waarom niet gewoon zo?

<a href="page2.php?from=page1.php">page2</a>

en dan in page2.php een RedirectTo($from);

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • Grum
  • Registratie: Juni 2001
  • Niet online
omdat dat je urls vervuilt ;)

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Waarom niet gewoon

if($referrer == $thisPage) {
//ga naar beginpagina
}
else {
//ga naar $referrer
}

  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

Op zondag 10 maart 2002 12:20 schreef Walhalla het volgende:
Is dit een bekend probleem dat die $HTTP_REFERER niet betrouwbaar is? Ik snap er namelijk helemaal niets meer van...
Die variabele is gewoon betrouwbaar, als jou pagina zichzelf aanroept is de referer nou eenmaal hetzelfde als de pagina waar je naartoe gaat.. Je moet er overigens op rekenen dat het ook kan dat je helemaal geen referer van de browser meekrijgt (sommige mensen hebben dit uitstaan ivm privacy). Alleen de host: tag is in principe verplicht bij HTTP...

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com


  • Grum
  • Registratie: Juni 2001
  • Niet online
Daarom zeg ik .. het is niet betrouwbaar.

Je kan er niet op vertrouwen dat je em altijd krijgt en dattie dan ook juist is.

En de 'Host: ...' header is totaal niet verplicht.

Het enige wat verplicht is ... dat is een lege regel :)

Verwijderd

Topicstarter
Op zondag 10 maart 2002 19:55 schreef 2 het volgende:
Waarom niet gewoon

if($referrer == $thisPage) {
//ga naar beginpagina
}
else {
//ga naar $referrer
}
Dit werkt dus niet, omdat hij niet altijd naar de beginpagina moet. Hij moet naar de vorige pagina. Dat kan dus de ene keer A.php zijn, maar de volgende keer ook B.php of C.php.

Verwijderd

Topicstarter
Op zondag 10 maart 2002 19:29 schreef Grum het volgende:
omdat dat je urls vervuilt ;)
Dat was inderdaad mijn reden! :)

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Op zondag 10 maart 2002 20:58 schreef Grum het volgende:
En de 'Host: ...' header is totaal niet verplicht.
Iets precieser: Niet in HTTP 1.0, wel in HTTP 1.1 :)

On track


  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Op zondag 10 maart 2002 21:03 schreef Walhalla het volgende:

[..]

Dit werkt dus niet, omdat hij niet altijd naar de beginpagina moet. Hij moet naar de vorige pagina. Dat kan dus de ene keer A.php zijn, maar de volgende keer ook B.php of C.php.
Ja dat begrijp ik, maar die ene keer dat het dan fout gaat wordt het dan zo opgelost. Maar het is niet ideaal dat is waar.
Pagina: 1