Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2021, 20:01   #1
Alena16
Пользователь
 
Регистрация: 12.11.2021
Сообщений: 16
Восклицание сессия сбивается на null при переходе на другую страницу

Всем привет, есть главная страница с формой авторизации и стартом сессии index.php. Затем срабатывает файл auth.php с проверкой логина, пароля и т.д из БД и при удаче переход на страницу LkPage.php. Так вот, значение в сессии хранится на странице LkPage.php. А если перейти на страницу descriptionWorkout.php из хэдэра LkPage.php, то сессия обнуляется. Я не понимаю почему. Подскажите, пожалуйста.

index.php
Код:
<?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>
LkPage.php
Код:
<?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">
</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

Код:
<?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">
</head>
<body style="background-image: url(res/background.jpg); background-size: 100%; background-repeat:no-repeat; background-blend-mode: multiply; background-color: #b2b2b2">
	
</body>
</html>
auth.php
Код:
<?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-форма входа<br />Ссылка на форму регистрации"; }
				 else
		 // Если не пусты, то 
		    {
		    echo "<br /><br />Вы вошли на сайт, как ".$_SESSION['emailA']."<br><br />";
			echo ('Кнопка ВЫЙТИ'); }
	 */
			   /*$_SESSION['userid'] = true;*/
               require_once('LkPage.php');
 				exit;

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

        ex2:

        } else echo "не подключена";
?>
Alena16 вне форума Ответить с цитированием
Старый 25.11.2021, 21:44   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Цитата:
Сообщение от Alena16 Посмотреть сообщение
Затем срабатывает файл auth.php с проверкой логина, пароля и т.д из БД
Ну так вы там не стартанули сессию.
Arigato на форуме Ответить с цитированием
Старый 26.11.2021, 07:56   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

на странице где работаете с сессиями надо стартовать ее - session_start ();
и без всяких условий
ADSoft вне форума Ответить с цитированием
Старый 26.11.2021, 09:31   #4
Alena16
Пользователь
 
Регистрация: 12.11.2021
Сообщений: 16
По умолчанию

Arigato, а, всё так просто было) спасибо
Alena16 вне форума Ответить с цитированием
Старый 26.11.2021, 09:31   #5
Alena16
Пользователь
 
Регистрация: 12.11.2021
Сообщений: 16
По умолчанию

ADSoft, спасибо
Alena16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При переходе на страницу отправкой формы методом POST тело функции view не обрабатывается, а сразу открывается главная страница проекта (index) ngproconsult Python 0 28.10.2021 21:02
Как убрать ошибку 404 при переходе на существующую страницу? Anna1991 Общие вопросы Web 1 29.01.2020 17:28
переход при ошибке на другую страницу ts-alan ASP.NET 1 06.01.2016 16:30
Очистка richedit при переходе с него на другую вкладку Artemgood Общие вопросы Delphi 8 04.05.2011 20:03
Refresh при переходе на страницу nikleb JavaScript, Ajax 8 20.12.2007 18:24