Меню

Http не работает php

Http не работает php

БлогNot. PHP: 12 причин, по которым не работают сессии

PHP: 12 причин, по которым не работают сессии

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

Сначала разумные причины:

1. Сессия не запущена.

То есть, не вызывалась функция session_start. Самая банальная и самая частая причина. Вызов session_start должен выполняться на каждой странице, где используются данные из массива $_SESSION .

Лучше всего вызывать session_start сразу после открывающего тега

Я часто в запутанном коде из множества модулей делаю это в виде

Есть смысл также запускать сессию только из модуля с функциями, подключаемыми к каждой странице сайта кодом вроде этого:

2. Сессия или её данные удаляются из кода раньше, чем должны использоваться.

В сложных многомодульных скриптах это вполне возможно, тем более, сделать это можно несколькими способами — через функцию session_destroy, «прямой» очисткой массива сессии кодом вида $_SESSION = array(); или $_SESSION = []; или unset($_SESSION[‘name’]) или просто unset($_SESSION); — в последнем случае, правда, сгенерируется предупреждение. «Прошерстите» код, чтобы убедиться, что этого не происходит.

3. Хранилище сессии недоступно для записи.

Выполните на хосте функцию phpinfo и проверьте значение session.save_path — это папка, куда сохраняется сессия.

Зайдите в неё и посмотрите, есть ли там свежие файлы с именами вроде sess_***** или *****.tmp . Если файлов нет — сессия не может сохраниться из-за отстутствия прав на доступ к папке. Установите их.

4. Данные сессии не записываются после отправки заголовка.

Если страница после выполнения кода редиректит на другую страницу при помощи функции header, может понадобиться добавить непосредственно после вызова header вызов функции session_write_close (или exit , die ), чтобы сессия могла корректно записать данные.

5. В браузере не включены Cookies.

Механизм куки-файлов необходим для работы сессий. Проверьте, что куки разрешены в браузере.

6. В коде или настройках сайта происходит редирект с одного домена на другой.

При редиректе сессия потеряется, даже если это редирект с site.com на www.site.com или наоборот.

7. Некорректная работа со временем в скрипте.

Скрипт имеет тысячу и один способ использовать время, отличающееся от серверного, в том числе, ставить время для куки и т.п.

А что если в момент создания кука оказывается уже просроченной?

Неплохо также в файле .htaccess настроить часовой пояс явно, скажем

8. Устаревшие функции сессий.

Например, код всё ещё использует session_register, а она давно удалена из языка. Проверьте и другие функции сессий — нужно ли их все применять?

Мне сегодня помог п. 4 при «реанимации» работающего «со второго входа» сайтега.

Теперь причины более экзотические, которых, вроде бы, не должно быть, а они случаются.

9. На сайте нет файла favicon.ico или favicon.png

Некоторым бразуерам (Chrome) на некоторых серверах (nginx) это может помешать работе с сессиями, хотя понятных причин я назвать не могу.

10. У вас в файле кодировка UTF-8 с меткой BOM.

Избавьтесь от неё. Хотя, по идее, вы должны были увидеть раньше популярнейшее предупреждение (warning) «headers already sent» (см. по ссылке). Но бывает, что не усмотрел директивы отключения варнингов где-нибудь в недрах кода. Кстати, включите контроль всех ошибок при работе.

11. Лишние символы, например, пробелы после закрывающего тега PHP ?>

Что тут сказать? Избавьтесь от них.

12. Так легла карта.

Скорее всего, сессия просто стартует не там, где Вы думаете.

Источник

Почему не работает PHP?

Самый частый вопрос, который мне приходилось видеть и слышать — это «почему не работает PHP«. Более того, я когда-то сам задавался этим же вопросом. Что я делал (и так поступают 99% новичков)? Я делал следующее.

Читайте также:  Не работают миграции laravel

Сначала открывал html файл (либо php файл) в блокноте и вставлял туда PHP-код. Затем я пытался открыть данный файл в браузере. И что я видел? Разумеется, лабуду и никакого выполнения PHP-скрипта. А если это был PHP-файл, то мне предлагалось его сохранить на компьютер. Знакома ситуация? Если да, то сейчас Вы узнаете, почему так происходило и что надо сделать, чтобы PHP стал работать.

Дело в следующем: HTML, CSS и JavaScript обрабатываются браузером, поэтому мы легко могли создать простой HTML-файл и добавить туда код всех трёх языков. Однако, PHP обрабатывается не браузером (это ключевой момент), а интерпретатором PHP. Следовательно, нужен именно он. Также нужен файл настроек PHP, библиотеки и прочее. И вот только тогда всё заработает. Теперь вопрос: как это всё найти? Есть два способа: либо собирать всё вручную (это реально и не так сложно), либо пойти более простым путём и установить уже готовый пакет.

Я Вам советую двигаться именно по второму пути, то есть установить готовый пакет, в который входят: сервер Apache, SMTP сервер, MySQL, Perl и, разумеется, PHP. Такой пакет существует и называется он Denwer. Скачать его можно здесь: http://denwer.ru.

Установить его очень просто. Просто следуйте инструкциям.

Теперь запустите сервер (если он по каким-либо причинам не запустился), и, наконец, можете открыть, например, этот файл: «home/test1.ru/www/index.php«. И вставить туда Ваш PHP-код. И когда Вы введёте в браузере следующий адрес: «http://test1.ru«, то увидите результат выполнения Вашего PHP-скрипта.

Всё, PHP работает!

Кстати, если сервер не запускается, то в 99% случаях виноват антивирус и/или firewall. Проблема в том, что иногда они блокируют изменения файла hosts в Windows, поэтому постарайтесь отключить контроль за этим файлом в настройках антивируса. А если не получается, то на момент запуска сервера отключите антивирус.

В следующей статье я расскажу о том, как создавать домены и поддомены в Denwer. Также обязательно расскажу о файле hosts в ОС Windows, так как об этом очень важно знать любому, кто занимается созданием сайтов, используя пакет Denwer (да и другие пакеты тоже).

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 73 ):

    А скоко примерно МБ занимает этот Denwer при скачивании? Просто у меня с инетом напряг! И еще: когда создаешь сайт в Denwer, то в это время комп должен быть подключён к интернету или нет.

    Denwer весит 6.1 МБ. Для создания сайта на Denwer Интернет не нужен.

    Меня очень интересует следующий вопрос. Все лучшие сайты и коды уже написаны. Чтобы добится таких-же результатов как конкуренты, нужно очень много времени и не только. А какие шансы у простого смертного, который изучил php, MySQL и т.д. (на среднем уровне), устроиться на работу в уже расскрученные сервисы или порталы? И на какие должности? И возможно ли такое? Какие шансы??

    Если там вообще нужны программисты, то попробуйте, а для начала лучше поработайте фрилансером, наберитесь опыта, а потом будет и что показать потенциальным работодателям.

    Читайте также:  Как настроить предупреждения навител

    Да. Сайт действительно хорош. Михаил! У меня вопрос: Делаю сайт со страницами формата .php но на них присудствуют теги html и обычный текст. Вопрос. Нужно ли ставить на такую страницу следующую строчьку, перед тегом .

    Михаил, я создал на компе статический сайт, но страницы расширения .php Как поисковики будут к нему относится?

    Здравствуйте! Я начал изучать Ваши уроки, присланные Вами, по phр. Я все повторяю за Вами, а весь текст на сайте получается таким: . ?? . Что мне делать?

    Михаил, и меня такая проблема: написал код для вытаскивания статьи из БД по примеру как у вас в уроке по PHP, после чего проверил все ли совпадает. Все было правильно, но когда я зашел на страницу в браузере, поле, где статьи должни были отабражаться, осталось пустым! Подскажите в чем проблема! P.S. если будет нужно я могу предоставить участки кода. с ув. Алекс

    Очень Вам благодарен. У меня была вторая ошибка. Вы оказываете величайшую помощь всем «чайникам» и достойны всяких похвал!

    Денвер стоит! Антивируса — нет как такового! firewall — не устанавливала! А файлы с расширением php в один день просто перестали отображаться в браузере (любом), показывает либо просто код, либо html страницу и php код. Все работало! И . больше не. Подскажите пожалуйста,а то у меня даже печеньки закончились (.

    Источник

    Почему не работает PHP?

    Всем доброго времени суток. На связи Алексей Гулынин. В этой статье я бы хотел рассказать, почему не работает PHP.

    Как мы с вами раньше проверяли работоспособность html-страницы или javascript-кода? Мы просто создавали файл, называли его к примеру index.html, записывали туда html-теги и javascript-код. Затем открывали с помощью какого-нибудь браузера и смотрели, что в итоге получается. Можно подумать, что, если в файле index.html написать какой-нибудь код на PHP, то, при открытии, он тоже должен обрабатываться нормально. Но на самом деле такого не будет. К примеру давайте наберем следующий код и попробуем его открыть в браузере:

    Как вы, наверное, догадались — для того, чтобы вставить php-код в html-страницу необходимо данный код заключить в конструкцию . Если мы откроем данную страницу, то ничего не увидим. Давайте теперь попробуем сохранить нашу страницу с расширением не html, а php (так на самом деле и должно быть, если мы хотим посмотреть результат выполнения php-кода). В некоторых браузерах опять откроется пустая страница, а в некоторых — нам предложат сохранить данную страницу на компьютер. Так почему не работает PHP?

    Всё дело в том, что HTML, JavaScript, CSS обрабатываются браузером , а PHP обрабатывается не браузером, а интерпретатором PHP . Для того, чтобы видеть результат выполнения php-кода можно пойти либо сложным путем (путем самурая, как говорил наш учитель по математическому анализу), либо легким путем. Сложный путь заключается в том, что нам предстоит настроить рабочую среду самим, а это установить сервер Apache, почтовый сервер (SMTP), Perl, MySQL и сам PHP со всеми настройками и библиотеками. Легкий путь заключается в том, чтобы установить готовый пакет, в который это всё уже входит. Такой пакет существует и называется Denwer. Скачать его можно по ссылке скачать Denwer . Установку данного пакета я подробно разберу в следующей статье. Теперь вы знаете почему не работает PHP.

    На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.

    Источник

    PHP код не выполняется / не работает / выводится в браузер / пустая белая страница

    Достаточно часто у начинающих разработчиков встречаются проблемы с запуском PHP-кода. Симптомы и причины могут быть самые разнообразные. Ниже приведены наиболее часто встречающиеся симптомы и их возможные причины.

    Вы открыли страницу/файл в браузере и увидели на странице PHP-код. Возможно, вперемешку с другими элементами страницы.
    Либо вместо страницы файл «скачался», а в нём Вы увидели исходный код PHP.

    Читайте также:  Как починить деревянную лопату

    Возможные причины:

    • Файл должен имет расширение .php (на всякий случай в нижнем регистре: .php , а не .PHP или .pHP ). На всякий случай проверьте также и язык ввода: буквы с имени должно быть латинскими (бывали случаи).
    • Страница должна запрашиваться через Веб-сервер , а не из папки напрямую. Поэтому в адресной строке браузера Вы должны видеть http:// , а не file:// (некоторые браузеры скрывают http:// , но file:// виден все равно).
    • Из предыдущего пункта следует: у Вас должен быть установлен и запущен веб-сервер (например, Apache или сборки Denwer, XAMPP и т.п.).
    • Веб-сервер должен быть настроен на обработку PHP кода. Если Вы используете сборки вроде Денвера, то этот пункт, вероятно, не актуален (хотя кто ж их знает).
    • PHP код должен быть обёрнут в PHP-теги: . Если вдруг Вы используете короткие теги или , то попробуйте заменить их на длинные: и соответственно.
    • TODO вспомнить и описать другие организационные моменты

    Ничего не выводится — только пустая белая страница.

    Источник

    Http не работает php

    Здесь могла бы быть ваша реклама

    Покинул форум
    Сообщений всего: 4574
    Дата рег-ции: Июль 2006
    Откуда: Israel

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

    Само собой я знаю что ответят мне тут же, и если я посмотрю
    на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
    Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
    вопрос автора и еще два сообщение вида Ответ + Спасибо

    После этого приходится начинать уточнять этим неграмотным что мне надо.
    Они что, сами читать не умеют? А уточнять приходится.
    И иногда пока они переварят то что я им скажу проходит и не одна ночь..

    Уверен что если бы я им сказал что у меня есть
    фиолетовый квадрат, и нужно превратить его в синий треугольник
    и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
    но почему то кисточка не принимала цвет краски в банке,
    то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
    предложив её открыть, а не тратить еще стольник на жестянку.

    Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
    Что есть
    Что нужно получить
    Как я пытался
    Почему или что у меня не получилось.

    На последок как оно происходит на форумах

    Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
    Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
    Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
    Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
    Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
    Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
    Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
    Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
    Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
    Новичок: Спасибо, братан! То что нужно.

    Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

    Источник

    Adblock
    detector