page > volledige URL

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.260
Hoi,


Is onderstaande ook mogelijk met een volledige url
voorbeeld :


nu heb ik:
PHP:
<?php if ($page == 'mijn-pagina.php') { 

echo "test";

 } ?>

Zou dus willen

PHP:
<?php if ($page == 'http://www.helpmij.nl/forum/mijn-pagina.php) {    // of <?php if ($page == '/forum/mijn-pagina.php) { 

echo "test";

 } ?>
 
Ja dat man, maar of het verstandig is is een tweede. Wat wil je bereiken, in wat voor toepassing denk je dit nodig te hebben?
 
Ik kan het gebruik niet inschatten, maar mogelijk kun je beter gebruik maken van de $server variabele als je wil weten hoe het script heet dat momenteel wordt gebruikt
 
Bedankt voor jullie reacties

Ik heb een mobiele en standaard website:

website/mobiel/test.html en
website/test.html

Die worden gevoed met hetzelfde content (door include > bijvoorbeeld bestand test-content.php ) .
In dit content staat een link , voorbeeld :
<a href=\"http://website/nieuws.html\"> klik hier </a>


afh. van de url (pagina) wil ik naar website/mobiel/nieuws.html of website/nieuws.html)

dus is website/mobiel/test.htm ga naar:
<a href=\"http://www.website/mobiel/nieuws.html\"> klik hier </a>

anders naar
<a href=\"http://www.website/nieuws-html\"> klik hier </a>

En klopt met $server variabele krijg je een oplossing.
 
Laatst bewerkt:
Wat mist er nog aan als je:

$_server['php_self'] gebruikt?

let wel op dat je deze variabele benaderd via

PHP:
htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, "utf-8");

of andere veilige methode om te voorkomen dat via injectie de pagina wordt aangevallen
 
Als je zelf bezig gaat om een routing component te bouwen kun je je net zo goed gaan verdiepen in een PHP framework.

Bijvoorbeeld Silex, de lichtgewicht variant van Symfony
 
Code injection werkt niet alleen met SQL. Er zijn een aantal aanvallen bekend waarbij mensen de URL manipuleren of een pagina die bedoeld is als include op een andere server includen in een lokaal script. Afhankelijk van hoe je de code aanroept kan op die manier code meegegeven worden aan de aangeroepen server.

Het risico is niet zo heel groot, omdat mensen moeten weten welke files je include en op welke manier.

maak voor de gein eens drie files:

waar.php
PHP:
<?php
echo $_SERVER['PHP_SELF'];
?>

test.php
PHP:
<?php
include("waar.php");
?>

en:

<br>test<br>.php
PHP:
<?php
include("waar.php");
?>

roep vervolgens de laatste 2 aan:

localhost/test.php
localhost/<br>test<br>.php

;)
 
Er zijn een aantal aanvallen bekend waarbij mensen de URL manipuleren of een pagina die bedoeld is als include op een andere server includen in een lokaal script. Afhankelijk van hoe je de code aanroept kan op die manier code meegegeven worden aan de aangeroepen server.

Ah, op die manier. Ja dat zou je injection kunnen noemen.

Dat risico heb je alleen als je GPC data in je include gebruikt (en dan helpt sanitizen ook niet echt meer).
Eerlijkgezegd was ik dat alweer vergeten want wie gebruikt er tegenwoordig nog GPC data in een include of require?
 
Fijn , maar ik ben niet zo een PHP wonder.

Ik heb dus:
PHP:
$huidige_url = $_SERVER['REQUEST_URI'];

wat moet ik hiervan maken?
 
ik denk dat je dit wil?
PHP:
if (preg_match('%^/mobiel/%i', $_SERVER['REQUEST_URI']))
{
	echo "mobiele site";
}
 
Bedankt zou kunnen, jij gaat uit van de map /mobiel/

Ik heb nu

PHP:
$huidige_url = $_SERVER['REQUEST_URI'];
$map = strpos("/mobiel/",$huidige_url );
if ($huidige_url == '/mobiel/nieuws.html'){
  echo "Zie<a href=\"http://www.mijnsite.nl/mobiel/test.html\"> hier </a>voor meer informatie";
} 
else { // geen mobiel   nieuws.html
 echo "Zie<a href=\"http://www.mijnsite.nl/test.html\"> hier </a>voor meer informatie";
}

dus afh. van in de de mobiele versie (/mobiel/) of niet ga naar...
 
Laatst bewerkt:
Als je niet zo'n PHP wonder bent dan zou ik dt niet zelf gaan zitten doen, zeker niet met regular expressions (wat je hier ook helemaal niet wilt).

Kijk eerst eens nar bestaande frameworks, dus hebben al dit gedoe al uitgezocht.

dus afh. van in de de mobiele versie (/mobiel/) of niet ga naar...

daar ga je al, het onderscheid tussen mobiel en niet-mobiel maak je niet in de URL, maar in de domeinnaam of via de clientstring die de browser doorgeeft (want het gaat tegenwoordig meer om de schermafmeting dan om wat de browser ondersteunt)
 
Het werkt in elk geval , die tip gaf Tha devil me ook al van die frameworks , moet ik eens gaan bekijken.

Schermafmetingen is hier ff niet van toeppassing gaat me om de URL ,
verder daar kun je niet veel meer mee de afm. in px van mobiele schermen worden steeds groter.
 
Schermafmetingen is hier ff niet van toeppassing gaat me om de URL ,

Het gaat *jou* om de URL, maar dat is de oplossing die jij bedacht hebt omdat je geen andere makkelijke manier kon vinden. De juiste manier is om naar de browserstring te kijken. Daaraan kun je mobiele browsers herkenenn en volkomen los van de URL bepalen dat je de mobiele content moet hebben. Dat is eenvoudiger dan twee aparte URL's onderhouden en je voorkomt het irritante probleem dat google niet weet dat je site mobiel is en hem uitlevert aan PC's (of de PC-versie aan een mobiel), waardoor je bezoekers je site niet op kunnen.

Anders gezegd; dit is een standaard probleem waar standaard oplossingen voor bestaan (en ja, bestaande frameworks houden daar ook rekening mee)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan