Citat:
Ursprungligen postat av eg0master
Citat:
Ursprungligen postat av koala
Det är sant eg0master... samma fel finns på buzz.bazooka.se när man klickar på astronauten, och fanns på min hemsida pga att webhotellet använde en märklig version av PHP (buggen uppstod inte på min egen server). Jag misstänker att det kan vara precis samma bugg i detta fall också. PHP-versionen är möjligen inte 4.2.2?
|
Exakt, hur gör du för att felet skall uppstå?
Om man bygger upp länken själv lär man ju knappast få problemet...
|
När jag fick problemet byggde jag inte upp varje länk själv, utan jag gjorde något liknande:
Kod:
echo '<a href="'.QueryString::set('csf',$visual_style).'" title="'.$skinTitle.'">';
Detta för att jag tyckte det var bekvämt att låta en klass hålla kolla på alla QueryString-variabler som skulle följa med i varje länk.
En bit av klassen (som jag naturligtvis också gjort):
Kod:
class QueryString
{
function set ($var, $val='') {
global $goodversion; // true, om PHP-version > 4.3.0
$str = '?'.$_SERVER['QUERY_STRING'];
if (is_array($var)) {
if (isset($val)) {
// möjligen notis
}
foreach ($var as $k => $v) {
if (!isset($_GET[$k])) {
$str.='&'.$k.'='.$v;
} else {
if ($goodversion) {
$str = preg_replace("/($k=)[^&]*/", "\${1}".$v, $str);
} else {
$str = preg_replace("/$k=[^&]*/", "", $str);
$str .= '&'.$k.'='.$v;
}
}
}
} else {
if (is_numeric($val)) {
$val=(string)$val;
}
if (empty($_SERVER['QUERY_STRING'])) {
$str .= $var.'='.$val;
} elseif (!isset($_GET[$var])) {
$str .= '&'.$var.'='.$val;
} else {
if ($goodversion) {
$str = preg_replace("/($var=)[^&]*/", "\${1}".$val, $str);
} else {
$str = preg_replace("/(&|&)$var=[^&]*/", "", $str);
$str .= '&'.$var.'='.$val;
}
}
}
return str_replace('&', '&', $str);
}
// ... fortsättning, fler funktioner som inte används särskilt ofta
Jag använde den här klassen på min hemsida, och det underlättar en pytteliten aning om man har många dynamiska variabler som t ex en lista som ska kunna sorteras efter flera olika regler. Men egentligen är det så sällan detta inträffar att man lika gärna kan skriva ut varje länk manuellt.