Передача данных с одной страницы PHP на другую с помощью header () - PullRequest
2 голосов
/ 22 ноября 2011

Я хочу отправить данные из одного PHP-файла в другой PHP-файл в подпапке, где находится первый PHP-файл. У меня есть папка с именем folder1, в которой содержится файл PHP с именем file1.php, и я хочу вызвать другой файл с именем file2.php во вложенной папке folder1 с именем folder2. Я использую функцию header(), как это в file1.php:

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'folder1/folder2/file2.php';
header("location:http://$host$uri/$extra?sms=".$msg."&num=".$msg_num);

Данные не передаются. Есть ли какое-либо решение, использующее header()? Я не могу использовать cURL из-за некоторых ограничений.

Ответы [ 2 ]

3 голосов
/ 23 ноября 2011

работает следующий код:

file1.php * * 1004

<?php

header( 'Location: inner/file2.php?x=1&y=2&z=3' );

?>

inner/file2.php

<code><?php

print '<pre>';

var_dump( $_GET );

print '
'; ?>

Результатом посещения http://localhost/testing/file1.php является перенаправление на http://localhost/testing/inner/file2.php?x=1&y=2&z=3, которое отображает:

array(3) {
  ["x"]=>
  string(1) "1"
  ["y"]=>
  string(1) "2"
  ["z"]=>
  string(1) "3"
}

Я бы предложил скопировать эти тестовые файлы и доказать себе, что основная концепция перенаправления с переданными значениями работает. Затем соберите оставшуюся часть кода вокруг хорошо известного ядра. Удачи!

1 голос
/ 22 ноября 2011

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

Чтобы убедиться, что нетнедопустимые символы, вы можете использовать urlencode(), возможно, в сочетании с htmlentities(), см. руководство :

header("location:http://$host$uri/$extra?sms=".urlencode($msg)."&num=".urlencode($msg_num));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...