Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) 1 [2]  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Если не существует такого GET параметра, то перенаправь на 404 страницу
Dno  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 65
Пользователь №: 40467
На форуме: 2 года, 1 месяц, 1 день
Карма: 2




killer8080

Так получаеться инклюдиться файл 404.php в индексный файл.


<html>
<
head>
Заголовки разве не тут? (Уже пришло 200 ОК)
</
head>
<
body>
$file = array('view', 'registration', 'main', 'add');
if (in_array($id, $file) && file_exists("view/$id.php"))
include "view/$id.php";
else
// А тут пытаемся 200 ОК уже поменять на 404.
header("HTTP/1.1 404 Not Found");
</
body>
</
html>


Цитата
Удобней её вынести в отдельный файл

Полностью согласен, есть файл 404.php и в .htaccess прописано ErrorDocument 404 /404.php.

То есть нужен код, если пришло значение GET которого нету в массиве пришли ответ 404 и выведи этот файл.

Это сообщение отредактировал Dno - 4.11.2014 - 22:23
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8735
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 1 день
Карма: 591




Dno
естественно заголовки нужно выводить до контента
В index.php не должно быть html кода, это фронт контроллер, который решает какой контроллер нужно выбрать для обработки запроса. Хотя конечно архитектуры могут быть разными.
Почитай о патерне MVC.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dno  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 65
Пользователь №: 40467
На форуме: 2 года, 1 месяц, 1 день
Карма: 2




Цитата
В index.php не должно быть html кода

Если речь идет о index файле, которую еще называют точкой входа, то там и так ни единого html кода. На данный момент вот весь его код:

define ('DNO',true);

// Подключение конфига
require_once "config.php";

// Подключение контроллера
require_once CONTROLLER;


Вот он и подключает другой index файл, который лежит в представлении/вид/view.

А там в свою очередь получаеться динамичный контаент:

// Но прямо сюда обратиться нельзя. Проверяем константу
defined (DNO) or die 'чтото типо доступ запрещен';
<
html>
<
head>
</
head>
<
body>
// PHP и HTML КОД
</body>
</
html>


Цитата
Почитай о патерне MVC.

Так вот и реализовываю этот MVC :)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dno  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 65
Пользователь №: 40467
На форуме: 2 года, 1 месяц, 1 день
Карма: 2




Что-то у меня не получается. Может кто знает что я делаю не так?

Код пишу такой: (вырезано все лишнее)

// Список разрешенных файлов для подключения
$file = array('view', 'registration', 'main', 'add');

И $id = $_GET['id'];
// Если придет false отправь заголовок 404 и закончи работу скрипта.
<? if(!in_array($id, $file)) header("Status: 404 Not Found"); exit;?>
<!DOCTYPE html>
<
html lang='ru'>
<
head>
</
head>
<
body>
<
div class="main">
<? include 'view/inc/header.php'; ?>

<?
if(in_array($id, $file) && file_exists("view/$id.php")) include "view/$id.php" ?>
</div>
</
body>
</
html>


Т.е. при вводе несуществующего в массиве значения, ответа 404 не приходит.

Это сообщение отредактировал Dno - 5.11.2014 - 00:02
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dno  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 65
Пользователь №: 40467
На форуме: 2 года, 1 месяц, 1 день
Карма: 2




Хотя если послать Location работает правильно, может я статус 404 неправильно посылаю?

Ааа ии да кстати скобки забыл. А то и так и так будет закончена работа скрипта.
<? if(!in_array($id, $file)) {header("Status: 404 Not Found"); exit;}?>


Это сообщение отредактировал Dno - 5.11.2014 - 00:19
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
johniek_comp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



женат на Node.JS
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2478
Пользователь №: 28490
На форуме: 5 лет, 5 месяцев, 10 дней
Карма: -19

Трезвый :
21 год, 10 месяцев, 19 дней


Свернутый текст
ТС молодец, учится, не то что я. Сразу понимает все) + в карму такому новому пользователю!)


--------------------
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) 1 [2]  Ответ в темуСоздание новой темыСоздание опроса