我在HTTP请求中使用值hashtag(#)发送参数时遇到问题。
示例我有matcontents是#3232
,然后我需要发送参数与该值。我试过这样做:
echo "<td width=25% align=left bgcolor=$bgcolor id='title'> <font face='Calibri' size='2'>
<a href='../report/rptacc_det.php?kode=$brs3[matcontents]&fromd=$fromd2&tod=$tod2&type=$type&fty=$fty&nama=$brs3[itemdesc]' target='_blank'>
$brs3[matcontents]</a></font></td>";
但是当我在rptacc_det.php上打电话给kode时,我什么都没有或空白。如何将“#3232”之类的值发送到另一页?
答案 0 :(得分:2)
#
之后的任何内容都不会在请求中发送到服务器,因为它被解释为页面上的锚位置。
可以发送它们,但您需要urlencode
它们。
$kode = "this is a #test";
// Does not work:
// In the following, $_GET['parameter'] will be "this is a ";
// link will be '?kode=this is a #test'
echo '<a href=../report/rptacc_det.php?kode' . $kode . '>Click</a>';
// Works:
// In the following, $_GET['parameter'] will contain the content you need
// link will be '?kode=this%20is%20a%20%23test'
echo '<a href=../report/rptacc_det.php?kode' . urlencode($kode) . '>Click</a>';
要在rptacc_det.php
中获取值,您可以使用urldecode
$kode = urldecode($_GET['kode']);
您应该对URL中包含的所有变量执行此操作。