ユーザーのログイン資格情報を保存するために独自のテーブルをセットアップするWordpress Webサイトがあります。人々は問題なく登録できますが、ログインしてセッションを作成するときが来ると、うまくいかないようです。
これは私のヘッダーにあります:
<?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();
}
}
ありがとう。