session_destroy() уничтожает все данные, связанные с текущей сессией. Данная функция не удаляет какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie. Чтобы вновь использовать переменные сессии, следует вызвать .Это значит что у вас в текущем состоянии пропадает переменная $_SESSION и связанный с ним идентификатор, но кука сессии и файл сессии на сервере никуда не деваются. И при следующем обращении к серверу вы делаете session_start() и сессия вновь работает.
Замечание: Нет необходимости вызывать session_destroy() в обычном коде. Очищайте массив $_SESSION вместо удаления данных сессии.Очень важное замечание, как раз связанное с вашей возмущенной репликой о том что "ну вот так же работает!111!". При большом разнообразии настроек и конфигураций серверов, сессия может вести себя по разному, что с одной стороны дает гибкость поведения если знать как и зачем вы что-то делаете, с другой стороны может вызвать проблемы, как в вашем случае, когда вы не очень понимаете зачем какие настройки и как обойти возникшие сайдэффекты. По этому самым верным решением является удаление данных из сессии.
Чтобы полностью удалить сессию, также необходимо удалить и её идентификатор. Если для передачи идентификатора сессии используются cookie (поведение по умолчанию), то сессионные cookie также должны быть удалены. Для этого можно использовать setcookie().Чего вы очевидно не делаете.
При включённой опции session.use_strict_mode, вам не нужно удалять устаревшие cookie идентификатора сессии. В этом нет необходимости, потому что модуль сессии не примет cookie идентификатора сессии, если с этим идентификатором сессии нет связанных данных, и модуль сессии установит новый cookie идентификатора сессии. Рекомендуется включать опцию session.use_strict_mode для всех сайтов.Рекомендуемые настройки, которые возможно вам помогут решить проблему именно вашим способом, НО вышеописанный способ является рекомендуемым.
PHP файл, который должен отправлять форму мне на почту.Не должен, должен передать в очередь отправки. Дальше система сама решает что делать.
Подскажите, пожалуйста, в чем моя ошибка?Использование внутренней функции mail() оправдано только в случае если это полностью контролируемый и настроенный вами сервер.
С помощью JS я получаю кое какие значения. И мне их нужно отправить на страницу, чтобы сторонний парсер зашел на эту страницу и смог их прочитать.Во первых, сторонний парсер скорее всего не увидит ваши значения полученные через js, так как 99% парсеров читают текст страницы, но не выполняют скрипты, а значит они увидят ровно ничего. Во вторых надо разобраться с кашей в голове и в коде. Давайте смотреть:
При обновлении страницы значение txt не приходит на страницу,Оно не на страницу должно приходить, а в переменную data внутри скрипта.
отображается null и код $('p.out').text(data);Нулл отображается так как вы открыли страничку методом get, соответственно переменная $_POST абсолютно пустая. Далее вы скриптом запросили страничку уже методом POST, и в ответ получили ВЕСЬ ЗАПРОШЕННЫЙ ФАЙЛ, начиная с
<html>
и далее весь текст страницы. Ну и в конце уже правильный ответ в json, так как сейчас метод запроса POST. json_encode($arr);
, то выводить его надо ДО вывода всей остальной страницы, и на этом сказать скрипту строгое "стопэ, дальше не надо", при этом если метод НЕ ПОСТ, то пхп скрипт вывода срабатывать вообще не должен. Как это реализовать оставляю на вашу фантазию, сообразительность и умение пользоваться гуглом. Как теперь массово выдать монеты этим пользователям через mysqli ?Ну так откуда нам знать? Что за таблица, что и как там храните? Вообще понятие "массово" вставить разнородные данные может подходить только к инсерту, апдейт в вашем случае делается единично каждой записи по условию совпадения поля. Внутри вашего форича после получения данных и делайте апдейт.
Мой класс для работы с базой данных расположен в моделях,Это не класс модели. Это адаптер работы с бд.
там же классы для работы с таблицами в бд User и GoodsЭто больше похоже на мвц, но вот дальше какая-то непонятная фигня:
Я вызываю все эти модели в /app/core/model.php - основной класс моделей, который в свою очередь вызывается в основном контроллере.Куда вызываете? Зачем? Ваши User и Goods должны наследоваться от модели, если у вас выбран тип Active Record. А в контроллере вы уже создаете экземпляры нужных классов.
Вопрос 2. Что вообще должно быть в моделях? Насколько правильно создавать функции для работы с той или иной таблицей? Где подчерпнуть пример?В модели должна быть реализована бизнес логика и методы работы с бд (в случае Active Record), в некоторых случаях так же связи объектов между собой. Все это легко гуглится, посмотреть можно в любом современном фреймворке, например что-то простенькое типа fat-free или более серьезное типа лары или симфони.
if(isset($submit))
А если я не нажал кнопку, просто нажал ентер в любом поле?$number = $_POST['phone_number'];
Такого поля в форме вообще нет.if(isset($name) && isset($email))
Ну допустим есть такие переменные, если в них не нэйм и емэйл то что делать? С мессажем та же фигня...<?php
if($_GET['url']){
$url = base64_decode($_GET['url']);
var_dump($_GET);
if (!$url){
$url = "https://вашдомен.ру";
}
var_dump($url);
if (!preg_match('#(https?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){
exit ("<p>Неверный формат запроса! Проверьте URL!</p>");
}
//header("Location:$url");
exit();
} ?>