Javascript 如何发布相同数据的多页
第一个页面是registration.php 关于pay.phpJavascript 如何发布相同数据的多页,javascript,php,html,Javascript,Php,Html,第一个页面是registration.php 关于pay.php <form action="success.php" method="post"> <input type="hidden" value=<?php echo json_encode($_POST); ?> custom="Hidden Element" name="customer"> <
<form action="success.php" method="post">
<input type="hidden" value=<?php echo json_encode($_POST); ?> custom="Hidden Element" name="customer">
</form>
不要将数据传回前端,而是在服务器上创建一个临时存储所有页面数据的服务器 启动会话时,您可以使用
$\u session
全局变量访问和设置值。会话启动后,此变量可用于所有文件,并将保留您的值,直到会话结束
// Check if there is an active session.
// Otherwise start it.
if ( ! session_id() ) {
session_start();
}
// Receive and store.
$customer = $_POST[ 'customer' ]
$_SESSION[ 'customer' ] = $customer;
// Just to show what is in the session.
echo json_decode( $_SESSION[ 'customer' ] );
如果已完成,并且希望在最后一页结束会话,则使用删除整个会话。另一种选择是让会话超时并删除它本身
<?php
$data = ["name"=>"Thomas O'Leary"];
$encoded = json_encode($data);
//$encoded = bin2hex($encoded);
var_dump($_POST);
if(isset($_POST['data'])) {
$data = $_POST['data'];
//$data = hex2bin($data);
$data = json_decode($data, true);
var_dump($data);
}
?>
<form method='post'>
<input type='hidden' name='data' value='<?= $encoded ?>'>
<input type='submit'>
</form>
表示数据丢失,json无效
这是因为隐藏字段值中有引号:
<input type='hidden' name='data' value='{"name":"Thomas O'Leary"}'>
有些人使用
htmlentities($data,entu QUOTES)
或base64\u encode($data)
作为另一种解决方法。通常不建议重新分配到$\u POST
。查看生成的HTML。它可能不是有效的HTML。您还需要使用htmlspecialchars来转义JSON中的任何字符,这些字符会弄乱您的HTML,但是我有一个大的注册表数据。所以再利用$_POST@Progrock我以前的代码片段出现空dataSyntax错误,已更正:转储解码的结果是什么$data=json_decode($_POST['customer'],true);var_dump($数据);
array(1) { ["data"]=> string(17) "{"name":"Thomas O" } NULL
<input type='hidden' name='data' value='{"name":"Thomas O'Leary"}'>
array(1) { ["data"]=> string(50) "7b226e616d65223a2254686f6d6173204f274c65617279227d" } array(1) { ["name"]=> string(14) "Thomas O'Leary" }