Страница 1 из 1

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

Добавлено: 28 июн 2006, 15:30
pashtet
У меня есть php файл, в нём только код на php, делаются нужные вычисления и результат нужно передать в другой php файл в виде переменной (или нескольких). Что там за команда не подскажите?

Добавлено: 28 июн 2006, 18:27
Oscar
first.php

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

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

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

echo $a; // 10

Добавлено: 28 июн 2006, 18:30
Oscar
first.php

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

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

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

$a = $_REQUEST['a'];

Добавлено: 28 июн 2006, 22:15
pashtet
превое насколько я понял аналог с++-кого инклуда? А второе мож немного прокоментировать плиз?

Добавлено: 28 июн 2006, 22:59
Oscar
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

Добавлено: 29 июн 2006, 00:29
pashtet
мне как раз первый вариант то что надо. Лохонулся с темой немного ) Но второе тож пригодиться кстати. Спс за помощь

Добавлено: 29 июн 2006, 10:40
Duncon
Типа 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

вся любовь....

Добавлено: 29 июн 2006, 13:26
Oscar
Duncon, смотри 2.1

Добавлено: 29 июн 2006, 19:12
Duncon
:roll: