我正在使用网址将行数据从一个页面传递到另一个页面
echo "<td >
<a href='sessiondetails.php?docname={$key['DocName']}& HosName={$key['HosName']}& HosCode={$key['HosCode']}............}'>
More>>
</a></font>
</td>
</tr>";
在我的第二页中,我使用$_GET
将值分配给变量,回显效果很好
但是,当我将变量指定为数组值时,它不会传递该值,我无法理解为什么。
这是我的第二页代码:
<html>
<head>
<link href='style1.css' rel='stylesheet' type='text/css'>
<?php
$SpecializationId = $_GET['SpecialitionID'];
$DoctorNo = $_GET['DoctorNo'] ;
$day = $_GET['day'];
$date = $_GET['date'];
$HosCode = $_GET['HosCode'];
$hospital = $_GET['HosName'];
$doctor = $_GET['docname'];
$specialization = $_GET['SpecName'];
$baseurl = 'http://202.124.173.187/api/v1/doctorSessions';
$rawPOSTdata = array(
"hosID" => $HosCode,
"specID" => $SpecializationId,
"docNo" => $DoctorNo,
"day" => $day,
"date" => $date
);
$curl = curl_init($baseurl);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
"Authorization: Bearer $atoken"
));
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($rawPOSTdata));
$response = curl_exec($curl);
curl_close($curl);
if($response) {
if (isset($result->error) ) die( $result->error_message );
/* Convert json data to array */
$arr=json_decode( $response,true);
?>
"hosID"=>$hosCode,
没有取值
答案 0 :(得分:0)
通过CURLOPT_CUSTOMREQUEST和CURLOPT_POST设置POST,并且CURLOPT_CUSTOMREQUEST保持为POST,而CURLOPT_POST切换到CURLOPT_HTTPGET。服务器假设CURLOPT_CUSTOMREQUEST的标头是正确的,并返回411。
curl_setopt($ curl_handle,CURLOPT_CUSTOMREQUEST,'POST');
答案 1 :(得分:0)
你没有正确地转义GET变量,也没有正确编码HTML,你可能在这里得到数据损坏。要正确地转义它,请使用http_build_query
制作您的网址,然后使用htmlentities
或htmlspecialchars
对其进行html编码,就像这样
echo '<td >
<a href="sessiondetails.php?'.htmlentities(http_build_query(array('docname'=>$key['DocName'],'HosName'=>$key['HosName'],'HosCode'=>$key['HosCode'])),ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED,'UTF-8',true).'">
More>>
</a></font>
</td>
</tr>';
将来,您可以使用https://validator.w3.org/来检测何时没有正确地将变量编码为HTML,并且可能在此处检测到您的错误