简体   繁体   English

我试图使用PHP将数据从表单应用程序保存到cookie

[英]I am trying to save data from a form app to a cookie using PHP

So, I am creating a HTML 5 game and to create saves I want to store the save data in cookies. 所以,我正在创建一个HTML 5游戏并创建我希望将保存数据存储在cookie中的保存。 In trying to understand how this works I created a form app: 在试图了解其工作原理时,我创建了一个表单应用:

<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

also, please forgive my noobness as I am sure it is just a stupid mistake or my lack of basic understanding of something, here is cookie set.php, the error handeling is working, I am just getting null for every value insted of the value I put into the form app: 另外,请原谅我的noobness,因为我确信这只是一个愚蠢的错误,或者我对某些东西缺乏基本的理解,这里是cookie set.php,错误handeling正在工作,我只是为每个值的值得到null我把表格app放入:

<?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";
    }


?>

I think you have a problem in get data 我认为你在获取数据方面存在问题

$_POST['$astate']; is needed like $_POST['astate']; 需要像$_POST['astate']; no need a $ sing in post field name. 在帖子字段名称中不需要$ sing。

for set cookie below is best example 对于下面的设置cookie是最好的例子

$astate = $_POST['astate'];

<?php
$expire=time()+60*60*24*30;
setcookie("astate", $astate, $expire);
?>

Try like this and if you have problem than inform me 尝试这样,如果你有问题,请通知我

Assign post variables to variables than use them. 将变量分配给变量而不是使用变量。

it will work 它会工作

   <?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'];
   ?>

I assume the game logic is in Javascript? 我假设游戏逻辑是在Javascript中? You can set cookies from javascript , you can also use localstore which would be a better option for large data. 您可以从javascript设置cookie ,也可以使用localstore ,这对于大数据来说是更好的选择。

I think you need to change this: 我想你需要改变这个:

$_POST['$astate'];
$_POST['$wstate'];
$_POST['$cstate'];
$_POST['$gstate'];
$_POST['$g2state'];
$_POST['$g3state'];
$_POST['$akcstate'];
$_POST['$tkcstate'];
$_POST['$fkcstate'];

to this: 对此:

$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'];

Looking at your setcookie.php, you are receiving the submitted variables in the in the wrong way. 查看您的setcookie.php,您将以错误的方式接收提交的变量。 To receive a variable submitted via post, you use $variable=$_POST['formVariable']; 要接收通过post提交的变量,请使用$variable=$_POST['formVariable']; You are also setting the cookie in the wrong way. 您也以错误的方式设置cookie。 To set a cookie, you use setcookie($cookiename, $cookievalue, $timetoexpire); 要设置cookie,请使用setcookie($cookiename, $cookievalue, $timetoexpire); . Your setcookie.php should therefore look like this 因此,你的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";
    }
    ?>

just changed your code a little :\\ 刚刚更改了你的代码:

<?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 HTML

<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 PHP

<?php
$state = $_POST['state'];
$x = 1;
foreach($state as $name => $value) {
  setcookie("rqs".$x, $value);
  print $name."state : ".$value." <br>";
  $x++;
}
?>

(btw you don't need the second if condition in the else statement because its just the opposite of your first if condition) (顺便说一句,你不需要在else语句中使用第二个if条件,因为它与你的第一个条件相反)

暂无
暂无

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

相关问题 我正在尝试使用PHP从FORM发送电子邮件,但是我收到的详细信息没有发件人电子邮件地址 - I am trying to send email from a FORM using PHP, but i receive the details without the From email Address 我正在尝试获取一个动态表单,之后需要使用 PHP 将其数据插入数据库 - I am trying to get a dynamic form after which its data needs to be inserted in the DB using PHP 我正在尝试使用PHP创建一个编辑表单 - I am trying to make a Edit form Using PHP 我正在尝试使用PHP Curl填写表格 - I am trying to fill in a form by using PHP Curl 如何将加密的数据保存在Cookie中(使用php)? - How to save encrypted data in cookie (using php)? 我试图使用ajax从数据库中检索数据并填充在引导模式中的表单 - I am trying to retrieve data from a database using ajax and populate in form that is in a bootstrap modal 如何从 PDO 将数据保存到 PHP 中的 cookie 中 - How to save data into cookie in PHP from PDO 如何使用HTTPURLConnection从我的Android应用程序同时上传表单数据和多个文件到使用PHP的服务器? - How do I upload both form data and multiple files from my android app, using HTTPURLConnection to my server, where I am using PHP? 我正在尝试创建一个按钮,以删除使用PHP和AJAX从MySQL中选择的一行数据。 - I am trying to create a button to delete a row of data selected from MySQL using PHP and AJAX. 我正在尝试从php $ _GET获取数据,然后使用rest api对其进行解析,但这会导致错误 - I am trying to get data from php $_GET then parse it using rest api, but it causes an error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM