[PHP] meta http-equiv=refresh; twee pagina's terug.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Na het posten van informatie (editten van nieuws bijv) wil ik graag dat na de melding of het updaten een succes was of niet er een refresh wordt uitgevoerd naar pagina waar de gebruiker op zat voordat hij begon te editten.

dit kan ik doen door het volgende te gebruiken:

PHP:
1
echo "<meta http-equiv=refresh content=\"2; URL=$ReturnUrl \">";


Probleem is alleen dat de standaard variabelen niet voldoen:

$_SERVER['HTTP_REFERER'] -> verwijst naar het edit scherm (dus dan edit je het nieuws opnieuw :( )

$_SERVER['PHP_SELF'] -> verwijst naar de start pagina omdat de url gestript wordt.

Nu heb ik het opgelost door een globale variabele te zetten op het moment dat de gebruiker wil editten en daar dan de URL in op te slaan.

PHP:
1
2
// Editten
$GLOBALS['ReturnUrl'] = "index.php?id=list";


Aanroepen in code refresh:
PHP:
1
echo "<meta http-equiv=refresh content=\"2; URL=$GLOBALS['ReturnUrl'] \">";


Probleem hierbij is dat ik zelf handmatig de URL moet opgeven. In mijn oneindige domheid bedacht ik me dus dat het makkelijker kan.

Na gezocht te hebben op: PHP: Predefined Variables kon ik bijna niets vinden wat voldoet aan mijn vraag.

Samenvattend (2 vragen):
• Is er een makkelijkere manier om te doen wat ik wil met Predefined Variables?
• Hoe kan ik de URL automatisch laten invullen i.p.v. dit met de hand te doen in mijn oplossing voor dit probleem?

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • Sjeik
  • Registratie: Augustus 2001
  • Laatst online: 29-05 14:39
Ja, je kan met javascript dit heel simpel doen.
code:
1
window.location.history.go(-2)

Was ik maar rijk en niet zo knap...


Acties:
  • 0 Henk 'm!

  • tato
  • Registratie: Juni 2003
  • Laatst online: 15-09 18:26
Wat je ook kunt is op de pagina zelf te linken naar form.php?ref=pagina.php

En zo weet je ook waar diegene vanaf komt.

Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Sjeik schreef op 13 augustus 2004 @ 10:16:
Ja, je kan met javascript dit heel simpel doen.
code:
1
window.location.history.go(-2)
Dit is geen refresh ;)

referal pagina is altijd index.php. De vraag is alleen even welke argumenten worden meegegeven aan de URL. (En dan met name wat deze argumenten waren toen de gebruiker in het edit scherm kwam (waar vandaan kwam hij toen) Daar moet ie naar het editten ook weer naar terug)

Mocht ik deze argumenten veranderen in de index dan moet ik overal handmatig die URLs voor het refreshen veranderen. Daar heb ik geen zin in (foutgevoelig)

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

Verwijderd

2 pagina's terug kun je niet, tenzij je een systeem bouwt waarin je in de sessie de geschiedenis van bezochte pagina's opslaat.

Maar waarom doe je niet gewoon 1 pagina vooruit? Als er zojuist gepost is, dan weet je waar de gebruiker hoort te zitten, dus dan stuur je 'm daar toch naar toe?

Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
In het edit scherm $_SERVER['HTTP_REFERER'] opvragen die in de edit scherm als hidden variable er bij pleuren
code:
1
<input type='hidden' name='http_referer' value='<? echo $_SERVER['HTTP_REFERER']; ?>'>

als je die daarna dan ophaalt gaat het wel goed lijkt mij.

Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Verwijderd schreef op 13 augustus 2004 @ 11:01:
Maar waarom doe je niet gewoon 1 pagina vooruit? Als er zojuist gepost is, dan weet je waar de gebruiker hoort te zitten, dus dan stuur je 'm daar toch naar toe?
Ja, dat kan ik ook doen, maar dan moet ik handmatig de URL opgeven incl. argumenten. Wanneer ik besluit deze te veranderen moet ik dit ook aanpassen door alle php files en das onlogisch.

De oplossing van 4Real is dan het beste aangezien je het systeem nu zelf laat uitzoeken waar het weg kwam i.p.v. dit hard in je code te zetten.

offtopic:
Constanten die midden in de code staan zijn de ergste dingen die er zijn wanneer er iets veranderd. Ik verander liever iets op 1 plaats en dat het dan overal werkt dan dat ik alle source files bij langs moet.

Vandaar dat ik ook nog de output naar de user toe in variabelen wil stoppen (maakt het vertalen ook makkelijker) en levert een consistente user output.
4Real schreef op 13 augustus 2004 @ 11:10:
In het edit scherm $_SERVER['HTTP_REFERER'] opvragen die in de edit scherm als hidden variable er bij pleuren
code:
1
<input type='hidden' name='http_referer' value='<? echo $_SERVER['HTTP_REFERER']; ?>'>

als je die daarna dan ophaalt gaat het wel goed lijkt mij.
Ja das inderdaad een optie... Dit ga ik toepassen... (Dat ik daar zelf niet op gekomen ben 8)7 )

[ Voor 54% gewijzigd door Schonhose op 13-08-2004 11:52 ]

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

Verwijderd

Schonhose schreef op 13 augustus 2004 @ 11:47:
offtopic:
Constanten die midden in de code staan zijn de ergste dingen die er zijn wanneer er iets veranderd. Ik verander liever iets op 1 plaats en dat het dan overal werkt dan dat ik alle source files bij langs moet.
Ja, daar hebben ze iets voor, en dat heet constantes B).

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 20:58

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Schonhose schreef op 13 augustus 2004 @ 11:47:
[...]
Constanten die midden in de code staan zijn de ergste dingen die er zijn wanneer er iets veranderd. Ik verander liever iets op 1 plaats en dat het dan overal werkt dan dat ik alle source files bij langs moet.
Kant noch wal */kuch* :P

PHP:
1
2
3
4
define('AANTAL_PAASEIEREN', 4);

echo AANTAL_PAASEIEREN;
// output: 4


Constantes worden 1 keer gedefineerd, en worden daarna niet meer verandert (tenzij je dit zelf doet uiteraard). Vandaar ook de naam 'constante' 8)7 Die define() zet je ergens bovenaan (* Thijsmans geilt op config.inc.php :9~ ), en hoef je dus maar 1x te veranderen :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Prammenhanger schreef op 13 augustus 2004 @ 13:00:
[...]


Kant noch wal */kuch* :P

<snip>
Ja tuurlijk zo kan het ook, maar wat ik vaak zie bij beginners is dat ze overal constanten heen zetten. Ga dat maar eens updaten. Als je het netjes wilt doen dan kun je ze in aparte file zetten.

Jij en OneOfBorg lezen beide niet goed. Ik ben me terdege bewust van het bestaan van constanten, maar gebruik ze dan wel zo dat ze allemaal in een aparte file staan en een duidelijke naam hebben.... (en/of omschrijving erachter).

Dat maakt het aanpassen makkelijker. Waar ik het over had zijn: Constanten die midden in de code staan

;)

Ik gebruik ook constanten, maar defineer ze alleen wanneer ze constant zijn voor de hele site (alle pagina's) of het meerendeel. Wanneer ik een variabele heb die meerdere keren gebruikt wordt over verschillende pagina's maar niet dezelfde inhoud hebben (zoals $ReturnUrl) die ga ik niet per pagina vastzetten in een constante.

Dus mijn verhaal raakt wel de kant en ook de wal :P maar jullie lezen niet goed. :P

offtopic:
NOFI uiteraard, maar ik heb dus echt de indruk dat er niet goed gelezen was wat ik zei. Aan de andere kant kan ik het ook duidelijker uitleggen natuurlijk :+

[ Voor 14% gewijzigd door Schonhose op 13-08-2004 17:31 . Reden: quote snippen ]

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

Verwijderd

Ik had de indruk dat je constantes en literals door elkaar aan het halen was.

Maar vergeeft u mijn lompheid :>
Pagina: 1