首页 > 解决方案 > 未使用传递的变量打开新页面的超链接

问题描述

我有一个表单,其中有两个名为 uin 和订单日期的输入,这两个字段从表中获取数据。有一个按钮(生成)导航到新页面 viewstationerypdf.php,带有在这两个字段中选择的值。当我点击在这个按钮上它没有反应它没有带我进入新页面。数据正在两个输入字段中获取。我的代码是-

<div class="form-group col-md-12">
  <label> UIN<span style="color:red;">*</span></label>
  <select class="form-control" name="uin" id="uin">
    <option value=""> </option>
    <?php 
    $sql = "SELECT uin from  tblstationerystock group by uin order by uin asc";
    $query = $dbh->prepare($sql);
    $query->execute();
    $results=$query->fetchAll(PDO::FETCH_OBJ);
    $cnt=1;
    if($query->rowCount() > 0)
    {
    foreach($results as $result)
    {  ?>
    <option value="<?php echo htmlentities($result->uin);?>">
      <?php echo htmlentities($result->uin);?>
    </option>
    <?php }} ?>
  </select>
</div>


<div class="form-group col-md-12">
  <label> ORDER DATE<span style="color:red;">*</span></label>
  <select class="form-control" name="orderdate" id="orderdate" value="" ;>

  </select>
</div>

<button><a href="stationerypdf.php?uin=<?php echo $_POST[uin];?> & orderdate= <?php echo $_POST[orderdate];?> target="popup"  onclick="window.open('stationerypdf.php?uin=<?php echo $_POST[orderdate];?> & orderdate= <?php echo $_POST[orderdate];?> ,'popup','height=600,width=900 top=15 left=300,location=no,toolbar=no,resizable=no, scrollbars=no'); return false;" > GENERATE</button></a>

标签: phphtml

解决方案


您的 HTML 无效

设置锚的样式而不是将其包装在按钮中,并确保在 href 中没有空格并且在参数中使用正确的逗号

此外,您在 href 中缺少 "

如果没有弹出窗口阻止程序,这将返回一个虚假的“!w”

.button {
  font: bold 11px Arial;
  text-decoration: none;
  background-color: #EEEEEE;
  color: #333333;
  padding: 2px 6px 2px 6px;
  border-top: 1px solid #CCCCCC;
  border-right: 1px solid #333333;
  border-bottom: 1px solid #333333;
  border-left: 1px solid #CCCCCC;
}
<a href="stationerypdf.php?uin=<?php echo $_POST[uin];?>&orderdate=<?php echo $_POST[orderdate];?>" 
target="popup" class="button" 
onclick="var w=window.open(this.href,'popup','height=600,width=900,top=15,left=300'); return !w;">GENERATE</a>

请注意,您正在使用您的代码邀请 XSS,因为如果我可以发布
" onclick="location='https://hackersite.com'" 用户的 uin 将在页面中得到它。

https://xkcd.com/327/


推荐阅读