Код работает на локальном сервере, но на хостинге уже не работает
Привет всем) Помогите плиз. Есть веб проект, который я делал на локальной базе из сборки EasyPHP. Там все отлично работает. Теперь мне нужно перенести проект на хостинг, я просто закинул туда файлы. У меня есть форма авторизации, которая отображается корректно. Ввожу данные, жму кнопку «войти» и все. белый фон тупо. на новую страницу не переходит. Вот тут код этой операции. Сделал проверку чтобы данные из БД извлекались и все корректно работает. Но на новую страницу не переходит((
Использую библиотеку safemysql.php для формирования более удобных запросов и штуку под названием vlibtemplate в которой я не очень понимаю. Тем не менее на локальном сервере работает все, а на хостинге нет. Помогите.
if(!empty($_POST['email']) && !empty($_POST['passw'])) { $info = $fightt->getRow("SELECT * FROM `staff` WHERE `login`=?s AND `password`=?s",$_POST['email'], $_POST['passw']); if($_POST['email']==$info['login'] && $_POST['passw']==$info['password']) { echo $info['address']; header('Location:'.$info['address']); exit; } echo $info['login']; }
PHP скрипт (SellFileEasy) работает на локальном сервере, но не работает на хостинге
Всем доброго времени суток! Данный скрипт предназначен для продажи файлов. При переходе на.
Скрипт не работает на домашнем сервере, но работает на хостинге
есть скрипт который отлично работает на хостинге: <?php define( ‘MAIL_TO’.
JS работает медленно на сервере. На локальном сервере быстро. В чём разница
Вечер добрый Сайт уже загрузил все JS/CSS/HTML. И после этого начинаются лаги. При открытие.
На сайте работает, а на локальном сервере — нет
Здравствуйте. Вот не могу понять, установил сайт на хостинг, потом скачал его оттуда к себе на.
miketomlin, да оно и без этого не работает, я это echo добавил, чтобы проверить, получает ли программа данные из бд
А чЁ с базой? Одними файлами ваш код сыт не будет.
Добавлено через 2 минуты
Включите вывод ошибок и см., где ошибка.
miketomlin, с базой все ок. программа данные получает. мне просто не понятно почему не идет переход к новой страничке. а как включить отображение ошибок? Вообще в результате авторизации,бд возвращает имя странички куда надо перейти. Вот код этого файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
require_once 'vlib/vlibTemplate.php'; include 'safemysql.php'; $opts = array( 'user' => '', 'pass' => '', 'db' => '', 'charset' => 'utf8' ); $fightt = new SafeMySQL($opts); $tmpl = new vlibTemplate('admin.tmpl'); if(!empty($_POST['col_seat']) && !empty($_POST['type']) && !empty($_POST['poi_dep']) && !empty($_POST['dest']) && !empty($_POST['dep_d']) && !empty($_POST['dep_t']) && !empty($_POST['arriv_d']) && !empty($_POST['arriv_t']) && !empty($_POST['cost'])) { $fightt->query("INSERT INTO `flight` SET `TYPE_AIR`=?s, `POINT_OF_DEPARTURE`=?s, `DESTINATION`=?s, `DEPARTURE_DATE`=?s, `DEPARTURE_TIME`=?s, `ARRIVAL_DATE`=?s, `ARRIVAL_TIME`=?s, `COST`=?s", $_POST['type'], $_POST['poi_dep'], $_POST['dest'], $_POST['dep_d'], $_POST['dep_t'], $_POST['arriv_d'], $_POST['arriv_t'], $_POST['cost']); $id_fly = $fightt->getOne("SELECT `ID_FLIGHT` FROM `flight` WHERE `POINT_OF_DEPARTURE`=?s AND `DESTINATION`=?s AND `DEPARTURE_DATE`=?s AND `DEPARTURE_TIME`=?s", $_POST['poi_dep'], $_POST['dest'], $_POST['dep_d'], $_POST['dep_t']); for ($x=0; $x$_POST['col_seat']; $x++) { $fightt->query("INSERT INTO `seat` SET `ID_FLIGHT`=?s, `ORDER_NUM_SEAT`=?s, `F_ZAN`=0", $id_fly, $x+1); } $fightt->query("INSERT INTO `colseat` SET `ID_FLIGHT`=?s, `COL_SEAT`=?s", $id_fly, $_POST['col_seat']); } if(!empty($_POST['id_fly'])) { $info = $fightt->getAll("SELECT LASTNAME AS L_NAME, FIRSTNAME AS F_NAME, OTCHESTVO AS OTCH, DOCUMENT AS DOC, SE_DOCUMENT AS SE_DOC, NUM_DOCUMENT AS NUM_DOC, ORDER_NUM_SEAT AS ORDER_NUM FROM `passenger` WHERE `ID_FLIGHT`=?s",$_POST['id_fly']); $tmpl->setloop('loop', $info); } $tmpl->pparse(); ?>
Сообщение от Eugen167
ini_set('display_errors', 1); error_reporting(E_ALL);
Jewbacabra, Ошибка: Warning: Cannot modify header information — headers already sent by (output started at /home/r/r2551241/r2551241.beget.tech/public_html/reg.php:7) in /home/r/r2551241/r2551241.beget.tech/public_html/reg.php on line 25
Вот строчка:
header('Location:'.$info['address']);
Сообщение от Eugen167
Сообщение от Eugen167
Сообщение от miketomlin
Сообщение от Eugen167
В этой теме тебе сказали что не должно быть никакого вывода, перед header, что является кратким пересказом закрепленной теме.
Php в сообщении об ошибке четко написал где этот вывод перед вызовом функции header происходит, я даже выделил эту часть сообщения об ошибке.
Что могло не получиться.
Jewbacabra, я уже убрал эхо, никакого вывода нет и не было изначально, я его добавил как-раз тогда, когда перенес файлы со своего сервера на хостинг, и попытался проверить работу всего этого, когда оно и не заработало я добавил эхо, чтобы проверить приходят ли данные из БД. Вот. Его не было, а ошибка уже была. Короче вот код изначальный полный код файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
ini_set('display_errors', 1); error_reporting(E_ALL); include 'safemysql.php'; //global $fightt; $opts = array( 'user' => '', 'pass' => '', 'db' => '', 'charset' => 'utf8' ); $fightt = new SafeMySQL($opts); if(!empty($_POST['email']) && !empty($_POST['passw'])) { $info = $fightt->getRow("SELECT * FROM `staff` WHERE `login`=?s AND `password`=?s",$_POST['email'], $_POST['passw']); if($_POST['email']==$info['login'] && $_POST['passw']==$info['password']) { header('Location:'.$info['address']); exit; } echo $info['login']; } echo ' '; ?>
Сообщение от Eugen167
Сообщение от Eugen167
Сообщение от Eugen167
Jewbacabra, сделал как вы советовали, похоже эта проблема решена, спасибо. У меня теперь другой вопрос:
в этом же скрипте происходит переход на новую страничку и теперь пишет вот что:
vlibTemplate Error: Template (admin.tmpl) file not found.
Как будто у меня нет файла этого.
Сообщение от Eugen167
вот так расположен этот файл
/r2551241.beget.tech/public_html/tmpl/admin.tmpl
а файл, в котором происходит вызов этого файла: /r2551241.beget.tech/public_html/admin.php
Вот его код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
ini_set('display_errors', 1); error_reporting(E_ALL); require_once 'vlib/vlibTemplate.php'; include 'safemysql.php'; $opts = array( 'user' => '', 'pass' => '', 'db' => '', 'charset' => 'utf8' ); $fightt = new SafeMySQL($opts); $tmpl = new vlibTemplate('admin.tmpl');//КАК Я ПОНИМАЮ, ИМЕННО ЗДЕСЬ ПРОИСХОДИТ ПОДКЛЮЧЕНИЕ ЭТОГО ФАЙЛА //ТО ЕСТЬ PHP ОТДЕЛЬНО, HTML ОТДЕЛЬНО, НО ВСЕ ДЛЯ ОДНОЙ СТРАНИЦЫ КАК БЫ if(!empty($_POST['col_seat']) && !empty($_POST['type']) && !empty($_POST['poi_dep']) && !empty($_POST['dest']) && !empty($_POST['dep_d']) && !empty($_POST['dep_t']) && !empty($_POST['arriv_d']) && !empty($_POST['arriv_t']) && !empty($_POST['cost'])) { $fightt->query("INSERT INTO `flight` SET `TYPE_AIR`=?s, `POINT_OF_DEPARTURE`=?s, `DESTINATION`=?s, `DEPARTURE_DATE`=?s, `DEPARTURE_TIME`=?s, `ARRIVAL_DATE`=?s, `ARRIVAL_TIME`=?s, `COST`=?s", $_POST['type'], $_POST['poi_dep'], $_POST['dest'], $_POST['dep_d'], $_POST['dep_t'], $_POST['arriv_d'], $_POST['arriv_t'], $_POST['cost']); $id_fly = $fightt->getOne("SELECT `ID_FLIGHT` FROM `flight` WHERE `POINT_OF_DEPARTURE`=?s AND `DESTINATION`=?s AND `DEPARTURE_DATE`=?s AND `DEPARTURE_TIME`=?s", $_POST['poi_dep'], $_POST['dest'], $_POST['dep_d'], $_POST['dep_t']); for ($x=0; $x$_POST['col_seat']; $x++) { $fightt->query("INSERT INTO `seat` SET `ID_FLIGHT`=?s, `ORDER_NUM_SEAT`=?s, `F_ZAN`=0", $id_fly, $x+1); } $fightt->query("INSERT INTO `colseat` SET `ID_FLIGHT`=?s, `COL_SEAT`=?s", $id_fly, $_POST['col_seat']); } if(!empty($_POST['id_fly'])) { $info = $fightt->getAll("SELECT LASTNAME AS L_NAME, FIRSTNAME AS F_NAME, OTCHESTVO AS OTCH, DOCUMENT AS DOC, SE_DOCUMENT AS SE_DOC, NUM_DOCUMENT AS NUM_DOC, ORDER_NUM_SEAT AS ORDER_NUM FROM `passenger` WHERE `ID_FLIGHT`=?s",$_POST['id_fly']); $tmpl->setloop('loop', $info); } $tmpl->pparse(); ?>
То есть у меня вызывается файл php, а из него вызывается файл с разметкой страницы и они работаю как бы одновременно
Не работает PHP? Установка и настройка сервера для Windows
Современные Интернет решения очень часто требуют использования языка программирования, в том числе и PHP. Но зачастую возникают проблемы с запуском приложений на PHP. Очень часто мне задают вопросы с проблемами в работе PHP в других статьях. Итак, почему не работает PHP? Рассмотрим несколько вариантов.
Неверно настроен сервер для работы PHP
Не работает PHP? Как исправить данную проблему? Вам нужно обратиться к документации о работе локального сервера или же обратиться к технической поддержке хостинга, который вы используете. Обращаю внимание на то, что на бесплатных хостингах очень редко предусмотрена возможность работы с PHP. Итак, если вы используете локальный сервер (хостинг), то необходимо обратиться к настройкам Apache и php.ini. Если у вас вызывает это затруднение, то вы можете установить готовое решение для работы с PHP. Это, например, XAMPP. Процедуру установки и настройки я опишу ниже. Данный сервер позволит вам запустить свои приложения, написанные на языке программирования PHP, которые не работают обычным способом.
Неправильный запуск файла PHP
Многие пытаются запустить приложение на языке программирования PHP двойным щелчком мыши на файл, т.е. пытаются запустить его как HTML. Поэтому PHP не работает. Обращаю ваше внимание на то, что PHP это серверный язык программирования и для его работы вам потребуется как минимум наличие локального сервера (как его установить я описал выше в статье), а как максимум — использование платного или бесплатного хостинга. Для запуска таких приложений используется адрес локального сервера, например localhost. Кстати говоря, в обоих вариантах и первом и втором при неправильном запуске приложения PHP вы увидите его код прямо в браузере. Это и означает, что у вас неверно настроен локальный сервер.
Ошибки в программе PHP
Не работает приложение PHP и отображается пустой экран? В этом случае вы, скорее всего, верно настроили PHP, но в вашем приложении имеются ошибки. Дело в том, что стандартные настройки PHP работают таким образом, что при возникновении ошибок отображается просто белый экран и приложение не запускается. В первую очередь вам нужно увидеть, что не так в вашем приложении. Для этого в ваш PHP код потребуется вставить несколько строк кода.
ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1);
Этот код позволяет отображать все ошибки при работе приложения. Таким образом, вы сможете увидеть проблемы в работе скрипта и устранить их.
Установка Apache с PHP (XAMPP) на Windows
В первую очередь для установки сервера Apache с преднастроенным PHP вам потребуется загрузить его с официального сайта по ссылке. Далее нужно выбрать, например, загрузку для Windows (см. рисунок).
После загрузки исполняемого фала необходимо его запустить и следовать инструкциям по установке XAMPP.
Можно указать, какие модули нужно установить, а какие нет. Это зависит от потребностей в работе сервера XAMPP.
Далее указываем место установки сервера. По умолчанию это диск C, папка xampp.
Оставляем или снимаем галочку для получения более подробной информации по Bitnami.
Приступаем к установке Apache и PHP.
Оставляем галочку для запуска контрольной панели и завершаем установку.Перед запуском контрольной панели будет запрошен ее язык, указываем, например, английский.
В контрольной панели нужно нажать Start напротив Apache.
После этого запустится сервер с работающим PHP. Для проверки работы нужно запустить любой браузер и в адресной строке прописать
После этого, в случае успешного запуска сервера, будет открыта стартовая страница с описанием XAMPP. Это значит, что сервер Apache с PHP запущен и работает успешно.
Теперь нам нужно проверить работу своего приложения PHP на локальном сервере под Windows. Для этого открываем папку «xampp» на диске C, в ней нужно перейти в папку «htdocs».
Затем создаем файл «1.php» и прописываем в него простейший программный код с командой echo для вывода сообщения на экран.
Обратите внимание на работу функции echo PHP. Она передает HTML строку, а браузер выводит ее на экран. Результат работы скрипта PHP отображен на рисунке ниже.
Итак, основными проблемами в ситуации, когда не работает PHP являются: неправильная настройка или отсутствие сервера приложений с преднастроенным PHP, ошибки в написанном приложении. Следуя инструкциям выше, вы сможете решить проблему и беспрепятственно работать с языком программирования PHP. Не забывайте о том, что нужно стараться использовать последние версии PHP, так как многие новые функции не будут работать в старых версиях приложения.