我在下面写了一个小 PHP 脚本来演示我的问题。像这样运行下面的代码:http://localhost/test.php?test=10,然后运行http://localhost/test.php?test=11,然后http://localhost/test.php?test= 12等。你会看到屏幕上显示的数字总是在 url 数字后面 1 位数字?!也许是因为我无法读取 cookie 并立即读取相同的 cookie?
//如果查询字符串有$test,保存在session中,cookies供以后使用。
如果($_GET[测试]){
$_SESSION['test'] = $_GET[test];
setcookie("test", $_GET[test], time()+60*60*24*30*12*10); //10年
}
//如果用户稍后回来,则从cookie中获取$test
如果(isset($ _COOKIE [“测试”])){
$_SESSION['test'] = $_COOKIE["test"];
}
回声“会话测试:”。$_SESSION['测试'];
后来我用下面的代码解决了这个问题,但是解决的还不够好,我想知道为什么会这样!
这解决了它:
if($_GET[cid]){
setcookie("campaignid", $_GET[cid], time()+60*60*24*30*12*10); //10年
$_SESSION['campaignid'] = $_GET[cid];
}elseif (isset($_COOKIE["campaignid"])){
$_SESSION['campaignid'] = $_COOKIE["campaignid"];
}
我试图找出如何设置 javascript cookie,以便在访问者的第 4 次页面浏览后显示一个fancybox 弹出窗口。
这是我用来显示 Fancybox 弹出窗口的代码,但正如您所看到的,这仅在第一次浏览时显示代码,一天后过期
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value + ";domain=.mysite.net;path=/";
}
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
jQuery(document).ready(function() {
var show = getCookie("fancyreg");
if(show==null || show=="") {
$.fancybox(
{
'type' : 'iframe',
'href' : 'http://www.mysite.net/popup/', //URL to popup page or image
'autoDimensions' : …Run Code Online (Sandbox Code Playgroud) 我在我的网站中提供了一个直接的下载链接,如下所示。
<a href="myfile.pdf">Download here</a>
Run Code Online (Sandbox Code Playgroud)
每个人都可以访问此文件。但我想根据登录用户来限制这个。
假设用户在成功登录后有一个活动会话/cookie,如下所示。
$_SESSION['login'] = 1 or $_COOKIE['login'] = 1
Run Code Online (Sandbox Code Playgroud)
即使设置了以下条件,人们也可以手动输入http://web.com/myfile.pdf并能够下载文件...
if($_SESSION['login']===1 && $_COOKIE['login']===1){
echo '<a href="myfile.pdf">Download here</a>';
}
Run Code Online (Sandbox Code Playgroud)
其他匿名用户应该无法访问该文件。
我有一个 servlet,位于site.com/foo/BarServlet. 该 servlet 负责设置 cookie。问题是,当我设置 cookie 时,它们的路径设置为/foo. 这是否意味着位于 的任何 servletsite.com/SomeOtherServlet将无法访问这些 cookie?
如果是这样,有没有办法可以在整个域上设置 cookie?如果我尝试这样做cookie.setPath("/"),那么出于某种原因,当我尝试通过 删除 cookie 时cookie.setMaxAge(0),这没有任何效果并且它仍然存在。
我正在创建一个简单的博客,用户可以在其中添加、更新和查看帖子。我已经在帖子中实现了查看次数功能,该功能显示了帖子的查看次数。为此,我所做的是:
创建了一个事件监听器:
Event::listen('post.viewed', 'PostHandler@updatePostViewsAction');
创建了PostHandler和updatePostViewsAction
class PostHandler
{
public function handle()
{
//
}
public function updatePostViewsAction( $post )
{
// Update view counter of post
$post->views_count = $post->views_count + 1;
$post->save();
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,并且观看次数正在成功更新。但后来我决定对视图进行唯一计数。为此,我尝试使用 cookie,即在用户计算机上创建cookie,每当他查看帖子并增加views_count. 如果用户再次回来并再次查看帖子,请检查是否有可用的 cookie,如果可用则不要增加views_count,否则增加。下面是我是如何实现的:
class PostHandler
{
public function handle()
{
//
} …Run Code Online (Sandbox Code Playgroud) 我已经搜索了很长时间,但我找不到如何使用 selenium 和 python 禁用 phantomjs 的 cookie。我无法理解 phantomjs 的文档。请有人帮助我。
我用会话在 mvc5 中编写了一个购物车,但我想用 cookie 替换实现。这是订单操作:
public ActionResult OrderNow(int id)
{
if(Session["cart"]==null)
{
List<Item> cart = new List<Item>();
cart.Add(new Item(de.Products.Find(id),1));
Session["cart"] = cart;
}
else
{
List<Item> cart = (List<Item>)Session["cart"];
int index = isExisting(id);
if (index == -1)
cart.Add(new Item(de.Products.Find(id), 1));
else
cart[index].Quantity++;
Session["cart"] = cart;
}
return View("Cart");
}
Run Code Online (Sandbox Code Playgroud)
和 Item 类是:
public class Item
{
private Product pr = new Product();
public Product Pr
{
get { return pr; }
set { pr = value; }
}
private int …Run Code Online (Sandbox Code Playgroud) 我在自定义中间件中有以下代码:
public function handle($request, Closure $next)
{
if($request->hasCookie('uuid')) {
return $next($request);
}
$uuid = 99;
$response = $next($request);
return $response->withCookie(cookie()->forever('uuid', $uuid));
}
Run Code Online (Sandbox Code Playgroud)
我已在app.php文件中注册了中间件,但仍未编写cookie.请任何人都可以帮忙.另外上面这个可以作为一个单独运行,所以它在应用程序启动时执行一次?
谢谢
尝试设置Cookie并在设置时出现错误
警告:Cookie名称不能包含以下任何'= ,; \ t \ r \ n \ 013 \ 014'
但是我的名字selector好吗?
$cookie = new Cookie('selector', $cookieData, time() + 60 * 60 * 24 * 365, '/', null, false, false);
setCookie($cookie);
Run Code Online (Sandbox Code Playgroud) 如果存在某个Cookie(使用通用Cookie),则当用户退出应用程序时,我需要从浏览器中删除Cookie。
我有的代码:
componentWillUnmount(){
const cookies = new Cookies();
if(cookies.get("remember")==0){
cookies.remove("userName");
cookies.remove("password")
}
}
Run Code Online (Sandbox Code Playgroud)
适用于其他组件,但我只需要在根上将其触发即可在用户关闭应用程序之前触发。
当应用程序退出时,为什么componentWillUnmount不会触发?