setcookie 在从一个页面到另一个页面的 PHP 中不起作用
setcookie doesn't work in PHP from a page to another one
早上好,
我是一名大学生,我正在尝试做一个关于 PHP 的基本练习,特别是我正在尝试设置一个值为 IT 的 cookie(国家/地区)。
任务是打开页面a,然后点击link"pagina successiva"(下一页英文)。浏览器将打开页面 b,该页面应读取 cookie Country 的值并可视化(如果存在)。
在教授的要求中写道,我不必设置过期时间。
这是我的页面代码:
<?php
$value = 'IT';
setcookie('Country',$value, 0, "", "", TRUE);
?>
<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<title>Esercizio 10.1 pagina A</title>
<meta name="author" content="Pippo Baudo" >
<link rel="stylesheet" type="text/css" href="../sol10_css/lab10_style.css">
</head>
<body>
<h1>Esercizio 10.1a</h1>
<p>Italia!</p>
<p><a href='10_1b.php'>Pagina successiva</a></p>
</body>
</html>
这是我的页面b的代码:
<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<title>Esercizio 10.1b</title>
<meta name="author" content="Pippo Baudo" >
<link rel="stylesheet" type="text/css" href="../sol10_css/lab10_style.css">
</head>
<body>
<h1>Esercizio 10.1 pagina B</h1>
<?php
if(isset($_COOKIE["Country"])){
$nazione = $_COOKIE["Country"];
echo"<p>Il valore del cookie COUNTRY è $nazione </p>";}
else{
echo"<p class='err'> ERRORE: Cookie \"Country\" assente</p>";
echo"<p><a href='10_1a.php'>Pagina precedente</a></p>";}
?>
</body>
</html>
页面b的输出说没有设置cookie,所以没有。
我不知道我做错了什么。谁能阻止我吗?
编辑:当我打开页面 a 时出现的错误是:Parse error: syntax error, unexpected 'setcookie' (T_STRING) in /app/lab10/10_1/10_1a.php on line 3
我假设您尝试使用不安全的 (http
) 连接访问您的网页,但提供了 TRUE
作为最后一个参数,这意味着:
secure: Indicates that the cookie should only be transmitted over a
secure HTTPS connection from the client. When set to TRUE
, the
cookie will only be set if a secure connection exists. On the
server-side, it's on the programmer to send this kind of cookie only
on secure connection (e.g. with respect to $_SERVER["HTTPS"]
).
来自 PHP 手册 (https://www.php.net/manual/en/function.setcookie.php)
如果您尝试 setcookie('Country', $value, 0, '', '', FALSE);
或只是 setcookie('Country', $value, 0);
什么将保留默认值它应该工作。或者,您可以使用 https
.
访问您的页面
我进一步建议使用像 EditThisCookie 这样的浏览器插件(对于 Google Chrome)来测试和分析与 cookie 相关的问题:https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg
早上好, 我是一名大学生,我正在尝试做一个关于 PHP 的基本练习,特别是我正在尝试设置一个值为 IT 的 cookie(国家/地区)。 任务是打开页面a,然后点击link"pagina successiva"(下一页英文)。浏览器将打开页面 b,该页面应读取 cookie Country 的值并可视化(如果存在)。 在教授的要求中写道,我不必设置过期时间。 这是我的页面代码:
<?php
$value = 'IT';
setcookie('Country',$value, 0, "", "", TRUE);
?>
<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<title>Esercizio 10.1 pagina A</title>
<meta name="author" content="Pippo Baudo" >
<link rel="stylesheet" type="text/css" href="../sol10_css/lab10_style.css">
</head>
<body>
<h1>Esercizio 10.1a</h1>
<p>Italia!</p>
<p><a href='10_1b.php'>Pagina successiva</a></p>
</body>
</html>
这是我的页面b的代码:
<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<title>Esercizio 10.1b</title>
<meta name="author" content="Pippo Baudo" >
<link rel="stylesheet" type="text/css" href="../sol10_css/lab10_style.css">
</head>
<body>
<h1>Esercizio 10.1 pagina B</h1>
<?php
if(isset($_COOKIE["Country"])){
$nazione = $_COOKIE["Country"];
echo"<p>Il valore del cookie COUNTRY è $nazione </p>";}
else{
echo"<p class='err'> ERRORE: Cookie \"Country\" assente</p>";
echo"<p><a href='10_1a.php'>Pagina precedente</a></p>";}
?>
</body>
</html>
页面b的输出说没有设置cookie,所以没有。
我不知道我做错了什么。谁能阻止我吗?
编辑:当我打开页面 a 时出现的错误是:Parse error: syntax error, unexpected 'setcookie' (T_STRING) in /app/lab10/10_1/10_1a.php on line 3
我假设您尝试使用不安全的 (http
) 连接访问您的网页,但提供了 TRUE
作为最后一个参数,这意味着:
secure: Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client. When set to
TRUE
, the cookie will only be set if a secure connection exists. On the server-side, it's on the programmer to send this kind of cookie only on secure connection (e.g. with respect to$_SERVER["HTTPS"]
).
来自 PHP 手册 (https://www.php.net/manual/en/function.setcookie.php)
如果您尝试 setcookie('Country', $value, 0, '', '', FALSE);
或只是 setcookie('Country', $value, 0);
什么将保留默认值它应该工作。或者,您可以使用 https
.
我进一步建议使用像 EditThisCookie 这样的浏览器插件(对于 Google Chrome)来测试和分析与 cookie 相关的问题:https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg