2013-04-12 4 views
-2

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

Вот мой код:

global $var1; 
global $var2; 

if(isset($match[1][0])){ 
mail($send,$subject,$message,$headers); 
header('Location: page1.php');}else{ 
header('Location: page2.php');} 

page1.php

require('action.php'); 

echo $var1; 

echo $var2; 

это не получает мне переменные.

, а также я вижу

Warning: Cannot modify header information - headers already sent by (output started at on page1.php

предложение?

+0

Посмотрите на это: http://stackoverflow.com/questions/8028957/headers-already-sent-by-php – Quasdunk

+0

спасибо, но это не исправить прохождение $ vars – user2255821

+0

Мое предложение состоит в том, что вы исправляете ошибку. Как исправить это зависит от того, чего вы пытаетесь достичь.Это непонятно из (неполного) кода в вашем вопросе. И это больше похоже на запрос поддержки, чем на вопрос программирования. –

ответ

0

Ваш вопрос о предупреждении был дан ответ (не отправляйте какие-либо данные перед использованием header()), но проблема с данными, которые не передаются между страницами, не имеет.

Глобальная переменная не будет доступна между двумя PHP-скриптами - HTTP is stateless.

Используйте сеанс или некоторые другие средства для доступа к данным между обеими страницами.

session_start(); 
$_SESSION['var1'] = 'some value'; 
$_SESSION['var2'] = 'some value'; 

if(isset($match[1][0])){ 
    mail($send,$subject,$message,$headers); 
    header('Location: page1.php'); 
}else{ 
    header('Location: page2.php'); 
} 

и

session_start(); 
require('action.php'); 
echo $_SESSION['var1']; 
echo $_SESSION['var2']; 
+0

Спасибо, что это работает, но я нашел Предупреждение: session_start() [function.session-start]: Не удается отправить ограничитель кеша сессии - уже отправлены заголовки – user2255821

+0

Убедитесь, что у вас нет HTML или PHP (например, эхо, печать) перед строкой, в которой вы вызываете 'session_start()'. – Nerdwood

+0

исправить это prblem: не заставлять включать в другой файл – user2255821

0

Если у вас есть контент, уже записанный на экран, вы не можете использовать перенаправление заголовка.

Таким образом, даже если вы делаете echo "hello" или иметь <html> перед ним команда заголовка не будет работать либо использовать JavaScript перенаправляет для после выхода переадресовывает или использовать буферизацию вывода, который позволит вам сделать после вывода перенаправляет, как это будет только выпишите буфер, когда вы это скажете.

Надежда, что имеет смысл

+0

это другая страница в моих файлах, так есть ли какой-либо другой способ или сделать их на одной странице. – user2255821

0

Это в PHP Manual,

Помните, что заголовок() должен вызываться перед любым фактическим выходом , необходимо либо с помощью обычных HTML-тегов, пустых строк в файле , или из PHP. Это очень распространенная ошибка для чтения кода с включением или требованием, функциями или другой функцией доступа к файлам, а также пробелов или пустых строк , которые выводятся перед вызовом header(). Та же проблема существует при использовании одного файла PHP/HTML.

Смотрите сами, где вы ошибаетесь.

EDIT: Вы можете передать переменную, установив значение $ _SESSION [] и прочитав их с другой стороны.

+0

Я пробовал alot, я делаю мои команды curl on include для 2-х страниц, это не сработает, так как я могу передать переменные из формы отправки на другие страницы – user2255821

+0

Вы можете передать переменную, установив значение в $ _SESSION [] и прочитав их с другой стороны. –

+0

Мне нужно сделать rquire или включить – user2255821

Смежные вопросы