powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / сессия сбивается на null при переходе на другую страницу
2 сообщений из 2, страница 1 из 1
сессия сбивается на null при переходе на другую страницу
    #40115004
AlenaLis16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, есть главная страница с формой авторизации и стартом сессии index.php. Затем срабатывает файл auth.php с проверкой логина, пароля и т.д из БД и при удаче переход на страницу LkPage.php. Так вот, значение в сессии хранится на странице LkPage.php. А если перейти на страницу descriptionWorkout.php из хэдэра LkPage.php, то сессия обнуляется. Я не понимаю почему. Подскажите, пожалуйста.

index.php
Код: html
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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
<?php 
if (!isset($_SESSION)) session_start ();
	//session_start();
	//include "auth.php";
print_r($_SESSION);
?>
<!DOCTYPE html>
<html>
<head>
	<title>Fitness club</title>
	<meta charset="utf-8">
	<link rel="icon" href="res/favicon.ico" type="image/x-icon">
</head>
<body>
		<p style="font-weight: bolder; font-size: 30px;">Форма авторизации</p>
            <form action="auth.php" method="_GET">
                <input type="email" name="emailA" placeholder="Email" required><br><br>
                <input type="password" name="passwordA" placeholder="Пароль" required><br><br>
                <input type="radio" name="radio" value="client" checked />Клиент<br>
    			<input type="radio" name="radio"  value="coach" />Тренер<br>
    			<input type="radio" name="radio"  value="admin" />Админ<br><br>
                <input type="submit" value="Войти!">
            </form>
            <p style="font-weight: bolder; font-size: 20px;">
                Внимание! Если у вас нет аккаунта, то зарегистрируйтесь</p>
            <form action="regPage.php" method="POST">
                <input type="submit" value="Зарегистрироваться!">
            </form>
</body>
</html>[/HTML]

LkPage.php
[HTML]<?php
	if (!isset($_SESSION)) session_start ();
	var_dump($_SESSION);

	if (isset($_SESSION['id']) && $_SESSION['id'] === true) {
  		echo $_SESSION['id'];
	}

	echo $_SESSION['email'];
	echo $_SESSION['password'];
	echo $_SESSION['firstname'];
	echo $_SESSION['id'];

	print_r($_SESSION);
?>
<!DOCTYPE html>
<html>
<head>
	<title>Фитес-клуб</title>
	<meta charset="utf-8">
	<style type="text/css">
		/* Стиль навигационной панели */
		#navbar {
		  overflow: hidden;
		  background-color: #333;
		}

		/* Ссылки навигационной панели */
		#navbar a {
		  float: left;
		  display: block;
		  color: #f2f2f2;
		  text-align: center;
		  padding: 14px;
		  text-decoration: none;
		}

		/* Содержимое страницы */
		.content {
		  padding: 16px;
		}

	</style>
</head>
<body>
	<div id="navbar">
	  <a href="descriptionWorkout.php">Описание тренировок</a>
	  <a href="#news">Обсуждения</a>
	  <a href="plans.html">Планы тренировок</a>
	  <a href="#contact">Меню тренировок</a>
	  <a href="#contact">Выбор/отказ от тренера</a>
	  <a href="index.php">Выйти</a>
	</div>
</body>
</html>



descriptionWorkout.php

Код: html
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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
<?php
	if (!isset($_SESSION)) session_start ();
	//phpinfo();
	var_dump($_SESSION);
	/*if (isset($_SESSION['userid']) && $_SESSION['userid'] === true) {
  		echo $_SESSION['userid'];
	}*/
	if(isset($_SESSION['id']) && !empty($_SESSION['id'])){
		echo "yes";
	} else echo "string";

	echo $_SESSION['email'];
	echo $_SESSION['password'];
	echo $_SESSION['firstname'];
	echo $_SESSION['id'];

	print_r($_SESSION);
?>
<!DOCTYPE html>
<html>
<head>
	<title>Описание тренировок</title>
	<meta charset="utf-8">
	<style>
	p {
	    display: block;
	    margin-block-start: 1em;
	    margin-block-end: 1em;
	    margin-inline-start: 0px;
	    margin-inline-end: 0px;
	}
	.text {
    float: left;
    display: block;
	}

	/* Стиль навигационной панели */
		#navbar {
		  overflow: hidden;
		  background-color: #333;
		}

		/* Ссылки навигационной панели */
		#navbar a {
		  float: left;
		  display: block;
		  color: #f2f2f2;
		  text-align: center;
		  padding: 14px;
		  text-decoration: none;
		}

		/* Содержимое страницы */
		.content {
		  padding: 16px;
		}

		#centerLayer {
	    position: absolute; /* Абсолютное позиционирование */

	    left: 40%; /* Положение слоя от левого края */
	    top: 27%; /* Положение слоя от верхнего края */
	    width: 600px;
	    margin-left: -150px; /* Отступ слева */
	    margin-top: -100px;	/* Отступ сверху */
	    background: #ccc; /* Цвет фона */
	    border: solid 1px black; /* Параметры рамки вокруг */
	    padding: 10px; /* Поля вокруг текста */
	    overflow: auto; /* Добавление полосы прокрутки */ 
	   }
	</style>
</head>
<body style="background-image: url(res/background.jpg); background-size: 100%; background-repeat:no-repeat; background-blend-mode: multiply; background-color: #b2b2b2">
	<div id="navbar">
	  <a href="descriptionWorkout.html">Описание тренировок</a>
	  <a href="#news">Обсуждения</a>
	  <a href="#contact">Планы тренировок</a>
	  <a href="#contact">Меню тренировок</a>
	  <a href="#contact">Выбор/отказ от тренера</a>
	  <a href="index.html">Выйти</a>
	</div>
	<div id="centerLayer">
	<h4 style="text-align: center;">ABL (Abdominal Buttocks Legs)</h4>
	<img src="res/abl.jpg">
	<p style="text-align: justify; width: 600px">ABL (Abdominal Buttocks Legs) – силовой, функциональный аэробный тренинг, направленный на проработку ног, пресса и ягодиц, в котором задействуется дополнительное оборудование: степ-платформы, бодибары, гантели, резинки и прочее.</p>

	<p style="text-align: justify; width: 600px">Особенности тренировки</p>

	<p style="text-align: justify; width: 600px">Тренировки ABL созданы специально для женщин и направлены на проработку исконно женских проблемных зон, тех, в которых преимущественно накапливаются жировые клетки, - живот, бедра и ягодицы. Название программы Abdominal Buttocks Legs дословно переводится с английского, как «живот, ягодицы, ноги». </p>

	<p style="text-align: justify; width: 600px">Занятие состоит из трех классических частей: разминки (чтобы разогреть мышцы, в ней как раз интенсивно задействована степ-платформа), основной части и заминки (это легкая растяжка), которая призвана восстановить дыхание и предотвратить резкий выход из занятия.</p>

	<p style="text-align: justify; width: 600px">Эти занятия осилит любая женщина, не имеющая противопоказаний для спорта в принципе. Хотя в некоторых фитнес-центрах программу ABL рекомендуют для людей со средним и высоким уровнем подготовленности.<p>

	<p style="text-align: justify; width: 600px">Скорее всего, причина этому – аэробный блок на степ-платформе, включенный в программу тренировки и занимающий около половины времени всего занятия. Не подготовленному человеку может быть сложно сразу выдержать такую нагрузку, что чревато головокружением и одышкой.</p>

	<h4 style="text-align: center;">ABS (Abdominal Back Spine, ABS Back Stretch)</h4>
	<p style="text-align: justify; width: 600px">ABS (Abdominal Back Spine) – силовой, функциональный тренинг, направленный на проработку пресса и спины, в котором задействуется дополнительное оборудование: бодибары, гантели, резиновые амортизаторы и прочее.
Особенности тренировкиВ отличие, от программы ABL, у тренировок ABS нет четкой ориентированности на женщин. Эти занятия отлично подходят и мужчинам, желающим поработать над своим животом и спиной.Тренировки рассчитаны на людей с различной степенью подготовки. Многие офисные работники стараются включить ABS в свое фитнес-расписание с целью сохранить здоровье позвоночника.Ведь отсутствие движений и статическое напряжение спины в течение всего дня сказываются через какое-то время искривлением позвоночника, болями в спине, головной болью и заболеваниями внутренних органов, опорой которым служит позвоночник. Проблемы с позвоночником не редко возникают и молодых мам. Им тоже рекомендуется обратить внимание на тренировки ABS.Различные упражнения в системе ABS призваны укрепить прилегающие к позвонкам мышцы, растянуть позвоночник, сделать его гибче, проработать все мышцы спины в целом, дав ей тем самым силы переносить ежедневные нагрузки с минимум негативных последствий.</p>
	<p style="text-align: center;"><img src="res/abs.jpg"></p>
	<p style="text-align: justify; width: 600px">Существует в рамках программы ABS направление ABS Back Stretch. По одним данным, это та же тренировка, что и ABS, по другим – это похожая на ABS тренировка, но с большим акцентом на растяжку позвоночника. Иначе как объяснить появление слова «stretch» в названии, которое переводится с английского, как «растягивать, тянуть».Спина и пресс очень связаны друг с другом. Иногда даже рекомендуют качать пресс, чтобы избавиться от болей в пояснице. Поясничный отдел позвоночника частично поддерживается и брюшными мышцами.Итак, занятия ABS позволяют сделать живот плоским, осанку прямой, спину крепкой и идти по жизни сквозь будни с расправленными плечами и поднятой головой.</p>
	<h4 style="text-align: center;">Зумба (Zumba)</h4>
	<p style="text-align: center;"><img src="res/zumba.jpg"></p>
	<p style="text-align: justify; width: 600px">Зумба (Zumba) – современная танцевальная фитнес-программа, построенная из движений латино-американских танцев с добавлением элементов из других танцевальных направлений (Сальса, Меренге, Самба, Фламенко, Реггетон, Бачата и т.д.)</p>
	<p style="text-align: justify; width: 600px">Каждое движение прорабатывает определенную группу мышц. Но его не нужно повторять несколько раз подряд подходами. Все движения образуют единый танец, в ходе которого, вы не заметно для себе совершите необходимое количество движений. Таким образом, за час занятия зумбой происходит полноценная тренировка всего тела.</p>
	<p style="text-align: justify; width: 600px">Танец-фитнес зумба обеспечивает хорошую аэробную нагрузку. Шаги, движения бедрами, подпрыгивания и повороты – все эти движения позволяют сжечь до 1000 калорий за одну тренировку.</p>
	<p style="text-align: justify; width: 600px">Не смотря на интенсивность зумбы, женщины выходят из зала полными энергии и позитива. Ведь они словно побывали на бразильском карнавале или тематической вечеринке.</p>
	</div>
</body>
</html>



auth.php
Код: html
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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
<?php
		$email = $_GET['emailA'];
        /*$password = md5($_GET['passwordA']);*/ //uncomment
        $password = $_GET['passwordA'];
        $status = "default";
        $status = $_GET['radio'];
        $id;

		//echo $status;

        $firstname = "default";

        $resss = "default";

        $per;

/*        $br0 = md5((string)$_SERVER['HTTP_USER_AGENT']);
        $br = md5((string)get_browser(null, true));*/

        /*$ip = md5((string)$_SERVER['SERVER_ADDR']);
        echo "$ip";*/



        $conn = new mysqli("localhost", "root", "", "fitness");

        if ($conn) {
            


            if ($status == "client" || $status == "coach") 
        	{	echo "База подключена<br>";
        
        	/* $result = $conn->query("UPDATE clients SET token = '$ip'
                        WHERE email = '$email' AND password = '$password'"); */

            /*$sql = "SELECT email,password,firstnames.firstname FROM clients, firstnames WHERE email = '$emailA'";*/
            $sql = "SELECT id, email,password, status,firstnames.firstname FROM users, firstnames WHERE users.id_firstname = firstnames.id_firstname AND status = '$status';";
        	if($result = $conn->query($sql)){
            foreach($result as $row){
                $em = $row["email"]; //список всех email
                $pass = $row["password"]; //список всех pass
                $firstname = $row["firstname"]; //список всех firstname
                $id = $row["id"]; //список всех firstname
                    if ($email == $em) {
                    if ($password == $pass) {
                    	echo "email = $em<br>";
	                    echo "pas = $pass<br>";
	                    echo "name = $firstname<br>";
	                    $resss = "dd";
	                     $_SESSION['email'] = $email;
	                     $_SESSION['password'] = $pass;
	                     $_SESSION['firstname'] = $firstname;
	                     $_SESSION['id'] = $id;
                    	goto ex1;
                    } 
                    } else $resss = "err";
            }

            } else $resss="err";
    
    }
    else if ($status == "admin") {


    		$sql = "SELECT id, email,password, status,firstnames.firstname FROM users, firstnames WHERE users.id_firstname = firstnames.id_firstname AND status = '$status';";
        	if($result = $conn->query($sql)){
            foreach($result as $row){
                $em = $row["email"]; //список всех email
                $pass = $row["password"]; //список всех pass
                $firstname = $row["firstname"]; //список всех firstname
                $id = $row["id"]; //список всех firstname
                    if ($email == $em) {
                    if ($password == $pass) {
                    	echo "email = $em<br>";
	                    echo "pas = $pass<br>";
	                    echo "name = $firstname<br>";
	                    $resss = "dd";
                    	goto ex1;
                    } 
                    } else $resss = "err";
            }

            } else $resss="err";
            	
            	//$per = "asdf";
            	//header('Location: LkPage.html');
           		$_SESSION['userid'] = true;
            	require_once('LkPageAdmin.html');
 				exit;
				//goto ex2;
            	
    }
    else {
    	echo "Такого пользователя не существует!";
    	//$resss = "err";
    }

        ex1:
        if ($resss == "err") {
            echo "Error!!!";
            mysqli_close($conn);
        }
        else if ($resss != "err" && mysqli_query($conn, $sql)) {
              echo "Success<br>";
              echo "status = $status<br>";
              echo "Hello, $firstname!";
              mysqli_close($conn);

              
		/*if(isset($_SESSION['emailA']))
		{$login='Здравствуйте, '.$_SESSION['emailA'].'!';}
		 // Проверяем, пусты ли переменные логина и id пользователя
		    if (empty($_SESSION['emailA']) or empty($_SESSION['id']))
		 // Если пусты, то 
		    {
				echo "<p style='margin-left:60px;'>Вы вошли на сайт, как гость</p>
				<br> HTML-форма входа
Ссылка на форму регистрации"; }
				 else
		 // Если не пусты, то 
		    {
		    echo "

Вы вошли на сайт, как ".$_SESSION['emailA']."<br>
";
			echo ('Кнопка ВЫЙТИ'); }
	 */
			   /*$_SESSION['userid'] = true;*/
               require_once('LkPage.php');
 				exit;

        } else {
              echo "Error: " . $sql . "<br>" . mysqli_error($conn);
              mysqli_close($conn);
        }

        ex2:

        } else echo "не подключена";
?>
...
Рейтинг: 0 / 0
сессия сбивается на null при переходе на другую страницу
    #40115367
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ухххх... А никак нельзя сделать постой тестовый пример, отражающий реальную проблему? Без нагромождения совершенно ненужных стилей, хтмл и прочего, не имеющего отношения к проблеме пропадания сессии. А так... собака след не берет. Да и не вполне понятно, что из закомментированного надо раскомментить, а что нет. Можно было бы скопипастить файлики на комп и прогнать.

И я нифига не понял, зачем нужно дергать множество (или почти всех) пользователей из базы, чтобы потом в пхпшном скрипте неспешно сделать то, что СУБД сделает гораздо быстрее - найти (или не найти) того единственного пользователя, для которого совпадают заданные имейл и пароль.

PS: Ох, уж эти метки...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / сессия сбивается на null при переходе на другую страницу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]