Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
9 / 9 / 1
Регистрация: 27.10.2012
Сообщений: 38

Переменная не выводится, если определенная строка находится в теле условия

08.12.2012, 01:08. Показов 1624. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Помогите понять почему переменная не выводится , если строка $user = $_SESSION['user']; находится в теле условия. А если вынести эту строку переменная выводится. Хочется разобраться для понимания этого момента. Спасибо заранее!
PHP
1
2
3
4
5
6
7
8
9
10
11
// Переменная $user не выводится через echo
if (!isset($_SESSION['user']) && isset($_COOKIE['user'])){
    $_SESSION['user'] = $_COOKIE['user'];
    $user = $_SESSION['user'];
    }
 
//Переменная $user  выводится 
if (!isset($_SESSION['user']) && isset($_COOKIE['user'])){
    $_SESSION['user'] = $_COOKIE['user'];
    }
    $user = $_SESSION['user'];
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2012, 01:08
Ответы с готовыми решениями:

Выполнение условия, если добавляется новая строка в mysql
Доброго дня! Есть БД, подключаюсь к ней через Mydac, вывожу на DBgrid, обрабатываю инфу, меняю статус строки (с 1 на 2), тогда строка...

Проверка условия, что нажата определенная кнопка
Здравствуйте. Пишу программу, хочу указать условие - если нажали на конкретную кнопку, то выполняется такое то действие. Вопрос: есть ли...

Определенная фраза в текстовом документе не находится
Помогите с кодом. Я создал документ txt и записывал туда слова добавляя "$": System.IO.File.AppendAllText(@"C:\textfile.txt",...

9
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
08.12.2012, 04:44
вы отрицание поставили ! перед проверкой существования сессиионной переменной, уберите восклицательный знак перед isset
0
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
08.12.2012, 08:59
Цитата Сообщение от alpex Посмотреть сообщение
вы отрицание поставили ! перед проверкой существования сессиионной переменной, уберите восклицательный знак перед isset
Рискну предположить, что условие составлено правильно. Возможно ТС проверяет отсутствие юзера в сессии и заносит его из куков. Тогда присвоение $user не произойдет в блоке условия, если в сессии уже записан юзер. Ошибка не в этом куске кода.
Если это так, то нужно каждый раз перед этим кодом очищать сессию или присваивать значение $user вне блока условия...
0
9 / 9 / 1
Регистрация: 27.10.2012
Сообщений: 38
08.12.2012, 12:27  [ТС]
Цитата Сообщение от casual_visitor Посмотреть сообщение
Рискну предположить, что условие составлено правильно. Возможно ТС проверяет отсутствие юзера в сессии и заносит его из куков. Тогда присвоение $user не произойдет в блоке условия, если в сессии уже записан юзер. Ошибка не в этом куске кода.
Если это так, то нужно каждый раз перед этим кодом очищать сессию или присваивать значение $user вне блока условия...
Вы совершенно правы ! Я осуществляю такую проверку ! НО все равно не могу понять по моему вопросу ! А если юзер ушел с сайта и вернулся через пару дней. Сессия уже по идеи не существует. Или Вы имеете ввиду что в любом случае, если сессии присвоено имя юзер в теле условия это имя передать нельзя.
0
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
08.12.2012, 12:54
Попробуйте проверить существует ли $_COOKIE['user']
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
08.12.2012, 13:11
покажите как вы куки ставите
0
9 / 9 / 1
Регистрация: 27.10.2012
Сообщений: 38
08.12.2012, 17:56  [ТС]
Цитата Сообщение от alpex Посмотреть сообщение
покажите как вы куки ставите
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function login($user, $password, $remember)
{
    if (empty($user) || empty($password)) {
        return false;
    } else {
        if ($remember != 'on') {
            $_SESSION['user'] = $user;
            
        } else {
            setcookie('user', $user, time() + 3600 * 24 * 100);
            setcookie('password', $password, time() + 3600 * 24 * 100);
        }
        return true;
    }
}
Далее


PHP
1
2
3
4
5
6
7
session_start();
$enter_site = false;
 
if (isset($_POST['user']) && isset($_POST['password'])) {
    $enter_site = login($_POST['user'], $_POST['password'], $_POST['remember'] ==
        'on');
}
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
08.12.2012, 17:59
PHP
1
setcookie('user', $user, time() + 3600 * 24 * 100);
такие куки будут видны только для той страницы где они были поставлены, используйте 4 и 5 параметры функции
0
9 / 9 / 1
Регистрация: 27.10.2012
Сообщений: 38
08.12.2012, 18:03  [ТС]
Цитата Сообщение от alpex Посмотреть сообщение
PHP
1
setcookie('user', $user, time() + 3600 * 24 * 100);
такие куки будут видны только для той страницы где они были поставлены, используйте 4 и 5 параметры функции
Хорошо ! я думал что пхп по имени запрашивает из файла
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
08.12.2012, 18:05
ну он и запрашиввает по имени, но куки можно ставить так что они будут видны не по всему сайту, а только на той странице где были установлены или в определенной папки, поставьте в 4 параметр слеш '/'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.12.2012, 18:05
Помогаю со студенческими работами здесь

Переменная js в теле страницы
Добрый день. Хочу спросить как вставить переменную(js) в тело страницы. document.getElementById('textarea').value = data; Вот так...

Оператор ## и переменная в теле макроса
Добрый день. Столкнулся с такой проблемой, к примеру: #define SQUARE(val) val * 3##val Если строка SQUARE(3) даст результат 99. То,...

Пустая переменная выводится как %переменная%
Когда %var% ещё пустая, echo %var% выдаёт не пустоту (или "Режим вывода команд на экран (ECHO) отключен"), а вот так выдаёт,...

Как узнать букву диска, на котором находится определенная папка?
Здравствуйте. Скажите пожалуйста. Есть диск, есть папка на диске, как найти букву диска на котором папка. Поиск выполнять? или как?

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru