Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
IvanLeviathan
9 / 9 / 10
Регистрация: 28.11.2013
Сообщений: 81
1

Сессии

21.07.2017, 16:20. Просмотров 394. Ответов 3
Метки нет (Все метки)

отправляю форму через Ajax, все работает замечательно. Есть 2 варианта завершения отправки формы 1. Вы успешно подписались на рассылку новостей 2. Вы уже подписаны на рассылку новостей. Это оповещение делаю через скрипт "sweetalert". Все работает как часы.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$("#email_add").submit(function() { //Change
            var th = $(this);
            $.ajax({
                type: "POST",
                url: "base/email_add.php", //Change
                data: th.serialize()
            }).done(function() {
                swal(
                <?=$_SESSION['email_add'];?>
                )
                $(".footer_input").val("");
            });
            return false;
        });
это сам скрипт Ajax
PHP
1
<?=$_SESSION['email_add'];?>
Переменная сессии в этом скрипте отвечает за выводимую информацию. Либо вы подписались на новости, либо вы УЖЕ подписались.

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
<?php
session_start();
 
include("connect.php");
$email = $_POST['email'];
$date_add = date("Y-m-d H:i");
 
$query_check = "SELECT * FROM emails WHERE email = '$email'"; 
$result_check = mysqli_query($connect, $query_check) or die (mysqli_error($connect));
 
if (mysqli_num_rows($result_check) > 0 ) {
    unset($_SESSION['email_add']);
    $_SESSION['email_add'] = "
    'Ой',
    'Вы уже подписались на рассылку новостей.',
    'warning'
    ";
 
}
else{
    $query = "INSERT INTO emails (email, date_add) VALUES ('$email', '$date_add')";
    $result = mysqli_query($connect, $query) or die(mysqli_error($connect));
    unset($_SESSION['email_add']);
    $_SESSION['email_add'] = "
    'Ура!',
    'Вы подписались на рассылку нвоостей.',
    'success'
    ";
}
 
 
 ?>
Код самого обработчика

Так как ajax не перезагружает страницу и отправляет данные на сервер то значение переменной $_SESSION['email_add'] не обновляется. Если например ввести НЕСУЩЕСТВУЮЩИЙ в базе email то Ajax выдаст надпись что "Вы успешно подписались на новости". Далее если НЕ ПЕРЕЗАГРУЗИТЬ страницу и ввести уже существующий email то ajax все равно выдаст "Вы успешно подписались на новости". После перезагрузки переменная $_SESSION['email_add'] принимает значение первого результата получившегося через отправку формы. unset($_SESSION['email_add']); не помогает.

Сломал уже голову.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2017, 16:20
Ответы с готовыми решениями:

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

сессии
интересует правильная постановка сессий на сайте , вот у меня такой тип - session_start();...

Сессии
Можно запустить одновременно 2 паралельные сессии?

Сессии
Скажите , можно ли как нибуть со стороны пользователя сэмитировать сессии? Для чего я это...

Сессии
Выдает вот такую ошибку. Что делать? Warning: session_start() : Cannot send session cookie -...

3
tabata
Заблокирован
21.07.2017, 17:25 2
Цитата Сообщение от IvanLeviathan Посмотреть сообщение
<?=$_SESSION['email_add'];?>
Если код php находится внутри кода js - то он обрабатывается не смотря ни на какие-либо условия js. Поэтому эта муть работать не будет
0
Jodah
Эксперт PHP
3238 / 2753 / 1161
Регистрация: 01.08.2012
Сообщений: 9,601
21.07.2017, 18:00 3
Здесь не нужны сессии. Вам нужно возвращать результат от сервера обратно в JS.
0
IvanLeviathan
9 / 9 / 10
Регистрация: 28.11.2013
Сообщений: 81
21.07.2017, 20:58  [ТС] 4
А как передать данные JavaScript с одной страницы на другую?
0
21.07.2017, 20:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2017, 20:58

Сессии
Например есть форма, после отправки которой производится проверка на пустоту переменных. Вылазит...

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

Сессии
В начале файла стоит session_set_cookie_params(2592000); session_start(); При авторизации такое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru