首页 > 解决方案 > (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>

标签: phpforms

解决方案


这是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/#####

推荐阅读