Forum » Server-Side scripting » Header current url
Rapifia Europe
Berichten: 3714
avatar
Offline Stuur privebericht
Beste,

Voor planemania.nl wil ik een klein systeempje gaan maken, dat stel je voor de sessie is voorbij, maar je vraagt bijv. de pagina online.php aan, dat ie dan naar de login pagina verwijst, maar dat als je inlogd, je dan word doorverwezen naar online.php.

Daar gebruik ik het volgende voor:
Code | Selecteer Alles
minimaliseren
1
2
3
4
$good $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if(!isset(
$_SESSION['GEHEIM']) && !isset($_POST['login'])){
header("Location: http://planemania.nl/login.php?a=".$good);
}


Maar, als ik nu http://nl1.planemania.nl/online.php aanvraag, dan linkt ie goed door naar de inlog pagina, maar dan geeft ie de URL index.php mee, en niet online.php.

Ik heb al een uurtje op Google gezocht, zonder resultaat.

Weet iemand wat ik verkeerd doe / waarom het niet werkt?

B.v.d.

Lars
03-10-2010 10:19
Dit topic is 454 keer bekeken door 63 verschillende leden
Reacties op: "Header current url"
1 | 2 Volgende pagina
-1
Berichten: 1489
avatar
Offline Stuur privébericht
Mag ik je erop wijzen dat dit basis vragen zijn. Heel misschien heeft de referrer er iets mee te maken.
Begin nu al te denken dat jij niet instaat bent om andere mensen te helpen als je zelf al met zulke vragen komt aanzetten.
03-10-2010 11:24
Rapifia Europe
Berichten: 3714
avatar
Offline Stuur privébericht
$_SERVER['HTTP_REFERER'] werkt niet, omdat het niet word meegezonden.

Daarom dacht ik dat dit misschien werkte, maar helaas

Iemand anders een idee?

Lars
Ik heb planemania.nl ook helemaal zelf gescript, alleen van de functies die ik nooit gebruik (zoals dit, of .htaccess of coordinaten etc.) weet ik niet hoe dat moet. Als je iemand belachelijk wil maken doe je dat maar lekker over jezelf en dan wel op je eigen site.
03-10-2010 11:35
-1
Berichten: 1489
avatar
Offline Stuur privébericht
SCRIPT_NAME al geprobeerd?

Laat anders een normaal voorbeeld zien.
03-10-2010 11:43
Rapifia Europe
Berichten: 3714
avatar
Offline Stuur privébericht
@Niels,
Wat bedoel je met een normaal voorbeeld?
Ik ga script_name even proberen, maar volgens mij had ik dat al geprobeerd zonder succes.

Lars

Nieuwe reactie samengevoegd met originele reactie op 03.10.10 12:06:02:
Nee werkt niet, maar toch bedankt.
Dan krijg ik namelijk als URL:
nl1.planemania.nl/source/index.php
En dat zou toch iets van
nl1.planemania.nl/source/online.php moeten zijn, en eigenlijk moet de source map ook nog weg (maar die kan ik wel strippen met explode(); etc)

Lars
03-10-2010 12:04
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Lang leven sessies?

Sla $_SERVER['REQUEST_URI'] op in een sessie...
Redirect naar login.php
Kijk of er een url in de sessie is opgeslagen om naar te redirecten...
Redirect en verwijder die waarde uit de sessie...

Je kunt zelfs nog $_POST in de sessie opslaan...
03-10-2010 12:33
Rapifia Europe
Berichten: 3714
avatar
Offline Stuur privébericht
@Darsstar, werkt niet
Ik heb nu dit:
Code | Selecteer Alles
minimaliseren
1
2
3
4
$_SESSION['referer'] = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if(!isset(
$_SESSION['SECRET']) && !isset($_POST['login'])){
header("Location: http://planemania.nl/login.php");
}

(er zit een session_start(); boven)

En in login.php dit:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
<?php
session_start
();
include 
"header.php";
if(
$_SESSION['referer'] != ""){
// Sessie gezet
} else{
// Sessie niet gezet
}


Maar werkt niet, ik krijg "Sessie niet gezet" terug..

Lars
03-10-2010 13:01
WAN\'T TO LEARN SOMETHING
Berichten: 1564
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
<?php
session_start
();
include 
"header.php";
if(isset(
$_SESSION['referer'])){
// Sessie gezet
} else{
// Sessie niet gezet
}  
?>
03-10-2010 13:31
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Het heeft waarschijnlijk te maken met dat je standaard verschillende sessies hebt per subdomein...
Rewrite elke login.php op een ander subdomein naar login.php en het zou volgens mij moeten werken...
03-10-2010 13:38
-1
Berichten: 1489
avatar
Offline Stuur privébericht
Quote: Darsstar

Het heeft waarschijnlijk te maken met dat je standaard verschillende sessies hebt per subdomein...
Rewrite elke login.php op een ander subdomein naar login.php en het zou volgens mij moeten werken...


http://www.jontodd.com/2006/08/10/php-session-cookie-multiple-domains/

Bij cookies heb je ook een 'domain' parameter die hierbij kan helpen.
03-10-2010 13:58
Rapifia Europe
Berichten: 3714
avatar
Offline Stuur privébericht
Ik heb dat cookies verhaal maar eens geprobeerd.
Ik kwam tot zover:
Code | Selecteer Alles
minimaliseren
1
2
3
4
if(!isset($_SESSION['suser']) && !isset($_POST['login'])){
setcookie("referer"$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], 60"/"".planemania.nl");
header("Location: http://planemania.nl/login.php");
}


Maar ook hier word de cookie niet aangemaakt
En het rewriten wil ik liever niet, want ik wil de hoofdsite gebruiken voor het inloggen etc. en de nl1.planemania.nl voor de ingame.

Lars
03-10-2010 15:30
Reageer op: "Header current url"
1 | 2 Volgende pagina
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden