繁体   English   中英

使用PHP设置Cookie

[英]set cookie on click with php

嗨,我想在按钮单击上设置一个cookie,但是我有一个问题
这是我的第一个版本的代码,它工作正常

 <?php $ID = is_numeric($_GET['ID']) ? $_GET['ID'] : 1; $cookie_name = "favoritepost"; if ( isset($_COOKIE[$cookie_name]) ) { $kookie = unserialize($_COOKIE[$cookie_name]); } else { $kookie = array(); } if ( ! in_array($ID, $kookie) ) { $kookie[] = $ID; } setcookie($cookie_name, serialize($kookie), time() + (86400 * 30), "/"); // 86400 = 1 day ?> <html> 

然后就像我说的那样,我想将cookie设置为按钮单击,因此我编写了这段代码,但它不是workinf,它没有给我cookie集的问题。 谢谢

 <!doctype html> <?php $ID = is_numeric($_GET['ID']) ? $_GET['ID'] : 1; $cookie_name = "favoritepost"; if ( isset($_COOKIE[$cookie_name]) ) { $kookie = unserialize($_COOKIE[$cookie_name]); } else { $kookie = array(); } if ( ! in_array($ID, $kookie) ) { $kookie[] = $ID; } ?> <button type="button" onclick="setcookie('<?php echo $cookie_name;?>', '<?php echo serialize($kookie);?>', time() + (86400 * 30), "/")">Click Me!</button> <html> 

您正在混用JSPHP ,这是致命的组合。 JS是一种客户端语言,而PHP是一种服务器端语言。

您在PHP中编写的所有内容都是在服务器上执行的,而您在JS中编写的所有内容都是在客户端执行的。


第一个解决方案是使用AJAX调用将PHP脚本与JS连接。 单击按钮即可调用AJAX函数,该按钮在服务器端调用PHP脚本以保存cookie。

参考: http : //www.w3schools.com/PHP/php_ajax_php.asp


另一种解决方案是仅在客户端执行操作以保存/获取cookie。

参考: http : //www.w3schools.com/js/js_cookies.asp


在服务器端执行此操作比较可取,因为它比客户端代码具有更高的安全性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM