当前位置: 首页 > 知识库问答 >
问题:

如何在wordpress上使用$_session更改登录到注销按钮?

尹善
2023-03-14

所以我在Wordpress上有一个自定义登录页面,它连接到我的用户数据库,并检查所有信息是否正确。这是login.php:


<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>Login</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<?php
require('db.php');
// If form submitted, insert values into the database.
if (isset($_POST['email'])){
        // removes backslashes
    $email = stripslashes($_REQUEST['email']);
        //escapes special characters in a string
    $email = mysqli_real_escape_string($conn,$email);
    $password = stripslashes($_REQUEST['password']);
    $password = mysqli_real_escape_string($conn,$password);
    //Checking is user existing in the database or not
        $query = "SELECT * FROM `users` WHERE email='$email'
and password='".md5($password)."'";
    $result = mysqli_query($conn,$query) or die(mysql_error());
    $rows = mysqli_num_rows($result);
        if($rows==1){
        $_SESSION['email'] = $email;
            // Redirect user to index.php
        header("Location: index.php");
         }else{
    echo "<div class='form'>
<h3>Email/password is incorrect.</h3>
<br/>Click here to <a href='../login/'>Login</a></div>";
    }
    }else{
?>
<div class="form">
<!-- <h1>Log In</h1> -->
<form action="" method="post" name="login">
<input type="text" name="email" placeholder="Email" required />
<input type="password" name="password" placeholder="Password" required />
<br>
<input name="submit" type="submit" value="Login" />
</form>
<p>Not registered yet? <a href='../register/'>Register Here</a></p>
</div>
<?php } ?>
</body>
</html>

我想做的是在用户被记录之后,将Wordpress头上的LOGIN按钮更改为LOGOUT(如果可能的话,还会显示用户信息),我想我可以使用$_session['email']=$email;变量来实现这一点。

我怎么能那样做?

多谢!

共有1个答案

柴英博
2023-03-14

您可以使用内置的WordPress函数is_user_logged_in(),或者您的登录是否也使用数据库中的自定义表而不是WordPress用户表wp_user?

<?php
if ( is_user_logged_in() ) {
    echo '<a href="../wp-login.php?action=logout">Login out</a>';
} else {
    echo '<a href="../login/">Login</a>';
}
?>

如果你的登录系统独立于WordPress,你需要检查你的登录函数,看看它创建了什么会话变量,你可能还需要自己启动会话,如果它不在这个函数中,就像这样

 session_start();

 if (isset($_SESSION['email'])) {
    /// your login button code here
 } else {
    /// your logout button code here
 }
 类似资料:
  • 用户登录 在用户登录App账号时调用以下登录方法,从而保证用户是以登录身份进行咨询,是区分会话的用户的唯一标识; 游客咨询不需要调用小能login方法,小能会自动生成一个游客身份标识,在客服端游客身份的用户名显示为:“游客+4位数字”。 App完全退出(被杀掉进程), 再次进入时, 在SDK初始化之后, 如果App本身账号是登录用户, 需要重新调用小能SDK登陆接口,同步用户身份【大多是针对App

  • 登录与注销 用户登录 在App登录的地方,调用小能的login方法,目的是传递账号信息,为客服端显示用户信息。在App被杀死之后,sdk会保持用户的登录状态,不需要再次调用登录的方法。 uid作为用户的唯一标识需要保证唯一性,username可根据需要传入手机号、昵称等信息 /** * @param uid 必填,登录用户的id, 只能输入数字、英文字母和"@._—"四种字符,长度小于等于60位

  • 问题内容: 我们正在使用Spring 3开发RESTful Web服务,我们需要具有登录和注销功能,例如和。会话应存储在上下文中,直到会话超时或注销以允许使用其他Web服务。没有会话信息的任何访问Web服务的请求都应被拒绝。寻找这种情况的最新解决方案。 我实际上是在复活这里Spring Security 3以编程方式登录的问题,仍然无法正确回答。请同时在web.xml中指定所需的更改。 问题答案:

  • 我正在使用带有java配置和两个HttpSecurity配置的spring-security 3.2.0.rc2。一个用于REST API,一个用于UI。当我发布到/logout时,它重定向到/login?logout,但随后(错误地)重定向到/login。当我成功地输入用户名和密码时,我会被重定向到登录-注销,并且必须再次输入凭据才能进入主页面。因此,似乎login的permitAll不被用于l

  • 如何登入/注销 若要使用此机能,可能需先更新系统软件。 要进入(PlayStation®Store)在线购物或使用(账户管理)时,需先登入PlayStation®Network的账户。 如何登入 1. 进入主选单的(PlayStation®Netrowk)后,选择(账户管理)或(PlayStation®Store)。 2. 输入登入ID(电子邮件地址)与密码。 输入新建(PlayStation®N

  • 如何登入/注销     如何登入 登入后,即能开始使用 Skype 。 1. 进入(网络)后选择(Skype™)。 2. 选择[登入]。 3. 输入[ Skype 账号]和[密码]。 4. 选择[登入]。 登入成功后,即会显示 Skype 的选单画面。 提示 点选[在每次 Skype 启动时自动登入]后,下次起即不必输入[ Skype 账号]和[密码]并能立即登入。但保存密码后,可能会有第三者擅自