Неожиданный T_ELSEIF
$pages = array("grac", "zamknij", "dolaczyc");
$pagesid = array("showNews", "showThread", "showProfile");
foreach ($pagesid as $page) {
if (isset($_GET[$page])) {
include('sobra/'.$page.'.php');
}
}
// just pages
elseif (in_array($_GET['page'], $pages)) {
include("$_GET[page].php");
}
// error
else include('error.php');
дает:
Ошибка анализа: синтаксическая ошибка, неожиданный T_ELSEIF в C:\WAMP\www\sdgag\index.php в строке 33
Это должно сработать, я думаю.. какая проблема может быть?
Спасибо
Ответы
Ответ 1
Возможно, другой подход. Сделайте свою логику и определите, какую страницу вы хотите включить в конечном итоге. После того, как вся логика была сделана, включите свою определенную страницу.
Следующее не проверено и может содержать ошибки. Дайте мне знать, и я обновлю код.
<?php
// Predefined list of acceptable pages
$pages = array("one","two","three");
$pagesid = array("four","five","six");
// Gather any user-defined page request
$desPage = trim($_GET["page"]);
// Assume they are wrong, and need to see error.php
$pageToLoad = "error.php";
// If the user request is not empty
if (!empty($desPage)) {
if (in_array($desPage,$pages)) {
$pageToLoad = $desPage . ".php";
}
} else {
// User request is empty, check other variables
foreach ($pagesid as $pageid) {
if (isset($_GET[$pageid])) {
$pageToLoad = $pageid . ".php";
}
}
}
// Show output page
include($pageToLoad);
?>
Ответ 2
elseif и else не привязаны к if, вы поместили их вне блока цикла foreach.
Ответ 3
Существует одна закрывающая скобка перед else.
Он должен читать:
$pages = array("grac", "zamknij", "dolaczyc");
$pagesid = array("showNews", "showThread", "showProfile");
foreach ($pagesid as $page) {
if (isset($_GET[$page])) {
include('sobra/'.$page.'.php');
}
// just pages
else if (in_array($_GET['page'], $pages)) {
include("$_GET[page].php");
}
// error
else include('error.php');
}
Если вы правильно отпечатаете исходный код, такие ошибки появляются быстро, и вы можете исправить их самостоятельно.
Ответ 4
$pages = array('grac', 'zamknij', 'dolaczyc');
$pagesid = array('showNews', 'showThread', 'showProfile');
foreach ($pagesid as $page) {
if (isset($_GET[$page])) {
include('sobra/'.$page.'.php');
}
// just pages
else if (in_array($_GET['page'], $pages)) {
include($_GET[$page].'.php'); // fixed missing $, restylized to match previous style
}
else include('error.php');
}