【发布时间】:2019-05-22 02:50:14
【问题描述】:
如何通过 JSON 将表单变量传递到另一个页面?我创建了两个 php 文件,文件名为 page_login.php 和 login.php。但是在运行 login_post.php 时,$json 值无法传递给 login.php
page_login.php:
$email = test@gmail.com;
$password = 123;
$json = array('email' => $email, 'password' => hash("sha256",$password));
$json = json_encode($json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://localhost/login.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
login.php:
$json=json_decode($_REQUEST["json"],true);
print $json;
【问题讨论】:
-
需要设置Content-Type header,然后在接收端读取
php://input。 -
或者,
curl_setopt($ch, CURLOPT_POSTFIELDS, ['json'=>$json]);在发送端。但是你没有传递 JSON,只是简单的旧 POST 值。 -
或者,直接跳过 JSON 编码;在接收端查看
$_POST['email']。这三个选项中的任何一个都可以解决您的问题。 -
我可以知道为什么如果我将 json 数据发送到 localhost login.php,它的工作但如果发送到另一台服务器不起作用?