Заголовок PHP в форме iframe POST - PullRequest
0 голосов
/ 04 июня 2018

У меня проблема с загрузочной веб-страницей, из-за которой я пытаюсь ее исправить.

У меня есть страница с формой.Внутри формы есть iframe.

iframe содержит сетку и несколько кнопок.Нажмите на кнопку, чтобы показать нам модал с двумя другими кнопками, которые добавляют строки в сетку iframe.

Я делаю это с помощью формы, но когда я добавляю новые строки, страница вылетает.Статус запроса находится в состоянии ожидания, и все серверы зависли.

Я думаю, что проблема может быть связана с заголовками.Они называют "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");
}
?>

1 Ответ

0 голосов
/ 04 июня 2018

Функция PHP header не завершается после вызова, поэтому, если вы хотите убедиться, что после вызова header ничего не выполняется, вы должны поместить туда exit.

В большом операторе if вы проверяете значение cantidad, которое никогда не определяется, поэтому этот if никогда не сработает.Хотя я не думаю, что это является частью проблемы.

В остальном из вышеупомянутого if / else вы также просматриваете значение ids с помощью цикла foreach.Но опять же ids никогда не определяется.

Возможно, проблема вызвана неким бесконечным циклом или таймаутом в сценарии вызова header.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...