Перенаправление PHP происходит неправильно - PullRequest
0 голосов
/ 22 ноября 2018

Я отправляю все формы моего веб-сайта на определенную страницу form_submition.php, после обработки данных формы я перенаправляю на другую страницу index.php?page=some page с помощью функции заголовка, но в одной из моих форм с именем main_form я получаю неправильную информациюперенаправление

    if(isset($_POST['form1']))
    {
        // process form data
        header('Location: ../index.php?page=some page')
    }
    if(isset($_POST['form2']))
    {
        // process form data
        header('Location: ../index.php?page=some page')
    }

    $to=$_GET['to']
    if (isset($_POST['main_form']) ) {
            // process form data
    }
    header("Location: ../index.php?page={$to}&error_loc_{$error_loc}=1&err_msj=" . $err_msj, true, 302);
    exit(); 

но оно перенаправляет меня на mywebsite.com/folders/form_submitions.php?to=all_p

вместо mywebsite.com/index.php?page=all_p

любые идеи?

ОБНОВЛЕНИЕ 1

Я много раз проверял свой код, похоже, что заголовок вообще не перенаправляет страницу.странно то, что страница в mywebsite.com/index.php?page=all_p загружается, но URL-адрес не изменяется, а файлы css + js не загружаются, поскольку относительный путь становится недействительным.

UPDATE 2

Далее Проверяя мой код, перед отправкой main_form в form_submission.php я открываю новое окно с javascript для печати некоторых данных.следующая форма:

<form enctype='multipart/form-data' action='./forms/form_submitions.php?to=all_p' onsubmit="return checkfiles('attachfiles')">
 .
 .
 .
    <button id="main_form" name="main_form" class="btn btn-primary">Save Changes</button>
</form>

При нажатии #main_form я вызываю следующую функцию:

$("#main_form").on('click', function(event) {
newWin = window.open('printingpage.php?data='+ data);
setTimeout(function () { newWin.print(); }, 500);

});

Здесь функция печати не вернется, пока не будет закрыт предварительный просмотр.,Я думаю, что это создает проблему, потому что, когда я удаляю функцию newWin.print(), все работает просто отлично.Есть ли способы сделать эту печать асинхронной?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Попробуй это.Поместите свою веб-ссылку в ссылку для перенаправления.

$data = array(
      'page' => $to,
      'error_loc_'.$error_loc => 1,
      'err_msj' => $err_msj
);

header("Location: http://www.mywebsite.com/index.php?".http_build_query($data), true, 302);

Надеюсь, это поможет.

0 голосов
/ 22 ноября 2018

удалите .. части в ваших путях и попробуйте.

Таким образом, код будет:

 if(isset($_POST['form1']))
    {
        // process form data
        header('Location: /index.php?page=some page')
    }
    if(isset($_POST['form2']))
    {
        // process form data
        header('Location: /index.php?page=some page')
    }

    $to=$_GET['to']
    if (isset($_POST['main_form']) ) {
            // process form data
    }
    header("Location: /index.php?page={$to}&error_loc_{$error_loc}=1&err_msj=" . $err_msj, true, 302);
    exit(); 
...