2 / 2 / 0
Регистрация: 09.02.2018
Сообщений: 140
1

как работает код

23.02.2020, 13:51. Показов 308. Ответов 8
Метки php (Все метки)

Объясните как работает код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 if($_SERVER['SCRIPT_NAME']=='index.php'){
     printPage('index.php',$database);
 }elseif($_SERVER['SCRIPT_NAME'] == 'bytovka.php'){
     printPage('bytovka.php',$database);
 }elseif($_SERVER['SCRIPT_NAME']=='catalog.php'){
     printPage('catalog.php',$database);
 }
 
 
 function printPage($url_key,&$database){
     $data=searchDate($database,'index.php');
     if(!empty($data) && file_exists(PATH_TPL.$data['tpl'])){
         include_once(PATH_TPL .$data['tpl']);
     }else{
         die('в базе данных нет данных для вызываемой страницы');
     }
 
 }
?>

заранее спасибо
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2020, 13:51
Ответы с готовыми решениями:

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт...

Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код
Здравствуйте, столкнулся с такой проблемой. Код выполняемый из студии с пометкой debag, работает не...

Как работает код?
Задание: Определить, что выведет программа. Код выводит: 1 2 3 4 Всё! #Почему выводится...

Как работает код
Помогите разобраться в чужом коде (практические навыки в прологе отсутствуют полностью). Особенно...

8
291 / 165 / 72
Регистрация: 04.10.2016
Сообщений: 690
23.02.2020, 14:18 2
Цитата Сообщение от sisi11 Посмотреть сообщение
Объясните как работает код
проверяется текущий путь скрипта index/bytovka/catalog (2-8 строчка) - но тут думаю есть проблема.
предполагается, что надо проверить 3 скрипта.

если один из вариантов верен, то запускается функция (по ее названию) - вывод страницы (11 строчка).
далее ищет эта функция в другой какие то данные и почему то в скрипте index (строчка 12)
c проверкой полученных данных и наличие в них template (строчка 13)
по указанному пути, и, соответственно, инклудит (строчка 14).
если неудачно, то убивает выполнение скрипта (строчка 16).
0
338 / 159 / 88
Регистрация: 16.01.2020
Сообщений: 771
23.02.2020, 14:55 3
1) вы уверены, что $_SERVER['SCRIPT_NAME'] == 'index.php', а не '/index.php'?
2) searchDate ищет не дату, а данные, я бы ее переименовал в searchDatas, чтобы с толку не сбивала
3) зачем $url_key в printPage, если он совсем не используется
4) зачем параметр $database там же, если он не меняется.
5) из пунктов 3 и 4 получается, что функция print_page вообще бесполезна. сам код выглядит как попытка одеть штаны через голову.
6) в связи с пунктом 5 рекомендовал вместо вашего скрипта бы нечто подобное:
PHP
1
2
3
4
5
6
7
$data=searchDatas(trim($_SERVER['script_name'], '/'));
if(!empty($data) && file_exists(PATH_TPL.$data['tpl'])){
    include_once(PATH_TPL .$data['tpl']);
}else{
    header("HTTP/1.0 404 Not Found");
    header('Status: 404 Not Found');
}
Добавлено через 4 минуты
а вообще, по возможности конечно, рискните использовать mvc

Добавлено через 5 минут
Цитата Сообщение от vinikon Посмотреть сообщение
рискните использовать mvc
имеется в виду подгружать контент не по названию скрипта, а исходя из значений $_SERVER['REQUEST_URI']
0
Заблокирован
23.02.2020, 15:09 4
Цитата Сообщение от vinikon Посмотреть сообщение
header("HTTP/1.0 404 Not Found");
    header('Status: 404 Not Found');
PHP
1
http_response_code(404);
Цитата Сообщение от vinikon Посмотреть сообщение
$_SERVER['REQUEST_URI']
я бы посоветовал
PHP
1
$_SERVER['QUERY_STRING']
0
338 / 159 / 88
Регистрация: 16.01.2020
Сообщений: 771
23.02.2020, 15:18 5
не возражаю. варианты не меняют сути, с одной поправкой:
для h t t p : //domain.com/first/second/three?param1=value1&param2=value2&param3=value3
$_SERVER['REQUEST_URI'] = /first/second/three?param1=value1&param2=value2&param3=value3
$_SERVER['QUERY_STRING'] = param1=value1&param2=value2&param3=value3
$_SERVER['REQUEST_URI'] информативнее
0
Заблокирован
23.02.2020, 15:36 6
vinikon, кто Вам такое сказал?

h t t p : //domain.com/first/second/three?param1=value1&param2=value2&param3=value3

$_SERVER['REQUEST_URI'] = /first/second/three?param1=value1¶m2=value2¶m3=value3
$_SERVER['QUERY_STRING'] = first/second/three¶m1=value1¶m2=value2¶m3=value3
0
Невнимательный
2286 / 653 / 234
Регистрация: 08.02.2013
Сообщений: 4,625
Записей в блоге: 2
23.02.2020, 16:06 7
Цитата Сообщение от Verolomstvo Посмотреть сообщение
$_SERVER['QUERY_STRING'] = first/second/three
Вероятно mod_rewrite постарался
The whole data string might look something like:
name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey
You'll sometimes also see this type of string appended to a URL. When that is done, the server puts that string into the environment variable called QUERY_STRING.
0
Заблокирован
23.02.2020, 16:21 8
Цитата Сообщение от x_lab Посмотреть сообщение
Вероятно mod_rewrite постарался
есть такое
0
1091 / 810 / 201
Регистрация: 01.10.2018
Сообщений: 3,169
23.02.2020, 17:34 9
Цитата Сообщение от Verolomstvo Посмотреть сообщение
я бы посоветовал $_SERVER['QUERY_STRING']
А я бы нет.

Добавлено через 10 минут
У QUERY_STRING меньше шансов быть доступной в скрипте.

Есть и другие даже более существенные проблемы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2020, 17:34
Помогаю со студенческими работами здесь

Как работает код?
while (!(cin &gt;&gt; a) || (cin.peek() != '\n')) { cin.clear(); while (cin.get() != '\n') ...

Как работает код?
Я хочу знать, как работает этот код, может объяснить, с комментариями, пожалуйста. Задание: В...

Как работает код
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Как работает код?
Здравствуйте. Подскажите пожалуйста как работает код. Dim x(3), y(3), i, i1 As Integer Dim...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru