Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Переадресация и прочие вопросы с заголовком 404/410

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
winddancer
Отправлено: 05 Мая, 2016 - 14:55:41
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




День добрый. Назрел вопрос, который не могу решить сам. Думаю многим людям тоже будет интересно узнать ответ, особенно, если они делают собственный велосипед.

У меня имеется 3 таблицы из которых подгружается контент или url.
1. Страницы
2. Новости
3. Категории (от туда ссылки подгружаются).

Пытаюсь сделать проверку наличия $_GET['page'] = 'url' в этих таблицах.
В чем загвоздка.
Требуется как-то мне перебрать наличие хоть в одной, чтобы выдавался контент и отсутствие упоминания, чтобы переадресовывало на страницу 404. Как только я не переставлял if-else...не получается.

И по поводу 410. Сейчас используются данные заголовки или все рулят на 404?

Заранее благодарю за ответ. +100 к карме

(Отредактировано автором: 05 Мая, 2016 - 14:56:20)

 
 Top
kotyara1979
Отправлено: 06 Мая, 2016 - 07:38:45
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




Приведите код, который обрабатывает эту задачу в нынешнем виде.


-----
Сделать можно все. Главное одеть каску.
 
 Top
winddancer
Отправлено: 06 Мая, 2016 - 21:50:57
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




kotyara1979 пишет:
Приведите код, который обрабатывает эту задачу в нынешнем виде.


PHP:
скопировать код в буфер обмена
  1. if(($content_category_url != $display) && ($content_site_url != $display)) {
  2.                 header("Location: http://localhost/qwe/404");
  3.         }


Конечно могу скинуть и другие варианты моих попыток, но все они смешны)

(Отредактировано автором: 06 Мая, 2016 - 21:51:20)

 
 Top
kotyara1979
Отправлено: 06 Мая, 2016 - 23:31:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




Этот фрагмент ни о чем не говорит. Как формируются переменные и что они из себя представляют?


-----
Сделать можно все. Главное одеть каску.
 
 Top
winddancer
Отправлено: 06 Мая, 2016 - 23:42:44
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




kotyara1979 пишет:
Этот фрагмент ни о чем не говорит. Как формируются переменные и что они из себя представляют?


PHP:
скопировать код в буфер обмена
  1.  
  2. $display = $_GET['page'];
  3.  
  4. $connect_site = mysql_query ("SELECT * FROM `$menu_site` WHERE `url` = '$display'");
  5. $connect_cat = mysql_query ("SELECT * FROM `$category` WHERE `url` = '$display'");
  6. $content_site_array = mysql_fetch_array($connect_site);
  7. $content_category_array = mysql_fetch_array($connect_cat);
  8. $content_site_url                       = $content_site_array['url'];
  9. $content_category_url           = $content_category_array['url'];


Извлекаем на сайте переменную GET['page'], сравниваем ее с наличием в бд и если она не равна - врубаем переадресацию на 404.

Вроде все, или что-то еще?
 
 Top
Viper
Отправлено: 07 Мая, 2016 - 03:28:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




PHP:
скопировать код в буфер обмена
  1. echo '<pre>';
  2. var_dump($content_category_url) . "\n";
  3. var_dump($content_site_url) . "\n";
  4. var_dump($display);
  5. echo '</pre>';

что показывает?

(Отредактировано автором: 07 Мая, 2016 - 03:29:21)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
winddancer
Отправлено: 07 Мая, 2016 - 10:07:07
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Viper пишет:
PHP:
скопировать код в буфер обмена
  1. echo '<pre>';
  2. var_dump($content_category_url) . "\n";
  3. var_dump($content_site_url) . "\n";
  4. var_dump($display);
  5. echo '</pre>';

что показывает?


Не принимаем в счет главную страницу.
Все страницы кроме страниц с новостями (не ту версию дал скрипта) дает переменную, и только в новостях отвечает нулем (Null)

Ниже + 2 строчки кода. Прошу простить за невнимательность.

PHP:
скопировать код в буфер обмена
  1.  
  2. $display = $_GET['page'];
  3.  
  4. $connect_site = mysql_query ("SELECT * FROM `$menu_site` WHERE `url` = '$display'");
  5. $connect_cat = mysql_query ("SELECT * FROM `$category` WHERE `url` = '$display'");
  6. $connect_news = mysql_query ("SELECT * FROM `$news_blog` WHERE `url` = '$display'");
  7. $content_site_array = mysql_fetch_array($connect_site);
  8. $content_category_array = mysql_fetch_array($connect_cat);
  9. $content_news_array = mysql_fetch_array($connect_news);
  10. $content_site_url                       = $content_site_array['url'];
  11. $content_category_url           = $content_category_array['url'];
  12. $content_news_url                       = $content_news_array['url'];

(Отредактировано автором: 07 Мая, 2016 - 10:40:43)

 
 Top
Viper
Отправлено: 07 Мая, 2016 - 10:44:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




winddancer пишет:
Не принимаем в счет главную страницу.
я просил результат, а не очередную порцию кода.

PHP:
скопировать код в буфер обмена
  1. if(($content_category_url != $display) && ($content_site_url != $display))
каким образом у вас одновременно могут быть одинаковые url для категории и для контента? Можете объяснить чудеса?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
winddancer
Отправлено: 07 Мая, 2016 - 12:10:52
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Viper пишет:
winddancer пишет:
Не принимаем в счет главную страницу.
я просил результат, а не очередную порцию кода.

PHP:
скопировать код в буфер обмена
  1. if(($content_category_url != $display) && ($content_site_url != $display))
каким образом у вас одновременно могут быть одинаковые url для категории и для контента? Можете объяснить чудеса?


Понимаю, что никаким чудом, поэтому сюда обратился. Не могу построить логику для 3-х переменных.

Результаты в строках:
1. String
2. Null
3. String

А в итоге должно быть if "нету ни в одной переменной" тогда header.....
 
 Top
Viper
Отправлено: 07 Мая, 2016 - 15:38:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




В общем так.
1. Отдавайте 404
2. if ($content_category_url != $display || $content_site_url != $display)
3. Для $display задайте значение по умолчанию + необходимые проверки.

PS! В следующий раз когда вас просят var_dump(var_export) или echo, приводите полностью вывод результата. Вот как есть, а то вы опять привели не то что нужно.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
winddancer
Отправлено: 08 Мая, 2016 - 08:49:14
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Viper пишет:
В общем так.
1. Отдавайте 404
2. if ($content_category_url != $display || $content_site_url != $display)
3. Для $display задайте значение по умолчанию + необходимые проверки.

PS! В следующий раз когда вас просят var_dump(var_export) или echo, приводите полностью вывод результата. Вот как есть, а то вы опять привели не то что нужно.


Благодарю. Буду делать. Закатив глазки
 
 Top
winddancer
Отправлено: 08 Мая, 2016 - 14:49:50
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Viper пишет:
В общем так.
1. Отдавайте 404
2. if ($content_category_url != $display || $content_site_url != $display)
3. Для $display задайте значение по умолчанию + необходимые проверки.

PS! В следующий раз когда вас просят var_dump(var_export) или echo, приводите полностью вывод результата. Вот как есть, а то вы опять привели не то что нужно.


В итоге благодаря Вам получилось следующее.
PHP:
скопировать код в буфер обмена
  1. if(isset ($display)){
  2.         if($content_category_url != $display || $content_site_url != $display || $content_news_url != $display){
  3.                 if($content_category_url == $display && $content_site_url == $display){
  4.                         //header("HTTP/1.0 404 Not Found");
  5.                         include "page/404.php";
  6.                         echo '200';
  7.                 }
  8.                 else if($content_category_url == $display && $content_news_url == $display){
  9.                         //header("HTTP/1.0 404 Not Found");
  10.                         echo '200';
  11.                 }
  12.                 else{
  13.                         echo '404';
  14.                 }
  15.         }
  16. }


Спасибо большое.
Хотя теперь назрел вопрос. А как же тогда 410 втыкать? Выгрузку из бд делать с отдельным значением, мол было перенесено?
 
 Top
Viper
Отправлено: 08 Мая, 2016 - 15:05:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




забудьте про 410
404 или 302 для поисковиков.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
winddancer
Отправлено: 08 Мая, 2016 - 15:20:16
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Viper пишет:
забудьте про 410
404 или 302 для поисковиков.


Благодарю еще раз.
Отдельное благодарю за var_dump, как-то протупил. Теперь буду пользоваться всегда, когда будет дело с переменными)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB