2014-05-18 100 views
0

我是新來的PHP,有沒有什麼辦法可以在激活成功後使用PHP身份驗證(auth)或會話直接記錄用戶?登錄使用PHP身份驗證或激活後的會話

這裏是我的激活腳本:

<?php 
require_once('recaptchalib.php'); 
$privatekey = "your_private_key"; 
$resp = recaptcha_check_answer ($privatekey, 
$_SERVER["REMOTE_ADDR"], 
$_POST["recaptcha_challenge_field"], 
$_POST["recaptcha_response_field"]); 

if (!$resp->is_valid) { 
// What happens when the CAPTCHA was entered incorrectly 
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . 
"(reCAPTCHA said: " . $resp->error . ")"); 
} else { 
$username = $_POST['username']; 
$activation_code = $_POST['activation_code']; 
$db_host = "localhost"; 
$db_name = "databasename"; 
$db_use = "root"; 
$db_pass = "password"; 
$link = mysqli_connect($db_host, $db_use, $db_pass); 
mysqli_select_db($db_name, $link); 
$command = "UPDATE email_activation SET check_activation='$activation_code' WHERE username='$username' and activation='$activation_code'"; 
$result = mysqli_query($command); 
if ($result) { 
echo "Congratulations. Your membership has been activated …"; 
}else{ 
echo ("You've entered an invalid username/activation code – please retry"); 
} 
} 
?> 
+0

你在調用'session_start'嗎? – T0xicCode

+0

如何使用會話啓動? – Vinson

回答

1

是你可以..只是把這個代碼後,該

if ($result) { 
echo "Congratulations. Your membership has been activated …"; 
$_SESSION['user_logged'] = '1'; 
header("location:afterloginpage.php"); 
}else{ 
echo ("You've entered an invalid username/activation code – please retry"); 
} 
} 

,或者如果你想保存會話,您可以隨時檢查會話是否設置

if (isset($_SESSION['user_logged'])) { 
    //User directly logged in 
}else { 
    //Navigate user to login page 
    header("location:loginpage.php"); 
} 

也不要忘記初始化session_start();在php文件的頂部

+0

感謝您的幫助。 – Vinson

+0

沒問題的人:) –

0

你可以做這樣的事情。

if ($result) { 
    header("Refresh: 5; url=next_file.php"); 
    echo "Congratulations. Your membership has been activated … If your not redirected in 5 seconds, please click <a href='next_file.php'>here</a>"; 
}