Url & operator

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sem

sem

27/08/2008 19:23:00
Quote Anchor link
Goedendag,

Ten eerste wat een geweldig forum :)

Maar to the point, ik ben momenteel bezig met een eula aan het schrijven en zit met refer probleem.

De index.php redirect naar eula.php als je die niet eerst hebt geaccepteerd.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
if($_SESSION['EULA']!="Accepted") { header("Location: eula.php?ref=".$_SERVER['REQUEST_URI'].""); }
?>


Dit gaat helemaal goed gelukkig

nu in eula.php staat het volgende

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if($_GET['ref']!=""){
    $_SETTING['REF']=$_GET['ref'];
}
elseif(empty($_GET['ref']) and empty($_SETTING['REF'])) {
    $_SETTING['REF']="index.php";
}


if($_SESSION['EULA']=="Accepted"){
    header("Location: ".$_SETTING['REF']."");
}
elseif(isset($_POST['eula'])){
    $_SESSION['EULA']="Accepted";
    header("Location: ".$_SETTING['REF']."");
}

?>


Dit gaat ook nog goed totdat het volgende voordoet:

ik ga als gebruiker ga ik naar

http://www.mijndomein.nl/?page=account&sub=retrievepass

aangezien ik van ergens anders kwam en de eula nog niet had geaccepteert wordt ik doorverwezen naar eula.php
omdat het een ref is ziet het de link er zo uit

http://www.mijndomein.nl/eula.php?ref=?page=account&sub=retrievepass

gaat nog gelukkig goed, maar als ik hem dan accepteer moet hij door linken naar

http://www.mijndomein.nl/?page=account&sub=retrievepass

maar in plaats daarvan redirect hij alleen door naar

http://www.mijndomein.nl/?page=account

dus hij negeert het deel vanaf de &

ik heb het proberen er ' ' omheen te zetten of dubbelen "" maar niks hielp

Zelf kom ik er niet meer uit en heb ik hier de hoop op gevestigd.

p.s. ik heb gekozen voor http://www.mijndomein.nl omdat ik localhost schrijf

Gr. Sem
Gewijzigd op 01/01/1970 01:00:00 door Sem
 
PHP hulp

PHP hulp

25/12/2024 15:52:45
 
Douwe

Douwe

27/08/2008 20:40:00
Quote Anchor link
urlencode($_SERVER['REQUEST_URI'])
 
Emmanuel Delay

Emmanuel Delay

27/08/2008 20:48:00
Quote Anchor link
Zorg dat ik de url een "%26" staat ipv een "&".

Voorbeeld: indien dit in de url staat: eula.php?ref=?page=account%26sub=retrievepass


probeer dan eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$ref
= $_GET['ref'] ;
echo '<a href="'. $ref .'">klik</a>';
?>


Voor php zal die %26 gewoon %26 blijven. $_GET['ref'] krijgt dan de waarde die je wil. In je html broncode zie je echter dat de link de waarde krijgt die je wil, met & ipv %26.

Hier vind je een site waar je de conversies ziet voor verschillende doeleinden:
http://rishida.net/scripts/uniview/conversion.php

Wat jij nu zoekt, vind je in het URI veld.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Sem

sem

27/08/2008 22:24:00
Quote Anchor link
Heey iedereen,

Helaas werkt dit niet, hij gaat nog steeds alleen naar ?page=account en negeert alsnog de %26sub=retrievepass

Enige oplossing?
 
- SanThe -

- SanThe -

27/08/2008 22:42:00
Quote Anchor link
Dit gaat dus niet goed ook al zeg jij van wel.
........./eula.php?ref=?page=account&sub=retrievepass


Twee keer een ? werkt niet.
 
Jan Koehoorn

Jan Koehoorn

27/08/2008 22:54:00
Quote Anchor link
Heb je al de html entity geprobeerd voor die ampersand?

&amp;
 
Emmanuel Delay

Emmanuel Delay

27/08/2008 23:13:00
Quote Anchor link
SanThe schreef op 27.08.2008 22:42:
Dit gaat dus niet goed ook al zeg jij van wel.
........./eula.php?ref=?page=account&sub=retrievepass


Twee keer een ? werkt niet.


Die ? kan je dan ook beter vervangen door %3F
 
Sem

sem

27/08/2008 23:19:00
Quote Anchor link
Helaas werkte dit allemaal niet,

enig andere opties? en hebben jullie meer info nodig dan roep maar.
 
Sem

sem

28/08/2008 10:39:00
Quote Anchor link
Ik heb het opgelost!!

Niet zoals ik het wou maar het ging mij om de werking ervan.
Dit heb ik gedaan:

index.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
session_start();
if($_SESSION['EULA']!="Accepted") {
    $_SESSION['ref']=$_SERVER['REQUEST_URI'];
    header("Location: eula.php");
}

?>


Ik zet hem nu niet in de url maar in een session.

eula.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
session_start();
if(empty($_SESSION['ref'])) {
    $_SESSION['ref']="index.php";
}


if($_SESSION['EULA']=="Accepted"){
    header("Location: ".$_SESSION['ref']."");
}
elseif(isset($_POST['eula'])){
    $_SESSION['EULA']="Accepted";
    header("Location: ".$_SESSION['ref']."");
}

?>


En deze hierboven ook vervangen door de session.

Dus nu niks meer in de url maar in de session, ik vind het goed genoeg dus allemaal bedankt.

Gr. Sem
 
Marien xD

Marien xD

28/08/2008 12:21:00
Quote Anchor link
Je had de url ook kunnen encoden in een willekeurig en- decode algoritme. Ik zou voor de makkelijkheid gaan voor:

url_encode(base64_encode());

en aan de andere kant:

base64_decode(url_decode());

:)

Maar jou oplossing is ook goed. (ik hou er alleen niet van om voor elk willekeurig dingetje een sessie op te zetten. Als je ze vergeet te destroyen bestaan ze je hele sessie. Wat weer server vervuiling is ;))
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.