Помощник
|
Ошибка сессии - PHP |
Konark
|
Сообщение
#1
|
||
|
|
||
|
|||
SpaceX |
17.3.2016, 8:29;
Ответить: SpaceX
Сообщение
#2
|
|
читайте внимательней мануал... session_start() надо использовать до выводов HTML...
|
|
|
x64 |
17.3.2016, 9:21;
Ответить: x64
Сообщение
#3
|
|
Сессия строится на куках, куки отсылаются в заголовках, заголовки, в свою очередь, предшествуют html.
Пихните буферизацию вывода в начало файла Код <?php ob_start(); ?>
|
|
|
Konark
|
Сообщение
#4
|
|
x64, спасибо!
Теперь все заработало Сделал вот так: Код <?php ob_start();
session_start(); session_name("Auth"); header('Content-Type: text/html; charset= utf-8'); $dbconnect = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error()); mysql_select_db("1310125"); $nickname = $_POST["nickname"]; $password = $_POST["password"]; $result = mysql_query("SELECT Nickname, Password, GroupUser FROM test_table"); $list_f = mysql_query("SELECT * FROM test_table"); $n = mysql_num_rows($list_f); for ($i = 0; $i < $n; $i++ ){ if (($nickname == mysql_result($result, $i, Nickname) and $password == mysql_result($result, $i, Password)) or ($_SESSION['logged_user'] != "")){ if ($_SESSION['logged_user'] == ""){ $_SESSION['logged_user'] = mysql_result($result, $i, Nickname); $_SESSION['password_user'] = mysql_result($result, $i, Password); $_SESSION['groupusers'] = mysql_result($result, $i, GroupUser); } if (mysql_result($result, $i, GroupUser) == "Admin" or $_SESSION['groupusers'] == "Admin"){ header('Location: lab11-4.php'); exit; } echo $_SESSION['logged_user']; echo ", Вы успешно войшли в систему.<br/>"; echo "<form action='lab11-3.php' method='post'><input type='submit' name='exit' value='Закрыть сессию' /></form>"; break; }elseif ($i == ($n-1)){ echo "Такого пользователя нету в системе. <br/> <a href='register.html'>Зарегистрироваться</a> или <a href='lab11-1.html'>Ввести данные заново</a>"; } } mysql_close($dbconnect); ob_end_flush(); ?> <html> <head> <title>Laba 11 - 1</title> </head> <body> </body> </html> -------------------- Только авторские уроки по Adobe Photoshop и Adobe Lightroom. Хостинг - Попробовать |
|
|
SpaceX |
17.3.2016, 18:39;
Ответить: SpaceX
Сообщение
#5
|
|
а заработало как надо? ))
|
|
|
x64 |
17.3.2016, 18:41;
Ответить: x64
Сообщение
#6
|
|
Говоря про «предшествуют html» подразумевался протокол http, в котором сначала следуют заголовки (включая куки), а затем, через 2 перевода строки, страница
Если буферизация включена, то пых собирает в буфер весь вывод. Содержимое буфера выводится после ob_flush()/ob_end_flush(), либо после завершения работы скрипта автоматически. Обычно, чтобы избежать гемора, session_start() пихают в начало. Но можно что-то вроде такого сделать: Код <?php ob_start(); // включить буфер ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>ex</title> </head> <body> <?php echo '<h1>Заполните форму</h1>'; session_start(); // стартуем сессию ?> <form> форма </form> </body> </html> |
|
|
Konark
|
Сообщение
#7
|
|
SpaceX, да, конечно.
x64, То есть, не обязательно весь скрипт лепить перед хэдером? -------------------- Только авторские уроки по Adobe Photoshop и Adobe Lightroom. Хостинг - Попробовать |
|
|
SpaceX |
19.3.2016, 18:39;
Ответить: SpaceX
Сообщение
#8
|
|
если приведённый вами последний код конечный, то моё как надо и ваше сильно разнятся ))
P.S. загляните в исходный код странички.. |
|
|
Konark
|
Сообщение
#9
|
|
если приведённый вами последний код конечный, то моё как надо и ваше сильно разнятся )) P.S. загляните в исходный код странички.. Вот сейчас я не понимаю, если честно Что не так то? Я проверял, сессия точно работает (заходил на страницу без авторизации, а напрямую). А когда я закрывал сессию (удалял переменные сессии), то выводило совсем другое (мол пользователя нету, залогиньтесь или зарегистрируйтесь). Этот код не совсем конечный, вот последний: Код <?php ob_start();
session_start(); session_name("Auth"); header('Content-Type: text/html; charset= utf-8'); $dbconnect = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error()); mysql_select_db("1310125"); $nickname = $_POST["nickname"]; $password = $_POST["password"]; $result = mysql_query("SELECT Nickname, Password, GroupUser FROM test_table"); $list_f = mysql_query("SELECT * FROM test_table"); $n = mysql_num_rows($list_f); for ($i = 0; $i < $n; $i++ ){ if (($nickname == mysql_result($result, $i, Nickname) and $password == mysql_result($result, $i, Password)) or ($_SESSION['logged_user'] != "")){ if ($_SESSION['logged_user'] == ""){ $_SESSION['logged_user'] = mysql_result($result, $i, Nickname); $_SESSION['password_user'] = mysql_result($result, $i, Password); $_SESSION['groupusers'] = mysql_result($result, $i, GroupUser); } if (mysql_result($result, $i, GroupUser) == "Admin" or $_SESSION['groupusers'] == "Admin"){ header('Location: lab11-4.php'); exit; } echo $_SESSION['logged_user']; echo ", Вы успешно войшли в систему.<br/>"; echo "<form action='lab11-3.php' method='post'><input type='submit' name='exit' value='Закрыть сессию' /></form>"; break; }elseif ($i == ($n-1)){ echo "Такого пользователя нету в системе. <br/> <a href='register.html'>Зарегистрироваться</a> или <a href='lab11-1.html'>Ввести данные заново</a>"; } } mysql_close($dbconnect); ob_end_flush(); ?> <html> <head> <title>Laba 11 - 1</title> </head> <body> </body> </html> -------------------- Только авторские уроки по Adobe Photoshop и Adobe Lightroom. Хостинг - Попробовать |
|
|
SpaceX |
19.3.2016, 20:09;
Ответить: SpaceX
Сообщение
#10
|
|
при "Вы успешно войшли в систему" или "Такого пользователя нету в системе." посмотрите в браузере исходный код странички.. дальше думайте сами..
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3421 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1244 | 24.11.2023, 14:46 автор: alexey |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44935 | 19.7.2023, 10:03 автор: qpPeW |
|
Есть спецы по php/laravel? | 3 | Mixatraider | 1891 | 26.5.2023, 20:48 автор: Mixatraider |
|
Опытный PHP\Python разработчик в поиске интересных задач | 6 | daikzlex | 3406 | 25.5.2023, 13:55 автор: daikzlex |
Текстовая версия | Сейчас: 25.4.2024, 4:03 |