постоянная переменная php - PullRequest
0 голосов
/ 22 апреля 2010

У меня есть два файла:

index.php /lib/user.php

Индекс содержит форму:

<div class="<? echo $msgclass; ?>">
  <? echo $msg; ?>
</div>
<form id="signin" action="/lib/user.php" method="post">
...
</form>

User.php выполняет всю обработку,Он устанавливает $ msg на «some message message» и $ msgalert на «error» в случае любой ошибки.В конце обработки он использует header () для перенаправления на index.php

Но после перенаправления $ msg и $ msgalert больше не сохраняются, и индекс получает только пустые переменные. Как я могу это исправить?

Ответы [ 4 ]

1 голос
/ 22 апреля 2010

Редактировать: извините, неправильно прочитал ваш вопрос. Вы можете сохранить эти значения в сеансе.

В /lib/user.php

session_start();
$_SESSION['msg']      = $msg;
$_SESSION['msgalert'] = $msgalert;

в index.php

session_start();
$msg      = $_SESSION['msg'];
$msgalert = $_SESSION['msgalert'];

обратите внимание, что session_start() использует заголовки, поэтому его необходимо поместить перед отправкой любого вывода.

0 голосов
/ 22 апреля 2010

Это не проблема объема, это проблема постоянства.Когда вы используете header () для перенаправления, вы просите браузер извлечь совершенно другую страницу, которая выполняет совершенно другой сценарий.

Вам необходимо вручную сохранить данные или передать их через базу данных, сеанс,Переменные $ _GET и т. Д.

0 голосов
/ 22 апреля 2010

веб-страниц не имеют статуса.Если вы хотите сохранить состояние, либо сохраните необходимые значения в переменной $_SESSION, либо передайте ее как $_GET или $_POST.

0 голосов
/ 22 апреля 2010

User.php и index.php являются независимыми выполнениями, поэтому переменная область видимости здесь не имеет большого смысла.

Вы можете передавать эти значения с помощью параметров GET или в качестве переменных сеанса.

Попробуйте, например, перенаправить с параметром GET:

header('Location: http://www.example.com/index.php?msgalert=error&msg=some%20error%20message');

А затем в index.php используйте:

$_GET['msgalert']
$_GET['msg']

для доступа к вашим данным. Хотя, если вы можете, лучше использовать некоторые заранее определенные сообщения об ошибках, жестко закодированные в сценарии (передавая только коды ошибок).

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