在 '<a href="" action="php here"></a>' 中执行 PHP
Posted
技术标签:
【中文标题】在 \'<a href="" action="php here"></a>\' 中执行 PHP【英文标题】:Executing PHP in an '<a href="" action="php here"></a>'在 '<a href="" action="php here"></a>' 中执行 PHP 【发布时间】:2017-02-14 03:08:13 【问题描述】:我正在尝试执行一些 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>";
?>
我正在使用“\”将引号更改为可以放在主引号内的常规文本引号。
所以我的问题主要是,我将如何正确执行它?我已经尝试过这种方式,但它没有做任何事情。
【问题讨论】:
除非我错过了什么,否则action
元素上没有action
属性。您是要创建链接还是表单?看起来您只是想用onclick
制作一个按钮,那么为什么不这样做呢?至于setcookie()
这个函数,你在哪里定义的?
不。仅在页面加载之前处理 PHP。当页面完全加载后,你想使用 javascript,要么做类似的过程,要么调用 ajax 函数向 PHP 页面发送请求。
您正在尝试通过 html 中的“操作”执行 PHP 函数。我认为你想调用一个 JavaScript 函数,它会对你的页面进行 AJAX 调用,从而执行 PHP 函数。
【参考方案1】:
我建议只有一个 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' ) ;
【讨论】:
我试过了,甚至用var_dump检查cookie是否仍然存在,cookie保存了用户名的字符串,但它仍然显示cookie存在 您需要确保您设置的参数与您之前设置的完全相同(忽略值和到期时间),否则它将无法正常工作。我遇到了同样的问题,正是这个 SO 问题帮助了我:***.com/questions/2856366/…【参考方案2】:据我所知,锚标签(“a”标签)没有“动作”属性的概念。我认为您在这里想要的是“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”中调用它。
【讨论】:
【参考方案3】:你可以使用这样的东西;
<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;
【讨论】:
【参考方案4】:最好还是将您的 a href 标记链接到运行您需要和使用的功能的 php 文件
header("Location: Your URL")
重定向回登录页面或您想要的任何地方
【讨论】:
以上是关于在 '<a href="" action="php here"></a>' 中执行 PHP的主要内容,如果未能解决你的问题,请参考以下文章
使用 --- innerHTML = "...<a href='http://...'>HttpLink</a>..." 在 javascript 函数中创
在这种情况下使用 <a href="http://name.com" rel="noindex, nofollow">name</a>
我要在<a href=""></a>的href里填写一段由window.location.href获得的地址,怎么编写?
在<a href=""></a>里,我要在href动态显示当前网址,用javascript的 document.write(window.locat