Автопереход на другую страницу

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
pashtet
Сообщения: 73
Зарегистрирован: 09 апр 2006, 10:53
Откуда: Белгород

У меня есть php файл, в нём только код на php, делаются нужные вычисления и результат нужно передать в другой php файл в виде переменной (или нескольких). Что там за команда не подскажите?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

first.php

Код: Выделить всё

$a = 10;
include('second.php');
second.php

Код: Выделить всё

echo $a; // 10
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

first.php

Код: Выделить всё

header("Location: second.php?a=".10);
second.php

Код: Выделить всё

$a = $_REQUEST['a'];
pashtet
Сообщения: 73
Зарегистрирован: 09 апр 2006, 10:53
Откуда: Белгород

превое насколько я понял аналог с++-кого инклуда? А второе мож немного прокоментировать плиз?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

pashtet, дело в том, что я не до конца понял, что именно тебе нужно.

Если нужно просто разделить рассчёты и вывод
(например, чтобы рассчёты использовать для разных выводов)
тогда используется первый случай.

Аналог ли это C++ ? , - не знаю, принимает ли внешний файл в Си переменные внутреннего и что происходит при конфликте имён.
На самом деле php очень похож на Си, так что может и аналог,
но в PHP нет обязательной инициализации переменных, потому при инклуде в PHP во внутреннем файле можно использовать все переменные внешнего.
(это получается, по сути, как макрос)

Второй вариант.

Ты назвал тему "автопереход на другую страницу",
потому прочитав тему ещё раз, я решил, что тебе нужно сменить URL страницы.

Ф-ция header посылает HTTP-заголовок браузеру пользователя. (спасибо Aik_у за обьяснение :-) )

В данном случае перенаправляя его на новую страницу - second.php
Сервер разбивает URL после знака вопроса на переменные (разделённые символом "&", в формате "имя=значение").
Таким образом, если тебе действительно нужно "перейти на другую страницу" этот вариант именно для тебя.

Варианты передачи переменных следующие:

1. HTTP GET - то, что я написал вторым примером
2. HTTP POST - много мороки,
2.1 заполнить невидимую HTML форму на JavaScript и им же нажать submit()
очень не советую, кнопка "back" в браузере после этого работать не будет ;-)
2.2 использовать сокеты для обращения ко второй странице (марудное занятия создания HTTP хедера, да и зачем, если можно сделать просто include)
3. писать в Куки (могут быть отключены)
4. писать в файл (для КАЖДОГО пользователя свой временный файл и удалять его)
5. писать в Базу Данных (опять же пользователи)
{если пользователь не авторизирован (писать систему авторизации) и у него отключены куки(если включены - смотри 3.) однозначно идентифицировать пользователя НЕВОЗМОЖНО}


...

вот

....

А теперь скажи мне, что именно тебе надо,
тогда я смогу сказать, что тебе надо :D
pashtet
Сообщения: 73
Зарегистрирован: 09 апр 2006, 10:53
Откуда: Белгород

мне как раз первый вариант то что надо. Лохонулся с темой немного ) Но второе тож пригодиться кстати. Спс за помощь
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Типа Get если берем, а есле передаем Post и Oscar, а че в посте морочного???
типичный пример post

Код: Выделить всё

<form name="add" method="post" action="asss.php">
    <input type="hidden" name="_a" value="<?=$a?>">
<input type="submit" value=" go ">
asss.php
Делаешь что угодно обращаешся к переменной как
$_a

вся любовь....
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Duncon, смотри 2.1
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

:roll:
Ответить