我有Wordpress网站,我在其中设置自己的表来存储用户登录凭据。人们可以注册正常,但是当需要登录并创建会话时,它似乎不起作用。
这是我的标题:
<?php
// Initialize session
session_start();
// Initialize DB
include("functions/connect.php");
<span class="login">
<?php
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username']))
{
?>
<p>Welcome, <?php echo $_SESSION['Username']?></p>
<?php
}
else
{
?>
<p>Login</p><p>|</p><p>Signup</p>
<?php } ?>
</span>
这是在我的登录页面上。
<?php
if(isset($_POST['name']) && !empty($_POST['name']) AND isset($_POST['password']) && !empty($_POST['password']) AND isset($_POST['name']) && !empty($_POST['name'])){
$username = mysql_escape_string($_POST['name']);
$password = mysql_escape_string(md5($_POST['password']));
$search = mysql_query("SELECT username, password, active FROM wp_thread_users WHERE username='".$username."' AND password='".$password."' AND active='1'") or die(mysql_error());
$match = mysql_num_rows($search);
if($match > 0){
$msg = 'Login Complete! Thanks';
//$email = $row['EmailAddress'];
$_SESSION['Username'] = $username;
//$_SESSION['EmailAddress'] = $email;
$_SESSION['LoggedIn'] = 1;
}else{
$msg = 'Login Failed!<br /> Please make sure that you enter the correct details and that you have activated your account.';
}
}
?>
<!-- stop PHP Code -->
<!-- title and description -->
<h2>Login Form</h2>
<p>Please enter your name and password to login</p>
<?php
if(isset($msg)){ // Check if $msg is not empty
echo '<div class="statusmsg">'.$msg.'</div>'; // Display our message and add a div around it with the class statusmsg
} ?>
<!-- start sign up form -->
<form action="" method="post">
<label for="name">Username:</label>
<input type="text" name="name" value="" />
<label for="password">Password:</label>
<input type="password" name="password" value="" />
<input type="submit" class="submit_button" value="login" />
</form>
我的代码在没有Wordpress的常规php页面上工作,但是当我在Wordpress网站上登录时,它会将我重定向到“wp-login.php”,它也从不存储会话。有什么帮助吗?
编辑:
忘了添加,这是我的functions.php
add_action('init', 'initEverything');
function initEverything() {
if(!session_id()) {
session_start();
}
}
感谢。
答案 0 :(得分:0)
我知道当人们提出这样的问题而不是帮助时,这真的很烦人,但为什么你不只是使用WordPress的wp_users表?然后,您可以使用一行函数wp_signon
:
http://codex.wordpress.org/Function_Reference/wp_signon
您可能不会使用WordPress开箱即用的用户管理功能为自己创造额外的工作。
编辑:鉴于我们在下面的评论,这里有一些关于使用WordPress的wp_users
做你正在尝试做的事情的简单方法的一些指示。我已经完成了您在其他网站上尝试实现的目标,我强烈建议您不要创建自定义用户表。
自定义用户元: http://codex.wordpress.org/Function_Reference/add_user_meta
阻止用户访问wp-admin(许多简单方法之一): http://pento.net/2011/06/19/preventing-users-from-accessing-wp-admin/
我实际上正在写一篇关于如何做到这一点的博客文章,所以一旦它出现我就会通知你。
答案 1 :(得分:0)
我知道这现在已经过时了,但我终于创造了一个如何去做我认为你想做的事情。有一些我可以充实的内容,比如添加用户元,但我很乐意反馈并知道它是否对你有所帮助:
这是博客的首次发布,所以欢迎您提出任何其他想法。
干杯,
杰克