调用javascript函数来运行php代码

时间:2013-01-01 17:01:52

标签: php javascript jquery cookies

我正在尝试创建一个登录页面,当你点击注销时它会将你注销然后刷新页面,但是,只要JavaScript $ .get就是它,它只是不运行php代码,但它确实刷新页面。非常感谢帮助。

的index.php

   <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
   <script type="text/javascript">
    function logOut() {
            $.get("logout.php");
            location.Reload();
            return false;
        }
   </script>
   <a href="#" onclick="logOut();">Log Out</a>

logout.php

<?php
    setcookie('username', '', 0);
    setcookie('password', '', 0);
?>

4 个答案:

答案 0 :(得分:4)

您必须在成功时添加刷新,或者至少等待呼叫结束。

  <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
   <script type="text/javascript">
    function logOut() {
            $.get("logout.php" , returndata , function() {
            location.Reload(); });
        }
   </script>
   <a href="#" onclick="logOut();">Log Out</a>

更改您的setcookie也要立即删除。常用方法是输入过去的时间戳:

setcookie('cookiename',0,( time() - 3600 ));

答案 1 :(得分:3)

为什么不使用javascript删除cookie,而不是使用PHP来处理PHP cookie。

答案 2 :(得分:1)

根据setcookie

setcookie('username', '', 0);

在会话结束时到期

  

到期
      Cookie过期的时间。这是一个Unix时间戳,因此是自纪元以来的秒数。换句话说,您很可能使用time()函数加上希望它到期之前的秒数来设置它。或者你可以使用mktime()。 time()+ 60 * 60 * 24 * 30会将cookie设置为30天后到期。如果设置为0或省略,则cookie将在会话结束时(浏览器关闭时)到期。

如果要删除Cookie,则应使用0

以外的其他值
setcookie('username', '', 1);

答案 3 :(得分:1)

首先 ,你实现了你的登出功能错误。 如果你想删除所有的cookie(假设你的系统不复杂,比如当你不需要保持用户的优先权时,如主题,语言,UI参数)

然后logout.php应与

类似
<?php

//Will remove all cookies
if ( !empty($_COOKIE) ){
  foreach($_COOKIE as $key){
     //Set each key in past
     setcookie($key, null, time() - 84600);

  }
}

//Would destroy the session if it does exists
if ( !empty($_SESSION) ){
  session_destroy();
}

//Don't forget to redirect back to home page
header('Location: /');
exit();

如果您100%确定已设置Cookie,但setcookie()不会删除它们,则可能99%它们位于不同的路径上。

确保在设置/删除它们时,它们位于同一条路径上。 setcookie()采用名为path的第四个可选参数。

<?php

//So when you set a cookie
setcookie('cookie_key', 'cookie_value', time() + some_lifetime_in_seconds, '/');

//And when you remove a cookie:
setcookie('cookie_key', '', time() - 86400, '/');

<强>第二
你不应该使用类似AJAX的注销功能。这是不明智的,有点内存浪费。

代码:

   <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
   <script type="text/javascript">
    function logOut() {
            $.get("logout.php");
            location.Reload();
            return false;
        }
   </script>
   <a href="#" onclick="logOut();">Log Out</a>

应改写为

 <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
 <a href="/logout.php">Log Out</a>