2011-08-07 111 views
1

我不认为我在前面的问题中充分解释了自己。404如果没有找到记录 - 如何检查记录是否存在?

我有一个页面显示各种元素,即使它从数据库调用的id不存在或被删除(这引发了各种丑陋的错误,随着搜索引擎继续列出不存在的页面)。

可以修改如下所示发送的网页代码中的第一部分404(或至少projecterror.php其中有404头),如果$ id不存在吗?非常感谢!

<?php 
include_once("includes/linkmysql.php"); 
$adda=$_GET['a']; 
$cont=$_GET['c']; 
$select="SELECT * FROM projects where id='$id'"; 
$qselect = mysql_query($select); 
while ($row = mysql_fetch_array($qselect)) { 
+0

种可能的重复[重定向当数据库ID不匹配页](http://stackoverflow.com/questions/6974691/redirect-page-when-database-id-is-not-matched) – David

+0

如果你想澄清你上一个问题,请随时编辑它。有人已经试图帮助你。 – David

+0

好吧,我不知道编辑是可能的,谢谢你的抬头。 – JoeW

回答

2

因为只有依靠HTTP错误代码有时会有点过于暧昧的,我建议你包括在除了一般的HTTP状态代码的XML/JSON响应消息中的错误。 可以提供更好的记录和由于错误消息中详细说明它会大大缩短调试时间这样,/为您提供了更清晰地呈现错误的根源的机会。

0
 
include_once("includes/linkmysql.php"); 
$adda=$_GET['a']; 
$cont=$_GET['c']; 
$select="SELECT * FROM projects where id='$id'"; 
$qselect = mysql_query($select); 
if(!mysql_num_rows($qselect)){ 
    header($_SERVER['HTTP_PROTOCOL']. '404 Entry Not Found'); 
    //print other info 
} 
else{ 
//do usual code 

} 

1
<?php 
include_once("includes/linkmysql.php"); 
$adda=$_GET['a']; 
$cont=$_GET['c']; 
$select="SELECT * FROM projects where id='$id'"; 
$qselect = mysql_query($select); 
if(mysql_num_rows($qselect) === 0) 
{ 
    header("HTTP/1.1 301 Moved Permanently"); 
    header('Location: http://examplesite.domain/errorpage') ; 
    exit; 
} 
while ($row = mysql_fetch_array($qselect)) { 

这些都是头码@Vivek戈埃尔给你你问

+0

该解决方案导致有效条目正确显示页面,但不存在的网页显示以下错误: '警告:不能更改头信息 - 头已经发出(输出开始/home/website/public_html/header1.php :在/home/website/public_html/header1.php在线22' '警告14):无法修改标题信息 - 在已经(输出发送头开始在/home/website/public_html/header1.php:14) /home/website/public_html/header1.php线23' 线22和23是在上述的例子中的两个标题行。 – JoeW

+2

这需要在代码中更高。头文件需要在任何其他信息(例如原始文本或回声)之前发送。 –

+0

上面的代码位于header.php页面的顶部,第一个被称为显示的东西。我无法弄清楚这一点! – JoeW

0

没有人在上面的答案回答它的mysqli为mysqli的使用下面的代码,如果记录中的其他问题在数据库中找不到

<?php 
ob_start(); 
include_once("includes/config.php")//mysqli config; 
$adda=$_GET['a']; 
$cont=$_GET['c']; 
$select="SELECT * FROM projects where id='$id'"; 
$result = $conn->query($select) or die("Cannot write"); 
$numrows = $result->num_rows; 
if($numrows === 0) 
{ 
    ob_end_clean(); 
    header("HTTP/1.1 301 Moved Permanently"); 
    header('Location: http://examplesite.domain/errorpage') ; 
    exit(); 
} 
while ($row = mysql_fetch_array($qselect)) { 

问候 www.psychocodes.in

相关问题