404 если запись не найдена - как проверить, существует ли запись? - PullRequest
1 голос
/ 08 августа 2011

Я не думаю, что объяснил себя адекватно в своем предыдущем вопросе

У меня есть страница, на которой отображаются различные элементы, даже если идентификатор, который он вызывает из базы данных, не существует или был удален (что приводит к появлению всевозможных уродливых ошибок наряду с поисковыми системами, продолжающими перечислять несуществующие страницы),

Можете ли вы изменить первую часть кода страницы, показанного ниже, для отправки 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)) { 

Ответы [ 4 ]

2 голосов
/ 08 августа 2011

Поскольку полагаться только на коды ошибок HTTP иногда может быть слишком неоднозначно, я предлагаю вам включить ошибку в ответное сообщение XML / JSON в дополнение к общему коду статуса HTTP.Таким образом, вы можете обеспечить лучшее ведение журнала, и, поскольку ошибка подробно описана в сообщении, это значительно сократит время отладки / предоставит вам возможность более четко представить источник ошибки.

1 голос
/ 08 августа 2011
<?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 Goel дал вам по другим вопросам, которые вы задали

0 голосов
/ 18 июня 2016

Никто из вышеприведенных ответов не ответил на это в 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)) {

regards www.psychocodes.in

0 голосов
/ 08 августа 2011
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

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...