2012-09-17 35 views
6

好的我在页面上出现了上述错误,我第一次使用PHP 5.3,并且之前使用过此代码,但从未收到此通知,所以我希望得到一些指导。我看过一些问题,但是当我尝试将解决方案应用于我的代码时,它似乎不起作用。未定义的索引:页面

此代码是纸质混搭的PHP分页脚本,所以如果我能找到答案,它可以帮助其他人也使用此代码并遇到同样的问题。

那块这是生成​​通知代码是这样的 -

$page = mysql_escape_string($_GET['page']); 
if($page){ 
    $start = ($page - 1) * $limit; 
}else{ 
    $start = 0; 
    } 

从我看过有人建议增加isset,因此改变了代码看起来像下面这样做,但我仍然得到同样的错误。

$page = mysql_real_escape_string($_GET['page']); 
if(!isset($page)){ 
    $start = ($page - 1) * $limit; 
}else{ 
    $start = 0; 
    } 

任何意见,将不胜感激。

感谢

斯坦

+0

你应该张贴的错误/发现你从PHP正在接受的,我们有一个更好的机会解决你的问题。 – Nelson

+0

嗨尼尔森感谢您的建议,这是完整的通知:未定义的索引:页面在C:\ wamp \ www \ jobboard_plugin \ jobs \ jobboard.php在线56 – user1678816

回答

3

的“未定义指数”的错误基本上是告诉你,你尝试使用,以得到一个数组的东西没有匹配元素的索引。

在这种情况下,问题出现在您拨打isset()的上方。您的$_GET阵列中未定义索引'page'。所以,你需要的,如果$_GET['page']设置为先检查:

if (isset($_GET['page'])) { 
    $page = mysql_real_escape_string($_GET['page']); 
    // do more stuff 
} 
+0

非常感谢, – user1678816

0

的错误是你的第一个行 做

$page = isset($_GET['page']) ? mysql_real_escape_string($_GET['page']) : 0; 
+0

工作完美,谢谢我将突出显示为4分钟。 – user1678816

+0

嗨,我有点头像我看起来不错,但分页没有起作用,虽然它删除了通知。 – user1678816

0

在你的代码请检查是否页面没有设置,然后使用页面,导致同样的通知。只需遥控感叹号即可。试试这个:

$page = mysql_real_escape_string($_GET['page']); 
if(isset($page)){ 
    $start = ($page - 1) * $limit; 
}else{ 
    $start = 0; 
} 
+0

嗨,谢谢,我添加了一段代码,然后它保持相同的通知,但也返回了以下内容:警告:mysql_fetch_array()期望参数1是资源,布尔在C:\ wamp中给出\ www \ jobboard_plugin \ jobs \ jobboard.php在线172 – user1678816

+0

这涉及到这段代码:while($ row = mysql_fetch_array($ result)) – user1678816

+0

这听起来像是一段不同的代码。你可以放置一个如果你周围,如:if($ result) –

0

虽然我不能看到它在你的代码,我愿意打赌,你在你的代码中的空白变量$_GET['page']。当您执行分页时,如果使用<a href="somePage.php?page=4样式的链接,则需要将变量附加到锚标记。

检查您的链接,以确保您保持始终将其传回。

当您尝试访问不存在的数组元素时出现错误消息undefined index - 在这种情况下,它几乎可以肯定是$_GET阵列。

-1

你应该做这样的

if(isset($_GET['page']){ 
    $page = mysql_real_escape_string($_GET['page']); 
    if(!isset($page)){ 
    $start = ($page - 1) * $limit; 
    }else{ 
    $start = 0; 
    } 
} 

Undefined index: page是指某些特定array错误。在你的代码中,indexpage的数组是$_GET,所以它应该是你的代码的第一行,需要一些保护。

+0

根据你的代码;如果没有设置$ _GET ['page'],那么$ start就会变得越来越近。可能会造成麻烦。 –

+0

这不是海报的问题。他指的是未定义索引的错误,这里是答案。如果$ start是你的担心,那么你可能要担心他的整个项目:) – Deepak

+0

这个具体如果其他结构确保$ start将被设置。你的代码打破了这个约定。如果我们真的想确保通知不会显示,我们应该建议他在他的页面上放置出口或死亡();) –

0

我得到了一些问题..这是我得到的最好和最短的解决方案..

$page = (isset($_GET["page"]) ? $_GET["page"]:$config["per_page"] =''); 

$page = (isset($_GET['page'])) ? $_GET['page'] : 0; 
0

希望这将有助于

<?php 
# default page 
$default = 'home.php'; 

# set document root path 
$base = $_SERVER['DOCUMENT_ROOT'].'/redirect/'; 

# list of all site pages + the id they will be called by 
$pages = array('home' => 'home.php','about' => 'about.php','contact' => 'contact.php'); 
if (isset($_GET['page'])) { 
    $page = mysql_real_escape_string($_GET['page']); 
if(array_key_exists($_GET['page'], $pages)) 
{ 
foreach($pages as $pageid => $pagename) { 
if($_GET['page'] == $pageid && file_exists($base.$pagename)) 
{ 
      /* if somebody's making a request for ?page=xxx and 
      the page exists in the $pages array, we display it 
      checking first it also exists as a page on the server */ 
      include $base.$pagename; 
     } 
    } // end foreach 
} 
else { 
      /* if the page isn't listed in $pages, or there's no ?page=xxx request 
      we show the default page, again we'll also just make sure it exists as a file 
      on the server */ 
      if(file_exists($base.$default)) include $base.$default; 
} 
} else { 
    header ("Location: index.php?page=home"); 
} 


?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>My Website</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<body> 
<div style="height:50px;border:1px solid #000;margin-bottom:10px"> 

</div> 

<div style="float:left;width:15%;border:1px solid #000"> 
<ul style="margin-left:10px;list-style-type:none"> 
    <li><a href="index.php?page=home">Home</a></li> 
    <li><a href="index.php?page=about">About</a></li> 
    <li><a href="index.php?page=contact">Contact</a></li> 
</ul> 
</div> 

<div style="float:right;width:80%;border:1px solid #000"> 
    <div style="padding:4px"> 
    <!-- content here --> 
    </div> 
</div> 
</body> 
</html> 
+1

您应该在文本中解释您已修复的问题,否则您的答案可能会被删除。 。 –