我正在尝试使用PHP将表单应用程序中的数据保存到cookie中
因此,我正在创建一个HTML5游戏,为了创建保存,我想将保存的数据存储在cookie中。为了了解这是如何工作的,我创建了一个表单应用程序:我正在尝试使用PHP将表单应用程序中的数据保存到cookie中,php,forms,cookies,Php,Forms,Cookies,因此,我正在创建一个HTML5游戏,为了创建保存,我想将保存的数据存储在cookie中。为了了解这是如何工作的,我创建了一个表单应用程序: <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <form action="co
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="cookieset.php" method="post">
<p> Astate <input type="text" name="astate" size="10px" /></p>
<p> Wstate <input type="text" name="wstate" size="10px" /></p>
<p> Cstate <input type="text" name="cstate" size="10px" /></p>
<p> Gstate <input type="text" name="gstate" size="10px" /></p>
<p> G2state <input type="text" name="g2state" size="10px" /></p>
<p> G3state <input type="text" name="g3state" size="10px" /></p>
<p> AKCstate <input type="text" name="akcstate" size="10px" /></p>
<p> TKCstate <input type="text" name="tkcstate" size="10px" /></p>
<p> FKCstate <input type="text" name="fkcstate" size="10px" /></p>
<input type="submit" name="submit" value="Submit" />
</form>
<form action="retreive.php" method="get">
<input type="submit" name="retreive" value="Retreive" />
</form>
</body>
</html
<?php
$_POST['$astate'];
$_POST['$wstate'];
$_POST['$cstate'];
$_POST['$gstate'];
$_POST['$g2state'];
$_POST['$g3state'];
$_POST['$akcstate'];
$_POST['$tkcstate'];
$_POST['$fkcstate'];
setcookie("rqs1", $astate);
setcookie("rqs2", $wstate);
setcookie("rqs3", $cstate);
setcookie("rqs4", $gstate);
setcookie("rqs5", $g2state);
setcookie("rqs6", $g3state);
setcookie("rqs7", $akcstate);
setcookie("rqs8", $tkcstate);
setcookie("rqs9", $fkcstate);
if(isset($_COOKIE['rqs1'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs1']))){
echo "null \n";
}
if(isset($_COOKIE['rqs2'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs2']))){
echo "null \n";
}
if(isset($_COOKIE['rqs3'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs3']))){
echo "null \n";
}
if(isset($_COOKIE['rqs4'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs4']))){
echo "null \n";
}
if(isset($_COOKIE['rqs5'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs5']))){
echo "null \n";
}
if(isset($_COOKIE['rqs6'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs6']))){
echo "null \n";
}
if(isset($_COOKIE['rqs7'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs7']))){
echo "null \n";
}
if(isset($_COOKIE['rqs8'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs8']))){
echo "null \n";
}
if(isset($_COOKIE['rqs9'])){
echo "$name : $value <br />\n";
}
elseif(!(isset($_COOKIE['rqs9']))){
echo "null \n";
}
?>
无标题文件
阿斯塔特
Wstate
Cstate
Gstate
G2状态
G3状态
阿克斯特
TKCstate
FKCstate
我假设游戏逻辑是用Javascript编写的?您可以,您也可以使用,这对于大数据来说是一个更好的选择。将post变量分配给变量,而不是使用它们
它会起作用的
<?php
$astate = $_POST['astate'];
$wstate = $_POST['wstate'];
$cstate = $_POST['cstate'];
$gstate = $_POST['gstate'];
$g2state = $_POST['g2state'];
$g3state = $_POST['g3state'];
$akcstate = $_POST['akcstate'];
$tkcstate = $_POST['tkcstate'];
$fkcstate = $_POST['fkcstate'];
?>
我想您在获取数据时遇到了问题
$\u POST['$astate']需要code>,如$\u POST['astate']代码>无需在post字段名称中输入$sing
下面的set cookie就是最好的例子
$astate = $_POST['astate'];
<?php
$expire=time()+60*60*24*30;
setcookie("astate", $astate, $expire);
?>
$astate=$\u POST['astate'];
尝试这样做,如果您有问题,请通知我我认为您需要更改此选项:
$_POST['$astate'];
$_POST['$wstate'];
$_POST['$cstate'];
$_POST['$gstate'];
$_POST['$g2state'];
$_POST['$g3state'];
$_POST['$akcstate'];
$_POST['$tkcstate'];
$_POST['$fkcstate'];
为此:
$astate=$_POST['astate'];
$wstate=$_POST['wstate'];
$cstate=$_POST['cstate'];
$gstate=$_POST['gstate'];
$g2state=$_POST['g2state'];
$g3state=$_POST['g3state'];
$akcstate=$_POST['akcstate'];
$tkcstate=$_POST['tkcstate'];
$fkcstate=$_POST['fkcstate'];
查看setcookie.php,您以错误的方式接收提交的变量。要接收通过post提交的变量,请使用$variable=$\u post['formVariable']代码>
您还以错误的方式设置了cookie。要设置cookie,可以使用setcookie($cookiename、$cookievalue、$timetoexpire)代码>。
因此,您的setcookie.php应该如下所示
<?php
$astate=$_POST['astate'];
$wstate=$_POST['wstate'];
$cstate=$_POST['cstate'];
$gstate=$_POST['gstate'];
$g2state=$_POST['g2state'];
$g3state=$_POST['g3state'];
$akcstate=$_POST['akcstate'];
$tkcstate=$_POST['tkcstate'];
$fkcstate=$_POST['fkcstate'];
//Expire after 1 Hour for example
$timetoexpire=time()+60*60;
//set cookies
setcookie("rqs1", $astate,$timetoexpire);
setcookie("rqs2", $wstate,$timetoexpire);
setcookie("rqs3", $cstate,$timetoexpire);
setcookie("rqs4", $gstate,$timetoexpire);
setcookie("rqs5", $g2state,$timetoexpire);
setcookie("rqs6", $g3state,$timetoexpire);
setcookie("rqs7", $akcstate,$timetoexpire);
setcookie("rqs8", $tkcstate,$timetoexpire);
setcookie("rqs9", $fkcstate,$timetoexpire);
if(isset($_COOKIE['rqs1'])){
echo "$name : ".$_COOKIE['rqs1']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs1']))){
echo "null \n";
}
if(isset($_COOKIE['rqs2'])){
echo "$name : ".$_COOKIE['rqs2']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs2']))){
echo "null \n";
}
if(isset($_COOKIE['rqs3'])){
echo "$name : ".$_COOKIE['rqs3']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs3']))){
echo "null \n";
}
if(isset($_COOKIE['rqs4'])){
echo "$name : ".$_COOKIE['rqs4']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs4']))){
echo "null \n";
}
if(isset($_COOKIE['rqs5'])){
echo "$name : ".$_COOKIE['rqs5']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs5']))){
echo "null \n";
}
if(isset($_COOKIE['rqs6'])){
echo "$name : ".$_COOKIE['rqs6']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs6']))){
echo "null \n";
}
if(isset($_COOKIE['rqs7'])){
echo "$name : ".$_COOKIE['rqs7']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs7']))){
echo "null \n";
}
if(isset($_COOKIE['rqs8'])){
echo "$name : ".$_COOKIE['rqs8']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs8']))){
echo "null \n";
}
if(isset($_COOKIE['rqs9'])){
echo "$name : ".$_COOKIE['rqs9']." <br />\n";
}
elseif(!(isset($_COOKIE['rqs9']))){
echo "null \n";
}
?>
只是稍微更改了一下您的代码:\
<?php
// `$_POST['$some_var']` doesnt create and assign a value to variable `$some_var`,
// Its only check key `$some_var` exists in `$_POST` array and its if exists return its value
// so doing it is WRONG
$params = array( 'astate', 'wstate', 'cstate', 'gstate', 'g2state', 'g3state', 'akcstate', 'tkcstate', 'fkcstate' );
foreach( $params as $param ) {
$cookie = ( isset( $_POST[$param] ) ) ? trim( $_POST[$param] ) : null;
$expire = ( time() + 3600 * 24 * 365 );
if ( $cookie ) {
// everything seems to be fine, now set the cookie
setcookie( $param, $cookie, $expire, "/" );
}
}
// now check here
if ( isset( $_COOKIE["astate"] ) ) {
// yes
}
else {
// no
}
// OR
foreach( $params as $param ) {
if ( isset( $_COOKIE[$param] ) ) {
echo $param." : ".$_COOKIE[$param]." <br />";
}
}
?>
HTML
无标题文件
阿斯塔特
Wstate
Cstate
Gstate
G2状态
G3状态
阿克斯特
TKCstate
FKCstate
PHP
(顺便说一句,您不需要else语句中的第二个if条件,因为它与第一个if条件正好相反)我认为您需要这样做:$astate=$\u POST['$astate']
你的php代码伤害了我的眼睛$name和$value有什么用?如果您必须使用$_cookie['cookiename']回显cookie access的值,为什么在字段名之前要签$sign?谢谢您告诉我我的错误:)下次要小心,因为我们为提问者提供了解决方案,没有问题:)在我尝试了您的建议后仍然给我空值,Junn,我也可能会通过javascript完成此操作,但是我仍然想弄清楚我在PHP中做错了什么,以便更好地理解PHP,为将来的项目等等。我很确定,除了设置COOKIE函数外,您还需要设置$\u COOKIE。谢谢您的关注。非常感谢。你的代码非常容易阅读,我实际上学到了一些东西!
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="cookieset.php" method="post">
<p> Astate <input type="text" name="state[a]" size="10px" /></p>
<p> Wstate <input type="text" name="state[w]" size="10px" /></p>
<p> Cstate <input type="text" name="state[c]" size="10px" /></p>
<p> Gstate <input type="text" name="state[g]" size="10px" /></p>
<p> G2state <input type="text" name="state[g2]" size="10px" /></p>
<p> G3state <input type="text" name="state[g3]" size="10px" /></p>
<p> AKCstate <input type="text" name="state[akc]" size="10px" /></p>
<p> TKCstate <input type="text" name="state[tkc]" size="10px" /></p>
<p> FKCstate <input type="text" name="state[fkc]" size="10px" /></p>
<input type="submit" name="submit" value="Submit" />
</form>
<form action="retreive.php" method="get">
<input type="submit" name="retreive" value="Retreive" />
</form>
</body>
</html>
<?php
$state = $_POST['state'];
$x = 1;
foreach($state as $name => $value) {
setcookie("rqs".$x, $value);
print $name."state : ".$value." <br>";
$x++;
}
?>