2016-08-16 64 views
0

我想通過帖子爲基本的管理面板爲一個網站的3個變量。通過帖子傳遞json對象以及其他數據

我有像這樣

<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腳本可以將它寫入文件。

我試圖在包裝btoa(json_file)json_file,並使用base64_decode($_POST["json"])寫的,但它總是寫的東西不應該「」

+0

爲什麼不把這樣的事情在一個會話?沒有必要把他們放在一個網頁表格中,他們可以被損壞或篡改 – Machavity

+0

你在這裏缺少一個引用:'{「thing」:「stuff」}'。 – ryanpcmcquen

+1

爲什麼不通過AJAX嘗試它並附加用戶和密碼?一個URL編碼? – MikeVelazco

回答

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

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