Хак Страницы как на кинопоиске

Maxim

Знающий
Команда форума

Maxim

Знающий
Команда форума
Не в сети
Изменить сам запрос к бд.
Запрос:
$row = $db->query("SELECT * FROM ".PREFIX."_post as post INNER JOIN ".PREFIX."_post_extras extra on post.id = extra.news_id WHERE post.id='$id_news'");

и затем в коде запрашиваем переменную news_read
 
Последнее редактирование:

hent4b

Проверенный

hent4b

Проверенный
Не в сети
Изменить сам запрос к бд.
Запрос:
$row = $db->query("SELECT * FROM ".PREFIX."_post as post INNER JOIN ".PREFIX."_post_extras extra on post.id = extra.news_id WHERE post.id='$id_news'");

и затем в коде запрашиваем переменную news_read
а не знаете как сделать реддирект на 404 страницу,если ввести id не существующий новости
 

Maxim

Знающий
Команда форума

Maxim

Знающий
Команда форума
Не в сети
а не знаете как сделать реддирект на 404 страницу,если ввести id не существующий новости
довольно просто, если допустим нет такой новости, то можно спокойно сделать так
Если новость отсутствует:
if(count($row) == 0) {
    header( "HTTP/1.1 404 not exists" );
    header ( 'Location: /index.php' );
}
тут главное выловить ID новости. Если запрос выдал 0 строк, то скрипт выдаст эту ошибку и перенаправит на главную

если допустим нет значения в определённом поле, то тут нужно сделать так
Нет данных в значении:
if(!empty($xf['screens']))
        $screens = $xf['screens'];
    else {
    header( "HTTP/1.1 404 not exists" );
    header ( 'Location: /index.php' );
}
не забываем менять под себя

проблему решил
ты, может и да, а другим наверное будет интересно.
 

hent4b

Проверенный

hent4b

Проверенный
Не в сети
довольно просто, если допустим нет такой новости, то можно спокойно сделать так
Если новость отсутствует:
if(count($row) == 0) {
    header( "HTTP/1.1 404 not exists" );
    header ( 'Location: /index.php' );
}
тут главное выловить ID новости. Если запрос выдал 0 строк, то скрипт выдаст эту ошибку и перенаправит на главную

если допустим нет значения в определённом поле, то тут нужно сделать так
Нет данных в значении:
if(!empty($xf['screens']))
        $screens = $xf['screens'];
    else {
    header( "HTTP/1.1 404 not exists" );
    header ( 'Location: /index.php' );
}
не забываем менять под себя


ты, может и да, а другим наверное будет интересно.
у меня способ легче :D
$tpl->set( '{title}', stripslashes( $row['title'] ) ? $row['title'] : header('Location: /404.html',true, 301) ); // Название
(хоть он и дерьмовый)
 

Maxim

Знающий
Команда форума

Maxim

Знающий
Команда форума
Не в сети
у меня способ легче :D
$tpl->set( '{title}', stripslashes( $row['title'] ) ? $row['title'] : header('Location: /404.html',true, 301) ); // Название
(хоть он и дерьмовый)
не очень хороший способ запихивать перенаправление в шаблонизатор. нужно до него инициировать проверку
 

Maxim

Знающий
Команда форума

Maxim

Знающий
Команда форума
Не в сети
а почему это плохо?
потому что шаблонизатор должен отдавать определённое значение, в случае с отдачей заголовка, сервер возвращает заголовок страницы, а не значение. поэтому проверка должна проходить до шаблонизатора.
 

hent4b

Проверенный

hent4b

Проверенный
Не в сети
потому что шаблонизатор должен отдавать определённое значение, в случае с отдачей заголовка, сервер возвращает заголовок страницы, а не значение. поэтому проверка должна проходить до шаблонизатора.
потому что шаблонизатор должен отдавать определённое значение, в случае с отдачей заголовка, сервер возвращает заголовок страницы, а не значение. поэтому проверка должна проходить до шаблонизатора.
не понимаю шо я делаю не так,сделал так
PHP:
if(count($row) == 0) {

    header( "HTTP/1.1 404 not exists" );

    header ( 'Location: /playerid='$_GET['id_news']'/' );

}
но выдает ошибку
PHP:
ERR_TOO_MANY_REDIRECTS
 

Maxim

Знающий
Команда форума

Maxim

Знающий
Команда форума
Не в сети
@hent4b, извини, из-за работы времени вообще нет ни на что.

позже сделаю нормальный модуль
 
Сверху