HTML-PHP登录后和登录前

 I-1ove-Y0u 发布于 2023-02-10 10:52

在用户成功登录后,如何将垂直菜单中的"登录/注册"标签更改为用户名.

这是我的checklogin.php

 

此代码只会在新页面中显示用户名.我想要的就像下面的图片.

之前 在登录之前

登录后

James.. 6

你想用$_SESSION.
当您确定已成功登录时,请将a设置$_SESSION为=某事,例如"loggedintrue"或其他.

例如:

if($count==1)
  {
    $_SESSION['loggedin']['username'] = $myusername;
  }

然后,无论您想要为用户特定数据提供服务,请执行以下操作:

if (!empty($_SESSION['loggedin']['username']))
  {
    echo "Hi ".$_SESSION['loggedin']['username'];
    // OR show some other content, ie allow then to see more menu items.
  }

您需要session_start();在任何要使用的页面的顶部$_SESSION.

此外,请注意,只是不向他们显示他们需要先登录才能看到的页面或其他内容并不会阻止他们访问它.您需要在页面上进一步检查,例如:

if (empty($_SESSION['loggedin']['username']))
  {
    echo "You are not allowed to access this page. Please login first";
    // Or redirect them etc
  }

编辑:你想要的代码.

您需要检查他们是否已登录,如果是,则提供用户名和登出链接.
如果未登录,则显示登录/注册链接和文本.
如果不是这么简单!

如果您有div或任何包含"登录/注册"文本的内容,请将其放入:

// They are logged in
if (!empty($_SESSION['loggedin']['username']))
  {
    // Display their username
    echo $_SESSION['loggedin']['username'];  
    // Display the logout link
    echo " (Logout)";
  }
// Not logged in
else
  {
    // Display the login/register link
    echo "Login/Register";
  }

上面的代码可以使用,但请注意它是非常基本的.
您应该有一个单独的类或函数,您可以在每个页面上调用它来检查用户是否登录,如果是或否则返回某些数据.
例如:

function logged_in()
  {

    if (!empty($_SESSION['loggedin']['username']))
      {
        return $_SESSION['loggedin']['username']." (Logout)";
      }
    else
      {
         return "Login/Register";
      }

  }

然后在您需要的每个页面上包含具有上述功能的文件,然后在您的用户名或登录/注册链接所在的页面中,执行以下操作:

echo logged_in();  

这将显示他们的用户名或登录/注册的链接.
这样做意味着如果您更改了任何内容,只需更改功能脚本文件,并在包含该文件的任何位置更改它并使用该功能.
此外,您可以logged_in()随时随地使用您的网站,而无需一直查看会话和设置数据.

这是将业务逻辑与表示分离的基本方法,但是所有这些还有很多,例如保存函数文件的位置,将它们包含在应用程序中的方式等等.
但是在这里可以谈论很多.阅读一些有关登录的教程,并使用PHP注册并在页面中使用包含文件.


附注:

请确保验证并清理用户输入数据.

$myusername=$_POST["myusername"];
$mypassword=$_POST["mypassword"];

也许你这样做,但如果没有,因为你的代码可能会对你的数据库和/或网站造成严重破坏.

另外,考虑使用mysqli_或PDO,因为mysql_函数是从PHP 5.5.0版本折旧的.

此外,md5()不再是一种安全的方法.请参阅此处了解原因和替代方案:http:
//sg2.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash

1 个回答
  • 你想用$_SESSION.
    当您确定已成功登录时,请将a设置$_SESSION为=某事,例如"loggedintrue"或其他.

    例如:

    if($count==1)
      {
        $_SESSION['loggedin']['username'] = $myusername;
      }
    

    然后,无论您想要为用户特定数据提供服务,请执行以下操作:

    if (!empty($_SESSION['loggedin']['username']))
      {
        echo "Hi ".$_SESSION['loggedin']['username'];
        // OR show some other content, ie allow then to see more menu items.
      }
    

    您需要session_start();在任何要使用的页面的顶部$_SESSION.

    此外,请注意,只是不向他们显示他们需要先登录才能看到的页面或其他内容并不会阻止他们访问它.您需要在页面上进一步检查,例如:

    if (empty($_SESSION['loggedin']['username']))
      {
        echo "You are not allowed to access this page. Please login first";
        // Or redirect them etc
      }
    

    编辑:你想要的代码.

    您需要检查他们是否已登录,如果是,则提供用户名和登出链接.
    如果未登录,则显示登录/注册链接和文本.
    如果不是这么简单!

    如果您有div或任何包含"登录/注册"文本的内容,请将其放入:

    // They are logged in
    if (!empty($_SESSION['loggedin']['username']))
      {
        // Display their username
        echo $_SESSION['loggedin']['username'];  
        // Display the logout link
        echo "<a href='logout.php'> (Logout)</a>";
      }
    // Not logged in
    else
      {
        // Display the login/register link
        echo "<a href='login-register.php'>Login/Register</a>";
      }
    

    上面的代码可以使用,但请注意它是非常基本的.
    您应该有一个单独的类或函数,您可以在每个页面上调用它来检查用户是否登录,如果是或否则返回某些数据.
    例如:

    function logged_in()
      {
    
        if (!empty($_SESSION['loggedin']['username']))
          {
            return $_SESSION['loggedin']['username']."<a href='logout.php'> (Logout)</a>";
          }
        else
          {
             return "<a href='login-register.php'>Login/Register</a>";
          }
    
      }
    

    然后在您需要的每个页面上包含具有上述功能的文件,然后在您的用户名或登录/注册链接所在的页面中,执行以下操作:

    echo logged_in();  
    

    这将显示他们的用户名或登录/注册的链接.
    这样做意味着如果您更改了任何内容,只需更改功能脚本文件,并在包含该文件的任何位置更改它并使用该功能.
    此外,您可以logged_in()随时随地使用您的网站,而无需一直查看会话和设置数据.

    这是将业务逻辑与表示分离的基本方法,但是所有这些还有很多,例如保存函数文件的位置,将它们包含在应用程序中的方式等等.
    但是在这里可以谈论很多.阅读一些有关登录的教程,并使用PHP注册并在页面中使用包含文件.


    附注:

    请确保验证并清理用户输入数据.

    $myusername=$_POST["myusername"];
    $mypassword=$_POST["mypassword"];
    

    也许你这样做,但如果没有,因为你的代码可能会对你的数据库和/或网站造成严重破坏.

    另外,考虑使用mysqli_或PDO,因为mysql_函数是从PHP 5.5.0版本折旧的.

    此外,md5()不再是一种安全的方法.请参阅此处了解原因和替代方案:http:
    //sg2.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash

    2023-02-10 10:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有