Я более-менее понял суть этих страданий. Ответ на которые я уже дал:
клиент должен был сразу запрашивать file.htm
Вы, конечно же, вместо того чтобы последовать совету, сразу начали его критиковать. Но это дело ваше я не буду настаивать.
Для меня загадкой осталось только одно - а почему в адресной строке-то обязательно должно быть только file.htm?
В качестве ответной любезности удовлетворю ваше любопытство
Куда забавнее, что Вы два месяца ждали
На самом деле все гораздо проще.
Увидев идиотский вопрос, я всегда смотрю историю вопросов, чтобы понять контекст. Это иногда помогает понять даже самых безумных гениев. В вашем случае не помогло.
Да не контроллер же
Ну вам же написали уже несколько раз. За работу со ссылками отвечают не контроллеры.
За это отвечает роутинг.
Именно в настройках роутинга прописывается, какой контроллер вызывать для той или иной сылки.
А уж как оно там внутри организовано - да как угодно
может быть один контроллер и на каталог и на товар
может быть два контроллера, один на показ каталога, а один на карточку товара.
Может быть еще как-то.
Деление не контроллеры в принципе условно. и совершенно не принципиально.
Для себя сделайте один пока, который отвечает за отображение каталога и отдельных товаров
Ну офигеть какая эрудиция :)
Только непонятно, при чем тут json.
У вас просто отличная теоретическая подготовка. Но надо все-таки иногда опускаться из сияющих теоретических высот к грешной земле
может и не привести
Может. Вот только вероятность этого стремится к нулю. Я думаю, даже вы, глядя на этот код, и сами согласитесь, что никакими set_error_handler, set_exception_handler и register_shutdown_function тут и близко не пахнет :)
А вот без установки режима выброса исключений, пиши-не пиши try catch - толку не будет.
Так что давая советы на хабре, рекомендую делать литсо попроще, и вместо сомнительной рекомендации "заворачивать разворачивать", давать более практичную - включить выброс исключений и отображения ошибок. Этого будет, во-первых, достаточно, а во-вторых, не будет приучать к порочной практике использовать трай для вывода ошибок. Таких советов и так слишком много в интернете. Даже в мануале по пхп только в этом году начали исправлять эту ересь.
Поэтому не забудьте потом вынуть $stmt->execute();
Мда, я вижу идеи у вас здравые, а вот с практикой не очень.
Давайте я вам открою один секрет.
Вы совершенно правы, что в действующем проекте никаких выводов ошибок на экран быть не должно. Вот только никакие танцы с приседаниями - "оберните, заверните, обратно удалите" для этого не нужны.
Во-первых, чтобы увидеть исключение, его не нужно ловить - РНР отобразит его и так.
Во-вторых, чтобы видеть ошибки на экране, достаточно добавить всего одну строчку на весь сайт, ini_set('display_errors', 1);
Согласитесь, поменять потом единичку на нолик гораздо проще, чем постоянно заворачивать-разворачивать? :)
А вот для того, чтобы сами исключения возникали, try catch как раз не поможет. Поэтому в случае, если используется устаревшая версия РНР, для mysqli надо добавить строчку
Ну как не критично-то? Человек способен запомнить за один раз только ограниченное количество информации. Вот он и запомнит всю эту ересь из начала статьи. потом вдруг откроет для себя, что если в $_FILES окажется, например "); Delete from users", то никакой инъекции не случится, и перестанет вообще заморачиваться. А все потому что статья написана неграмотным индюком, который ни разу не запускал код, который пишет.
SymphoGraph, ахаха, из всех материалов по SQL инъекциям вы выбрали статью Сенкевича, который опозорился на весь Хабр. Вы сами-то её читали? Это же винегрет из противоречивых заявлений, который по большей части только подтверждает кривой подход автора вопроса, и только в самом конце мельком упоминает подготовленные вопросы, и как всегда криво, как всё у него.
Если рассудок и жизнь дороги вам, держитесь подальше от торфяных болот материалов HTML академии.