Beklenmedik T_ELSEIF [kapalı]

3 Cevap php
$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');

gives:
Parse error: syntax error, unexpected T_ELSEIF in C:\WAMP\www\sdgag\index.php on line 33

Bu i .. sorun ne olabilir düşünüyorum çalışması gerekir?

Teşekkürler

3 Cevap

Belki de başka bir yaklaşımdır. Senin mantık yapın, ve sonuçta eklemek istediğiniz sayfa belirler. Mantığını yapıldıktan sonra, sizin tespit sayfası eklemek.

The following is untested, and may contain errors. Let me know, and I'll update the code.

<?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);

?>

Elseif ve else bağlı değildir size foreach döngü bloğunun dışında onları koyduk, eğer.

There is one closing bracket to much before the else.

Bunu şöyle olmalıdır:

$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');
}

If you indent your source code correctly such errors show up fast and you can fix them yourself.