我有一个名为User的类,它有一个名为logout()的函数。我在index.php中创建了该类的一个实例,并在调用memberspage.php之前将其值传递给$_SESSION[usr]。在memberspage.php中,我有一个名为logout的链接,单击该链接时,我希望运行logout()函数,并将用户发送到index.php。为此,我做了这样的事。
<a href="index.php" onclick= "$_SESSION[usr]->logout()">Log out</a>我知道->造成了这个问题,但我不知道如何解决它。为了你的时间。
下面的代码适用于我
<a href="index.php" onclick ="alert('<?php echo $_SESSION["user"]->logOut(); ?>')">Log out</a>但有个问题。如果我转到上面的代码所在的页面(memberspage.php),然后按下后箭头(不是注销链接),logOut()函数仍将被使用(会话被销毁,我将不得不再次登录以访问memberpage.php)。我不明白,因为我认为调用logOut()函数的唯一方法是单击logOut链接。
发布于 2016-03-15 05:45:31
如果$_SESSION[usr]->logout()像你在评论中所说的那样为你工作。我不知道是怎么回事。
但是这里只用于在锚标记中调用php函数,这完全取决于您的函数响应。
<?php
function usr(){
return "abc";
}
?>
<a href="index.php" onclick ="alert('<?php echo usr(); ?>')">Log out</a>发布于 2016-03-15 05:36:56
首先,我建议您更改对会话的使用--您可以创建一个页面,例如,在session.php中,您的所有会话都位于其中,它也可以是登录页面的重新目录页。
就像这个叫login.php的
在表单中创建使操作重定向到session.php
我还建议您所有的php登录代码都在session.php中,然后编写此代码。
<?php
session_start();
$host = "localhost";
$uname = "root";
$pass = "";
$db = "mydb;
//database connection
$conn = mysqli_connect($host, $uname, $pass, $db);
mysqli_select_db($conn, $db);
if(!$conn){
die("Connection failed: " . mysqli_connect_error());
}
if(isset($_POST['username'])){
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
//$username = mysqli_real_escape_string($username);
//$password = mysqli_real_escape_string($password);
$sql = "SELECT * FROM table WHERE username = '" .$username. "' AND password = '".$password."' LIMIT 1";
$res = mysqli_query($conn, $sql);
if(mysqli_num_rows($res) > 0){
if($data = mysqli_fetch_assoc($res))
{
$_SESSION['type'] = $data['type'];
if(isset($_SESSION["login_user"]))
{
if($data['type'] == 'admin'){
header('location: admin.php');
}
else if($data['type'] == 'customer'){
header('location: customerhome.php');
}//header('location: uservalidation.php');
}
}
}
else{
//header('location: #');
echo '<script>';
echo 'alert("Invalid no?")';
echo '</script>';
header('location: logind.php');
}
}
?>然后创建另一个页面,即logout.php
将此代码放入:
<?php
session_start();
header('location: index.php');
session_destroy();
?>然后保存,把你的页面链接到logout.php
发布于 2016-03-15 06:24:09
添加文件logout.php并将您的注销实现放入其中:
<?php
header('Content-Type: application/json');
$_SESSION[usr]->logout();
echo json_encode(['message' => 'ok']);并使用AJAX调用该文件:
<script>
function logout() {
$.ajax({
url: '/logout.php'
}).then(function (res) {
window.location.href = '/';
});
}
</script>
<a href="#" onclick= "logout();">Log out</a>https://stackoverflow.com/questions/36003269
复制相似问题