Get url
Ik heb een url bijvoorbeeld 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.
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.
schrijf het volgende eens uit op een test php bestandje
print_r($_SERVER);
Daar staan allerlei dingen van de url. Als ik me niet vergis is het juiste $_SERVER['REQUEST_URI']
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
Bedankt voor je snelle antwoord maar helaas staat er nergens alleen domein. Het geen wat jij bedoelt geeft als waarde: cms/content/domein/index.php
In principe alles na de domeinnaam.
In principe alles na de domeinnaam.
$_SERVER['PHP_SELF']
Gewijzigd op 12/06/2012 20:53:01 door Albert de Wit
Nee sorry dat resulteert in het zelfde.
Ooowh... je maakt gebruik van zoekmachine vriendelijke URL's.
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?
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 ----
Beste mensen,
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?
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?
zoals ik al veel eerder zei. Dit soort links zijn (ik hoop niet dat het mappen zijn) zoekmachinevriendelijke url's. Meestal moeten die ergens in een php pagina zijn aangeduid. Vaak is het iets als:
https://www.test.nl/
$_GET['p1']=cms/
$_GET['p2']=content/
$_GET['p3']=pietjepuk/
https://www.test.nl/
$_GET['p1']=cms/
$_GET['p2']=content/
$_GET['p3']=pietjepuk/
Maar de URL zelf wordt dan toch een statische link?
Als ik begrijp wat je bedoeld zou ik dit gebruiken
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 ;-)
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.
Marco onderstaande script werkt perfect.




