1. #1
    Fr3aK's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    2,614
    iTrader
    0
    Mentioned
    0 Post(s)

    PHP vs JS: Vorige pagina...

    Ik heb dus altijd al gewerkt met
    PHP Code:
    header("Location: ".$_SERVER['HTTP_REFERER']); 
    om bij een error de persoon terug te sturen naar de vorige pagina, maar sinds kort werkt het maar half en half
    Als ik via POST iets verstuur wil het wel werken maar als ik iets via GET verstuur wil het niet werken.
    Nu heb ik als alternatief
    PHP Code:
    echo "<script>history.go(-1)</script>" 
    maar ik weet niet of dit een degelijke oplossing is, maw het werkt wel maar is het wel veilig en gebruiksvriendelijk?
    Graag jullie antwoord

    Greetz
    no votes  

  2. #2
    servi's Avatar
    Registered
    01/07/02
    Location
    Zolder
    Posts
    2,487
    iTrader
    6 (100%)
    Mentioned
    0 Post(s)
    header('Location: '.$_SERVER['HTTP_REFERER'].$_SERVER['argv'][0]);
    no votes  

  3. #3

    Registered
    18/11/02
    Location
    Eke, Belgiƫ
    Posts
    2,448
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Tweede methode zal gewoon niet werken als de gebruiker JavaScript heeft uitgeschakeld.
    no votes  

  4. #4
    Fr3aK's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    2,614
    iTrader
    0
    Mentioned
    0 Post(s)
    Quote Originally Posted by servi
    This quote is hidden because you are ignoring this member. Show
    header('Location: '.$_SERVER['HTTP_REFERER'].$_SERVER['argv'][0]);
    Kheb wa zitten testen en dit werkt evenmin, $_SERVER['HTTP_REFERER'] geeft em ni mee en die $_SERVER['argv'][0] wordt gewoon "x=comments&id=9", dit is de staart van de url waar ik me "nu" bevindt dus da werkt ni echt

    Quote Originally Posted by DarkBone
    This quote is hidden because you are ignoring this member. Show
    Tweede methode zal gewoon niet werken als de gebruiker JavaScript heeft uitgeschakeld.
    Das waar maar hoeveel % van de surfers zet hun javascript uit ???
    no votes  

  5. #5
    =(X)=RaVen='s Avatar
    Registered
    18/07/02
    Location
    Antwerpen
    Posts
    847
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/1
    Ik maak een link van "klik om terug te keren als u niet automatisch..."
    en dan de javascript erbij
    khaat het dat er geen output boven die header mag staan
    (met includes enzo is dit best wel lastig)
    no votes  

  6. #6
    Fr3aK's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    2,614
    iTrader
    0
    Mentioned
    0 Post(s)
    Quote Originally Posted by =(X)=RaVen=
    This quote is hidden because you are ignoring this member. Show
    Ik maak een link van "klik om terug te keren als u niet automatisch..."
    en dan de javascript erbij
    khaat het dat er geen output boven die header mag staan
    (met includes enzo is dit best wel lastig)
    Maar output boven je header mag/kan wel als je alles buffert dmv ob_start(); in het begin van je php bestand te plaatsen
    Tis gewoon dat hij bij mij geen referer meegeeft
    no votes  

  7. #7

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Met sessies werken op je site:

    $_SESSION["prevget"] = $_SERVER["QUERY_STRING"]; --> op het einde v/d pagina

    dan wordt je header zoiets:
    PHP Code:
    header('Location: '.$_SERVER['HTTP_REFERER']."?".isset(
    $_SESSION["prevget"])?$_SESSION["prevget"]:""); 
    no votes  

  8. #8
    Fr3aK's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    2,614
    iTrader
    0
    Mentioned
    0 Post(s)
    Quote Originally Posted by killgore
    This quote is hidden because you are ignoring this member. Show
    Met sessies werken op je site:

    $_SESSION["prevget"] = $_SERVER["QUERY_STRING"]; --> op het einde v/d pagina

    dan wordt je header zoiets:
    PHP Code:
    header('Location: '.$_SERVER['HTTP_REFERER']."?".isset(
    $_SESSION["prevget"])?$_SESSION["prevget"]:""); 
    Zoiets zou werken moest em nog iets meegeven met HTTP_REFERER
    Die referer krijgt soms geen waarde mee, kweet ook ni hoe da komt
    no votes  

  9. #9
    Homer's Avatar
    Registered
    30/07/02
    Posts
    74
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    omdat sommige browsers dit uitschakelen en/of gewoon niet meegeven
    HTTP_REFERER is dus browser afhankelijk en niet altijd "reliable"
    no votes  

  10. #10
    maT''s Avatar
    Registered
    15/05/04
    Location
    <!-_^?>
    Posts
    395
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    freak, test het verschil eens met je script op een local-server en een degelyke webserver van een host.
    Bij mij lag het verschil daarin, omdat lokaal die HTTP_REFERER ook niets meegaf.
    no votes  

  11. #11
    Nullius's Avatar
    Registered
    05/12/03
    Posts
    1,132
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Probeer $_SERVER['REQUEST_URI']
    Als die leeg is, gebruik je $_ENV['REQUEST_URI']

    Dus om terug te gaan:
    header("Location: ". ($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_ENV['REQUEST_URI'] );

    Meer info te vinden op:
    http://www.php.net/manual/nl/languag...predefined.php
    \\ Portfolio :: Nulart.be //
    \\ 4dfx-lab :: 4dfx-lab.net //
    \\ System :: View //
    no votes  

  12. #12
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Quote Originally Posted by Homer
    This quote is hidden because you are ignoring this member. Show
    omdat sommige browsers dit uitschakelen en/of gewoon niet meegeven
    HTTP_REFERER is dus browser afhankelijk en niet altijd "reliable"
    De meeste browsers geven die wel gewoon door hoor, maar er zijn een pak personal firewalls en proxies die die extra info weghalen uit de requests (oa Norton PF dacht ik)... In een sessie telkens de laatst opgevraagde URL opslaan lijkt mij ook wel de simpelste oplossing, tenzij je op voorhand weet naar welk script je moet redirecten, dan vul je gewoon die URL in. En hier lijkt dat laatste mij de simpelste oplossing, aangezien er blijkbaar toch steeds naar 't zelfde script geredirect moet worden (tenzij er ergens extra - user afhankelijke - parameters in 't spel zijn uiteraard).
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

  13. #13

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Nullius
    This quote is hidden because you are ignoring this member. Show
    Probeer $_SERVER['REQUEST_URI']
    Als die leeg is, gebruik je $_ENV['REQUEST_URI']

    Dus om terug te gaan:
    header("Location: ". ($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_ENV['REQUEST_URI'] );

    Meer info te vinden op:
    http://www.php.net/manual/nl/languag...predefined.php
    edit: note: gebruik liever de empty functie hierop dan een gewone check, is correcter .

    En moest je nu eens 2 keer nadenken voor je comments geeft: ik gaf enkel methode voor get-vars op te slaan, een beetje doordenken biedt de oplossing aan he: voeg de url er op die pagina aan toe. Dan heb je enkel problemen met externe links (als dat al een probleem voor jou is ).
    Last edited by killgore; 20-09-2004 at 19:32.
    no votes  

  14. #14
    Nullius's Avatar
    Registered
    05/12/03
    Posts
    1,132
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by killgore
    This quote is hidden because you are ignoring this member. Show
    edit: note: gebruik liever de empty functie hierop dan een gewone check, is correcter .
    Ik gebruik bijna nooit empty.
    Dezelfde waarde wordt verkregen in dit geval (true als er iets instaat en false als ie leeg is) en in mijn geval kan je altijd met 'false' werken (bv bij return uit functies).
    Dus er zijn wel enkele voordelen aan mijn methode
    \\ Portfolio :: Nulart.be //
    \\ 4dfx-lab :: 4dfx-lab.net //
    \\ System :: View //
    no votes  

  15. #15

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Nullius
    This quote is hidden because you are ignoring this member. Show
    Ik gebruik bijna nooit empty.
    Dezelfde waarde wordt verkregen in dit geval (true als er iets instaat en false als ie leeg is) en in mijn geval kan je altijd met 'false' werken (bv bij return uit functies).
    Dus er zijn wel enkele voordelen aan mijn methode
    tbh, !empty() en gewone evaluatie hebben zelfde effect, maar empty is duidelijker om te lezen imho (en ook correcter). empty werkt dus ook met booleanse waarden .
    Jouw methode zou wel een notice kunnen krijgen als de var niet geset is, met empty heb je dit niet. dus ==> mijne is correcter en doet hetzelfde .

    meer info: http://be2.php.net/manual/en/types.comparisons.php
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in