ОК, поэтому у меня есть функция, которая генерирует предыдущие/следующие ссылки на основе идентификатора страницы, и она работала раньше, но теперь это не так. Все необходимые переменные, используемые в инструкции switch, определяются перед функциями, которые их называют. Вот функция для генерации ссылки:Вызов функции не передается переменной
function generateNavbar(){
//Name and number
$name = preg_replace("#[\d]#", "", strval($_GET["id"]));
$num = preg_replace("#[^\d]#", "", strval($_GET["id"]));
$maxNum = getMaxPage($name);
//Print the nav links
echo "<br><br><center><b>";
if(intval($num) > 1) echo "<a href=\"?id=" . $name . (intval($num) - 1) . "\"><< PREV</a>";
if(intval($num) > 1 && intval($num) < intval($maxNum)) echo " | ";
if(intval($num) < intval($maxNum)) echo "<a href=\"?id=" . $name . (intval($num) + 1) . "\">NEXT >></a>";
echo "</b></center>";
};
А вот функция, чтобы получить максимальное значение:
function getMaxPage($name){
//Get max value
switch($name){
case "codeSquirrel":
return $numSquirrel;
break;
case "strPhobia":
return $numPhobia;
break;
case "strDouble":
return $numDouble;
break;
default:
return 0;
break;
};
};
Код для getMaxPage()
был первоначально внутри generateNavbar
, но когда мне нужно использовать тот же код в других функциях, которые используют номер страницы, он перестает работать. Это по какой-то причине, функции не хотят отправлять $name
, поэтому он всегда возвращает 0. getMaxPage()
определяется перед всеми функциями, которые его называют. Что я делаю не так?
Если он возвращает 0, то '$ name' не является ни одним из ваших случаев переключения. –
Поскольку мы понятия не имеем, что '$ _GET ['id']' содержит, это довольно сложно сказать. Скорее всего, он не включает 'codeSquirrel',' strPhobia' или 'strDouble', если вы удалите все числа. – h2ooooooo
..также ** ваш код открыт для внедрения XSS - НИКОГДА не доверяйте пользовательскому вводу! **. Чтобы просто принять '$ _GET ['id']' и вывести его в HTML, это означает, что люди могут помещать туда любой HTML (или javascript) и выполнять его для других пользователей, нажимая на ссылку. Кодировать HTML. – h2ooooooo