• Объявления

    • Victor

      Вход на форум   02.11.2016

      В связи с обновлением форума были упразднены логины для входа в свою учетную запись. Теперь в качестве логина необходимо использовать ваше имя (то, что высвечивается при публикации сообщений).

31 сообщение в этой теме

if(!empty($_POST)) {...} (или isset) т.е. просто проверить наличие

Здесь проверяется наличие переменных переданных методом POST, я правильно понял??? А нельзя использовать тогда if($_POST) {...}?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здесь проверяется наличие переменных переданных методом POST, я правильно понял??? А нельзя использовать тогда if($_POST) {...}?

я вроде написал. Можно проверить на существование конкретного ключа, например if(!empty($_POST['submit'])) {}, либо проверять так сказать в целом, пришли ли к нам данные через POST if(!empty($_POST)) {}

Зависит от конкретного случая. Можно и if($_POST) {}, но это не по феншую. Обычно так проверяются true или false,тип того:

$a = true;

if ($a) {}

а еще проще - взять готовый скрипт, разобрать его и с новыми познаниями нарисовать свой. Но, если хочется с нуля, то это всегда можно свои теоретические знания материализовать, тоже полезное дело. :)

Лучший вариант - открыть документацию и следовать ей. На "гoвнoкодe", что чаще всего попадается, хорошему не научишься.

PS извиняюсь за слово, если его антимат пропустит )))

Изменено пользователем Mil-ast

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

редирект не работал, или работал, на ссылался на ту же страницу

ссылался на ту же страницу, так как в параметре content указывается время

через которое произойдет перенаправление ; собственно URL куда редиректить

<html><head><meta http-equiv="Refresh" content="0" URL="readblog.php?id'.$p_id.'"></head></html> - не верно параметр URL игнорируется, соответственно через 0 секунд Refresh этой страницы, со всеми вытекающими.

<html><head><meta http-equiv="Refresh" content="0;URL=readblog.php?id'.$p_id.'"></head></html> - верно

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

ссылался на ту же страницу, так как в параметре content указывается время

через которое произойдет перенаправление ; собственно URL куда редиректить

<html><head><meta http-equiv="Refresh" content="0" URL="readblog.php?id'.$p_id.'"></head></html> - не верно параметр URL игнорируется, соответственно через 0 секунд Refresh этой страницы, со всеми вытекающими.

<html><head><meta http-equiv="Refresh" content="0;URL=readblog.php?id'.$p_id.'"></head></html> - верно

по правде говоря, я оба варианта считаю не верными ))) любые заголовки, в том числе и редирект, должен отдавать сервер клиенту. Единственное, можно в JS, в зависимости от условий, сделать перенаправление, но никак не тегами в документе.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

JS можно отключить. А мету ?

Если найдете хитрый брузер который сможет отключить редирект по мете, я найду такой (или сам соберу :)) который не будет реагировать на заголовок "Location" :)

Прикопаться можно ко всему, да :rolleyes:

Если нужна статическая страница перенаправляющая на другой урл, тоже php будете использовать ?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

А в чём смысл статической страницы, которая делает перенаправление?

Через js имеет смысл использовать перенаправление только в том случае, когда есть логика на клиенте. Например, используя тот же Backbone и где практически вся страница формируется на клиенте.

В остальных случаях только через заголовки. Вообще, эти коды ответов сервера, которых около 4-5 десятков, дают большие возможности.

Например, при добавлении чего-либо, предположим, этого поста в форуме, комментария, новости и т.д., можно возвращать 201 ответ и без тела. А на клиенте, получив такой ответ, мы уже понимаем, что всё прошло успешно и данные сохранены и после выполнить какие-либо действия.

Либо, как я как-то делал, если неавторизированный пользователь обращается на закрытую страницу, то он перенаправляется на страницу с авторизацией, а если это ajax-запрос, то получает ответ 401, говорящий, что пользователь не имеет необходимых полномочий.

Согласитесь, зачем возвращать всегда 200 ответ, даже когда на сервере произошла ошибка, но в теле выдавать что-то вроде {"error" : true} и по этому флагу выявлять наличие ошибки..., ведь всё может сказать сервер.

Тем более, это уже много лет как стандартизировано и работает везде и всегда. Да и поисковики смотрят на них.

А решение с тегами - уж крайне "костыльное".

Ps: не обязательно только php, существуют и другие серверные языки.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, авторизуйтесь, чтобы оставить комментарий

Вы сможете оставлять комментарии после авторизации



Войти