如何解决php根据表单输入创建链接,并将其传递给iframe源
wordpress更新到5.5后,我的表单停止工作。其目的是收集输入并将其传递到另一页上的iframe src。我在php中通过简码实现了一些php代码。有谁知道为什么它不起作用?在更新之前,它确实运行良好。
用php编写表格代码alon:
<?php
function addlink($go) {
if ($go <> "") $link = $go; else $link ="index";
return $link;
}
?>
<?php
if(isset($_POST['fh'])) $fhList = $_POST['fhList'];
if(isset($_POST['from'])) $from = $_POST['from']; else $from='';
if(isset($_POST['to'])) $to = $_POST['to']; else $to='';
if(isset($_POST['adults_number'])) $adults_number = $_POST['adults_number']; else $adults_number='';
if(isset($_POST['style'])) $style = $_POST['style'];
if (isset($_POST['submit']) && $_POST['submit']=="Sprawdź") {
$link = 'https://roomadmin.pl/####';
$link .= '?fhList=' . $fhList;
$link .= '&style=' . $style;
$link .= '&arrival=' . $from;
$link .= '&departure=' . $to;
$link .= '&rooms[0][numberOfGuests]=' . $adults_number;
}
?>
<div class="fixedbar">
<div class="boxfloat">
<ul id="tips">
<li>
<div id="reservation">
<form id='reservation-form' action='https://marea.ustka.pl/####' method='post'>
<input name="fhList" value="51e0ee9985761d73e8e68252223d358644d5121d,bca1d3edd0c0c97c4408e77d1763478db138c8f2" type="hidden">
<input name="style" value="{%22color_accent%22%3A%22%2350A4AF%22}" type="hidden">
<input id="from" name="from" type="date" placeholder="Przyjazd" value ="<?php echo $from; ?>">
<input id="to" name="to" type="date" placeholder="Wyjazd" value ="<?php echo $to; ?>">
<select name="adults_number" placeholder="LICZBA OSÓB">
<option value="">LICZBA OSÓB</option>
<option value="1" <?php if($adults_number==1) echo 'selected'; ?> >1 osoba</option>
<option value="2" <?php if($adults_number==2) echo 'selected'; ?> >2 osoby</option>
<option value="3" <?php if($adults_number==3) echo 'selected'; ?> >3 osoby</option>
<option value="4" <?php if($adults_number==4) echo 'selected'; ?> >4 osoby</option>
</select>
<input value="SPRAWDŹ DOSTĘPNOŚĆ" style="padding=8px;" type="submit" name="submit">
</form>
</div>
</li>
</ul>
</div>
</div>
在iframe应该获取数据的页面上进行编码:
<?php
if(isset($_POST['fh'])) $fhList = $_POST['fhList'];
if(isset($_POST['from'])) $from = $_POST['from']; else $from='';
if(isset($_POST['to'])) $to = $_POST['to']; else $to='';
if(isset($_POST['adults_number'])) $adults_number = $_POST['adults_number']; else $adults_number='';
if(isset($_POST['style'])) $style = $_POST['style'];
if (isset($_POST['submit']) && $_POST['submit']=="Sprawdź") {
$link = 'https://roomadmin.pl/####';
$link .= '?fhList=' . $fhList;
$link .= '&style=' . $style;
$link .= '&arrival=' . $from;
$link .= '&departure=' . $to;
$link .= '&rooms[0][numberOfGuests]=' . $adults_number;
}
?>
<iframe id="ra-reservation-iframe" scrolling="no" style="width:100%;border: none;margin:0;padding:0;min-height:600px;" src="<?php echo $link; ?>"></iframe>
解决方法
这是html表单问题,php处理看起来不错
以下是您的表单的提交者,它会创建以下消息:submit=SPRAWDŹ DOSTĘPNOŚĆ
<input value="SPRAWDŹ DOSTĘPNOŚĆ" style="padding: 8px;" type="submit" name="submit">
这是验证-“如果有消息submit=Sprawdź
,然后确定”,但是您的表单发送了不同的消息...
if (isset($_POST['submit']) && $_POST['submit']=="Sprawdź") { ...
要解决此问题,您需要使它们相同,如下所示:
<input value="sprawdź dostępność" style="padding=8px;" type="submit" name="submit">
if(isset($_POST['submit']) && $_POST['submit']=="sprawdź dostępność") { ...
它应该解决问题。您还应该更正最后一行-这样(空格很重要)
<iframe id="ra-reservation-iframe" scrolling="no" style="width: 100%; border: 0; margin: 0; padding: 0; min-height: 600px;" src="<?php echo $link; ?>"></iframe>
顺便说一句,不要发布内部地址-有人可能会用它来伤害您。您不是IT专家,因此可以成为一个简单的目标。
https://roomadmin.pl/#####
https://marea.ustka.pl/#####
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。