通过post传递json对象以及其他数据

时间:2016-08-16 23:44:04

标签: javascript php json

我正在尝试通过帖子传递3个变量,用于网站的基本管理面板。

我有一个像这样的表格

<script>
  var json = {"thing":"stuff"};
  var json_file = JSON.stringify(json);
</script>

<form action='load.php' method='post'>
    <input type='hidden' name='username' value='<?php echo $_POST["username"]; ?>' />
    <input type='hidden' name='password' value='<?php echo $_POST["password"]; ?>' />
    <input type='hidden' name='json' value='json_file' />
    <input type='submit' value='Submit' />
</form>

我需要传递用户名和密码,以确保此人可以访问。并且json应该被传递,因此PHP脚本可以将其写入文件。

我尝试在json_file中包裹btoa(json_file)并使用base64_decode($_POST["json"])来撰写,但它总是在写东西而不应该' '

2 个答案:

答案 0 :(得分:1)

<script>
  var json = {"thing":"stuff"};
  var json_file = JSON.stringify (json);
</script>

<form method='post' onsubmit="this.json.value = json_file;">
    <input type='hidden' name='json'/>
    <input type='submit' value='Submit' />
</form>

<?php

if (isset ($_POST['username'], $_POST['password'])) {
    if ($_POST['username'] == 'admin' && $_POST['password'] == 'password') {
        // do something
    }
}

?>

答案 1 :(得分:0)

value='json_file'表示该值设置为字符串'json_file',而不是变量json_file的值。您可以改为:

<script>
  var json = {"thing":"stuff"};
  var json_file = JSON.stringify(json);
  window.onload = function() {
    document.getElementsByName('json')[0].value = json_file;
  };
</script>

<form action='load.php' method='post'>
  <input type='hidden' name='username' value='<?php echo $_POST["username"]; ?>' />
  <input type='hidden' name='password' value='<?php echo $_POST["password"]; ?>' />
  <input type='hidden' name='json' />
  <input type='submit' value='Submit' />
</form>