如何显示“你被记录为”并保持显示? (PHP)更新

时间:2014-11-18 14:45:29

标签: php session logged

所以我正在学习一些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>"; 
    }

2 个答案:

答案 0 :(得分:1)

这可能是因为你的会话没有剩余。在session_start()代码后面添加<?php

答案 1 :(得分:0)

最好在代码中添加它。

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

session_status()将返回

如果会话被禁用,则为PHP_SESSION_DISABLED。  PHP_SESSION_NONE如果启用了会话,但都不存在。  PHP_SESSION_ACTIVE如果启用会话,则存在一个。