【问题标题】:PHP header on iframe POST formiframe POST 表单上的 PHP 标头
【发布时间】:2018-06-05 02:47:24
【问题描述】:

我的引导网页有问题,我正在尝试修复它。

我有一个带有表单的页面。表单内部有一个 iframe。

iframe 包含一个网格和一些按钮。单击一个按钮向我们展示一个带有其他两个按钮的模式,它向 iframe 网格添加行。

我使用表单执行此操作,但是当我添加新行时页面崩溃。请求状态为pending,所有服务器都卡住了。

我认为问题可能出在标题上。他们称之为“albaranes.nuevo.detalle2.php”,即 iframe 本身。

我应该在标题之后调用 exit 吗?我是这么想的,但我还有其他的账单镜像页面(这个是用于交货单管理的),没有退出呼叫,工作正常。

我曾经使用 ajax 进行数据库调用,而且我对表单和引导程序非常陌生。 服务器日志中添加了一个新条目,但在重置后:

(104)Connection reset by peer: AH01075: Error dispatching request to :, referer: https://*****/*****/albaranes.nuevo.detalle2.php

一些 albaranes.nuevo.detalle2.php (iframe) 代码:

session_start();
if(isset($_SESSION['idUsuario'])){
  include 'includes/conexion_pruebas.php';
  include 'includes/funciones.php';




  //***********************************************************************************************************************************************
  // DIALOG ACCEPT BUTTON
  if ((isset($_POST['accion'])) && ($_POST['accion'] == 'nuevo')) {
    if($_POST['cantidad'] == 0){
      header ("Location: albaranes.nuevo.detalle2.php?id=".$idAlbaran.'&s='.$s.'&error=5'); 
    }else{
      //Con los ids de las lineas, las copiamos y las agregamos al nuevo albaran.
      foreach ($_POST['ids'] as $id) {
        //Working stuff
        //...
      }
      header ("Location: albaranes.nuevo.detalle2.php?id=".$idAlbaran."&s=".$s);
    }
  }

?>
<!DOCTYPE html>
<html lang="es">
  <head>
    ...
  </head>
  <body>

  <div class="table-responsive col-md-12">
    <table>
      ...
    </table>
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#barras">Barras</button>
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#nuevo">Nueva</button>
  </div>

  <!-- Dialog -->
  <div id="nuevo" class="modal fade" tabindex="-1" role="dialog">
    <div class="modal-dialog" style="width: 80%">
      <div class="modal-content">
        <form method="post" action="albaranes.nuevo.detalle2.php">
          <div class="modal-body">
            <input type="hidden" name="accion" value="nuevo" />
          </div>
          <div class="clearfix"></div>
          <div class="modal-footer">
            <input type="submit" class="btn btn-primary" value="Guardar y Seguir" name="seguir" />
            <input type="submit" class="btn btn-primary" value="Añadir y Cerrar" name="cerrar" />
            <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
          </div>
        </form>
      </div>
    </div>
  </div>

  <?php  if(isset($_GET['s']) && ($_GET['s'] == '1')) { ?>
      <script type="text/javascript">
        $(window).on('load',function(){
            $('#nuevo').modal('show');
        });
      </script>
  <?php  } ?>
  </body>
</html>
<?php
} else {
  header ("Location: login.php?error=1");
}
?>

【问题讨论】:

    标签: php html iframe


    【解决方案1】:

    PHP 的header 函数在被调用后不会退出,所以如果你想确保在header 调用之后没有任何内容被执行,你应该在那里放置一个exit

    在大 if 语句中,您检查值 cantidad,它从未定义,所以这个 if 永远不会触发。虽然我不认为这是问题的一部分。

    在上述 if/else 的 else 中,您还可以使用 foreach 循环遍历 ids 值。但同样ids 从未被定义。

    问题可能是由于header 调用的脚本中的一些无限循环或超时造成的。

    【讨论】:

    • 所有变量都已定义,发布的代码只是一个片段,但感谢您的建议。我认为退出调用将解决我的问题,但我不知道为什么没有退出调用的类似页面有效,而不是这个。
    猜你喜欢
    • 2021-10-24
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多