Get url
https://www.test.nl/cms/content/domein/index.php
En nu wil ik controleren dat domein in de url gelijk is == aan de waarde van een $_Session.
Maar hoe lees ik dat uit? Ik kan geen gebruik maken van $_GET['pagina']; want dan moet er voorbeeld index.php?pagina=domein staan.
Iedereen heeft namelijk zijn eigen index.php en dat werkt goed alleen nu kan iemand makkelijk door de url te vervangen naar een andere waarde op een andere pagina komen en dat wil ik afvangen.
Ik heb een url bijvoorbeeld En nu wil ik controleren dat domein in de url gelijk is == aan de waarde van een $_Session.
Maar hoe lees ik dat uit? Ik kan geen gebruik maken van $_GET['pagina']; want dan moet er voorbeeld index.php?pagina=domein staan.
Iedereen heeft namelijk zijn eigen index.php en dat werkt goed alleen nu kan iemand makkelijk door de url te vervangen naar een andere waarde op een andere pagina komen en dat wil ik afvangen.
print_r($_SERVER);
Daar staan allerlei dingen van de url. Als ik me niet vergis is het juiste $_SERVER['REQUEST_URI']
Gewijzigd op 12/06/2012 20:37:48 door Albert de Wit
In principe alles na de domeinnaam.
Gewijzigd op 12/06/2012 20:53:01 door Albert de Wit
Nee sorry dat resulteert in het zelfde.
Waarschijnlijk is het woordje 'Domein' in 'https://www.test.nl/cms/content/domein/index.php' $_GET['p1'].
Zoiets moet ergens in je php bestanden staan toch?
Albert, een domein is het stukje tussen www en .com/nl/be/ext.
Ben ik met je eens Wouter, maar TS geeft in zijn (voorbeeld)url ook expliciet het woord domein mee. Mogelijk dat TS daar op doelt in zijn vraagstelling?
Danny von Gaal op 12/06/2012 20:34:03:
En nu wil ik controleren dat domein in de url gelijk is == aan de waarde van een $_Session
...
Iedereen heeft namelijk zijn eigen index.php en dat werkt goed alleen nu kan iemand makkelijk door de url te vervangen naar een andere waarde op een andere pagina komen en dat wil ik afvangen.
...
Iedereen heeft namelijk zijn eigen index.php en dat werkt goed alleen nu kan iemand makkelijk door de url te vervangen naar een andere waarde op een andere pagina komen en dat wil ik afvangen.
Danny, een sessie is gebonden aan een cookie. Een cookie is weer gebonden aan een domein. Een cookie gezet in domein A kan niet worden gelezen vanuit domein B. Als iemand dus begint op zijn eigen domein en dan het domein aanpast, dan kan jij nooit via een cookie checken of dat gebeurt is. De persoon zit namelijk op een ander domein en jij kan dus niet meer het cookie gebruiken van het oorspronkelijke domein.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
echo curPageURL();
?>
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
echo curPageURL();
?>
Als je dan een deel van de URL nodig hebt kun je bijvoorbeeld explode() gebruiken
Gewijzigd op 13/06/2012 09:56:33 door Marco ----
Allemaal bedankt voor het mee denken. Maar ik vermoed dat er verwarring is binnen dit onderwerp. Ik heb wel gezegd domein maar daarmee bedoel ik alleen maar de plek in de url: https://www.test.nl/cms/content/domein/index.php.
Dit zou net zo goed https://www.test.nl/cms/content/pietjepuk/index.php kunnen zijn. Het gaat mij er om dat ik dat stukje tussen / / wil uit kunnen lezen.
Via explode zoals hierboven aangegeven heb ik opgezocht dat je een variabele kan ontleden en dat is al een stap in de buurt. Ik zou dus bijvoorbeeld de url in een variabale kunnen opslaan en dan het vierde stukje kunnen opslaan in een aparte variabele maar is er geen snellere manier?
Als ik begrijp wat je bedoeld zou ik dit gebruiken
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
$tmp = explode("/", curPageURL());
$map = $tmp[3];
?>
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
$tmp = explode("/", curPageURL());
$map = $tmp[3];
?>
Dan zou je zelf even moeten kijken of het $tmp[2] of bijboorbeeld 3 of 4 moet zijn
Toevoeging op 13/06/2012 12:06:10:
Of dit dan natuurlijk
Lijkt mij toch niet zo veel code ;-)
Gewijzigd op 13/06/2012 12:12:04 door Marco ----
Bedankt, ik zal thuis (niet vanavond natuurlijk ;-)) eens even kijken of het lukt en dan laat ik het weten.