Check inbouwen om het toevoegen aan url te stoppen (talen)
Voorbeeld:
Code (php)
1
2
3
4
2
3
4
<?
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
<a href="<? echo $actual_link; ?>?lang=en" class="btn-selector">EN</a>
?>
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
<a href="<? echo $actual_link; ?>?lang=en" class="btn-selector">EN</a>
?>
Bij 1 klik werkt alles en krijg je website.nl?lang=en maar wanneer je 2 keer klikt krijg je website.nl?lang=en?lang=en
Hoe kan ik dit voorkomen?
Verder mogen variabelen best wel buiten quotes.
Zelfde verhaal als ik dat weghaal.
Code (php)
1
2
3
2
3
<?php
$actual_link = 'http://' . $_SERVER['HTTP_HOST'] . strtok($_SERVER['REQUEST_URI'], '?');
?>
$actual_link = 'http://' . $_SERVER['HTTP_HOST'] . strtok($_SERVER['REQUEST_URI'], '?');
?>
Top, ik was ook al bij strtok uitgekomen maar het werkte niet bij mij. Blijkbaar moet http_host er ook nog bij. Nu werkt hij, thanks.
Edit:
Om de leesbaarheid te vergroten is het niet nodig om het voorlaatste bericht te quoten. Ik heb deze daarom verwijderd.
Gewijzigd op 07/02/2017 11:44:15 door - Ariën -
Daarnaast, is er niet het gevaar dat andere informatie die in het querystring-deel wordt doorgegeven op deze manier wordt weggekieperd?
Tevens, misschien is het handig om een soort van functie of methode te hebben voor de opbouw van een URL, want het komt een beetje over alsof dat het probleem is (weinig tot geen controle over de uiteindelijke vorm van een (interne) link).
En tot slot, mogelijk wil je een andere oplossingsrichting gebruiken: een waarbij de taalkeuze vastligt door de URL (denk aan een subdirectory, bijvoorbeeld /en/) of door middel van een cookie (waarin de voorkeurstaal staat opgeslagen).
Voorlopig werkt dit prima voor me, dus ik ga het niet veel moeilijker maken dan het hoeft te zijn.
Edit:
Om de leesbaarheid te vergroten is het niet nodig om het voorlaatste bericht te quoten. Ik heb deze daarom verwijderd.
Gewijzigd op 07/02/2017 11:43:05 door - Ariën -