сеанс — Как отобразить & quot; вы вошли как & quot; и показывать? (PHP) ОБНОВЛЕНИЕ

Итак, я изучаю PHP, я делаю простой проект просто для удовольствия.
Я позволяю «пользователю» войти в систему и отображаю «вы вошли как имя пользователя». Это работает нормально, но затем, когда пользователь нажимает кнопку, чтобы добавить что-то в SQL, текст исчезает.
Я попытался повторить это в другом месте, но тогда было только «Вы вошли как» — не было никакого имени пользователя.
Я предполагаю, что это исчезает, когда я использую другой метод «Post», но почему это не в $_SESSION['login']?

Я пытался использовать echo $_SESSION['login'] и внутри ничего нет

Как я могу сделать так, чтобы «Вы вошли как», оставались до выхода пользователя из системы?

Мне немного стыдно показывать весь мой код, потому что я только начал учиться, и я уверен, что это довольно плохо: D

Это моя часть регистрации

Мне кажется странным, что в if(isset($_SESSION['zalogowany']) это не имеет $_SESSION['login'] больше (я попытался повторить это там)

    <?php
session_start();
require_once("baza.php");
//-------Wylogowywanie
if(isset($_POST['wyloguj']))
{
unset($_SESSION['zalogowany']);
session_destroy();
}
//---------Logowanie
if(!isset($_SESSION['zalogowany']))
{
if(isset($_POST['wyslij']))
{
if(mysql_num_rows(mysql_query("SELECT login
FROM uzytkownicy WHERE login = '".$_POST['login']."'")) > 0)
{
if(mysql_num_rows(mysql_query("SELECT login, haslo, Nr FROM uzytkownicy
WHERE login = '".$_POST['login']."'
&& haslo = '".$_POST['haslo']."' ")) > 0 )
{
$_SESSION['zalogowany'] = true;
$_SESSION['login'] = $_POST['login'];
$_SESSION['haslo'] = $_POST['haslo'];
echo '<font color="red"><center>Jestes zalogowany jako '. $_SESSION['login'].'</center></font>';

}
else
{
echo "Zle haslo, prosze sprobowac ponownie";
echo "<form method='POST' action='SG.php'>
<br><br><input type='submit' value='Logowanie' name='wyloguj'>
</form>";

}
}
else
{
echo "Nie ma takiego uzytkownika";
echo "<form method='POST' action='SG.php'>
<br><br><input type='submit' value='Logowanie' name='wyloguj'>
</form>";}
}
else
{
echo "<form method='POST' action='SG.php'>
<b>Nazwa uzytkownika:</b> <input type='text' name='login'><br>
<br><b>Haslo:</b><br> <input type='password' name='haslo'><br>
<br><input type='submit' value='Wyslij' name='wyslij'>
</form>";}
}
if(isset($_SESSION['zalogowany']))
{

echo "<form method='POST' action='SG.php'><br><input type='submit' value='Wyloguj' name='wyloguj'></form>";
}

0

Решение

Это, вероятно, потому что ваша сессия не остается. добавлять session_start() сразу после <?php тег.

1

Другие решения

Лучше вы можете добавить это в свой код.

 <?php
if (session_status() !== PHP_SESSION_ACTIVE) {session_start();}
?>

Session_status () вернется

PHP_SESSION_DISABLED, если сеансы отключены.
PHP_SESSION_NONE, если сессии включены, но ни одна не существует.
PHP_SESSION_ACTIVE, если сеансы включены, и один существует.

0

По вопросам рекламы [email protected]