php - (php) 根据表单输入创建链接并将其传递给 iframe 源
问题描述
在 wordpress 更新到 5.5 后,我的表单停止工作。它的目的是收集输入并将其传递给另一个页面上的 iframe src。我在 php 中有一些代码通过简码实现到我的 wordpress 页面。有谁知道为什么它不起作用?在更新之前它确实工作得很好。
表单代码与 php:
<?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/#####
推荐阅读
- sql - 根据不同类别从数据库中获取数据
- reactjs - 使用 async/await 返回未定义的集合对象
- javascript - 如何在 NodeJS 中将音乐播放器同步到多个客户端
- nginx - 如果我将 www 放在 url 之前,则页面未找到错误
- javascript - 如何在 discord.js bot 上用新行替换
和替换? - dart - 在 Dart 中没有得到想要的 json 响应
- laravel - 如何在 Laravel 内置服务器上运行 Xdebug?
- javascript - 将 HTML 元素与 onscroll 链接,onchange 不起作用
- php - 通过它们扩展的测试用例类运行 phpunit 测试
- google-cloud-platform - GCP IPSEC 问题