[英]Executing PHP in an '<a href=“” action=“php here”></a>'
我正在尝试执行一些PHP,该PHP会从您的浏览器中删除Cookie(用于删除您的登录数据cookie),当您单击名为“注销”的按钮时,我尝试使用操作来执行此操作,但并没有似乎以这种方式工作?
<?php
if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) {
echo "<li><a href=\"#\" action=\"setcookie(\"LoggedIn\", \"\", time(), \"/\");\">Log Out</a></li>";
} else {
echo "<li><a href=\"login.php\">Log in</a></li>";
}
?>
我正在使用'\\'将引号更改为可以放在主引号内的常规文本引号。
所以我的问题主要是,我将如何正确执行它? 我已经尝试过这种方式,但是它没有做任何事情。
据我所知,锚标记(“ a”标记)没有“ action”属性的概念。 我认为您想要的是“ onclick”而不是“ action”。
对我来说,您也在尝试在“ action”属性中执行php函数,但这显然行不通-您需要创建一个简单的JavaScript函数来清除cookie。 例如:
var deleteCookie = function(name,path) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;' + (path ? ' path=' + path : '');
};
然后您可以在链接上的“ onclick”中调用它。
我建议仅使用一个logout.php按钮,该按钮在单击注销按钮后将重定向到登录页面,如下所示:
echo "<li><a href=\"logout.php\">Log Out</a></li>";
注销.php
//Expire Cookie
setcookie('LoggedIn', '', time() - 60*100000, '/');
//Redirect to page
header( 'Location: https://www.foo.com/login.php' ) ;
最好还是将您的href标记链接到运行所需功能的php文件
header("Location: Your URL")
重定向回登录页面或所需的任何位置
您可以使用类似这样的东西;
<a href='/?logout'>Logout</a>
if(isset($_GET['logout'])){ Logout(); }
function Logout() {
unset( $_SESSION[''] ); // unset and session data
session_unset(); // remove all session variables
session_destroy(); // destroy the session
setcookie("LoggedIn", "", time() - 36000, "/"); //unset the remember me cookie
header( "Location: /?loggedOut=1" );
exit;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.