在网址上传输数据点击

时间:2018-08-13 08:07:00

标签: php json url

我是JSON数据传输的新手。我想让用户单击网页中的链接,该链接应将用户重定向到另一个页面,并在URL中使用他的登录凭据并将其显示在该页面中。现在,我想通过JSON发送和接收所有这些。我正在PHP环境中工作。我正在添加一个简短的代码,但我不知道该如何继续。

send.php

<?php

$data = '{ "user" : [   
                 { "email" : "xyz@gmail.com",  
                   "password"  : "xyz@123",
                   "employee_id"       : 77

                 }
               ]
    } ';

$url_send ="http://localhost/cwmsbi/recieve.php";
$str_data = json_encode($data);

function sendPostData($url_send, $post){
 $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
  curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($post))                                                                       
   );  
  $result = curl_exec($ch);
  curl_close($ch);  // Seems like good practice
  return $result;
}

echo " " . sendPostData($url_send, $str_data);

?>

然后接收.php

<?php

$json_input_data=json_decode(file_get_contents('php://input'),TRUE);

print_r( $json_input_data);


?>

现在,当我在本地主机上运行send.php时,它将在同一页面上显示数据,但不会转到recieve.php。 如何做到这一点?我很好奇,也需要这个。如何运行JSON文件,应该从哪里获得结果?您的指导现在对我非常有用。

1 个答案:

答案 0 :(得分:0)

首先,我看到您对$ data进行两次json编码(因为它定义时已经是一个json字符串,然后您执行$str_data = json_encode($data);)。

如果您也想通过发布数据实现位置更改,则不能使用curl (POST data and redirect user by PHP CURL-请阅读此问题以获取更多信息)-我不认为您只能通过php来做到这一点。

如果我尝试达到您要达到的目标(并且我永远都不会创建一个向用户显示登录密码的页面-因为即使在电子邮件中也显示密码是不明智的做法),我建议设置将json字符串放入send.php中的$_SESSION变量中,并使用header("Location: http://localhost/cwmsbi/recieve.php")重定向,在此您从$_SESSION变量中获取json数据并进行打印。

我没有举一个例子,因为我认为这非常适合您: https://stackoverflow.com/a/42215249/9606459

额外提示:即使将密码放在php $ _SESSION变量中比将其放入发布请求中更好,也请记住您做的不好,并且至少要记住在打印后在$ _SESSION变量中清空该json字符串。

例如:

unset($_SESSION['user_data']);