Url & operator
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)
1
2
3
4
2
3
4
<?php
session_start();
if($_SESSION['EULA']!="Accepted") { header("Location: eula.php?ref=".$_SERVER['REQUEST_URI'].""); }
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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']."");
}
?>
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
urlencode($_SERVER['REQUEST_URI'])
Voorbeeld: indien dit in de url staat: eula.php?ref=?page=account%26sub=retrievepass
probeer dan eens
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
Helaas werkt dit niet, hij gaat nog steeds alleen naar ?page=account en negeert alsnog de %26sub=retrievepass
Enige oplossing?
........./eula.php?ref=?page=account&sub=retrievepass
Twee keer een ? werkt niet.
&
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.
........./eula.php?ref=?page=account&sub=retrievepass
Twee keer een ? werkt niet.
Die ? kan je dan ook beter vervangen door %3F
enig andere opties? en hebben jullie meer info nodig dan roep maar.
Niet zoals ik het wou maar het ging mij om de werking ervan.
Dit heb ik gedaan:
index.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
session_start();
if($_SESSION['EULA']!="Accepted") {
$_SESSION['ref']=$_SERVER['REQUEST_URI'];
header("Location: eula.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)
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
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 ;))