Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Передача данных между PHP-страницами
 
 автор: Mikael   (10.02.2006 в 19:10)   письмо автору
 
 

Есть файл regis.php
содержимое:
------------------

<?php
$a
=12
$b
=14

header
("location: regispod.php"); 
?>


--------
как сделать так чтобы в regispod.php переменные $a и $b были подгружены?

   
 
 автор: 1999   (10.02.2006 в 19:15)   письмо автору
 
   для: Mikael   (10.02.2006 в 19:10)
 

можно GET'ом передать т.е.

<?php 
header
("location: regispod.php?a=12&b=14"); 
?> 

и тогда a и b будут в $_GET массиве (т.е. $a это $_GET['a'] и $b аналогично)
или можно сессией передать:

<?php 
session_start
();
$a=12;
$b=14;
session_register("a");
session_register("b");
header("location: regispod.php"); 
?> 


а в regispod.php в начале поставить session_start(); это вроде получше

   
 
 автор: Mikael   (10.02.2006 в 19:32)   письмо автору
 
   для: 1999   (10.02.2006 в 19:15)
 

Скажите существуют ли еще способы передачи переменных? Дело в том что мои переменные не являются константами как я описал в примере, эти переменные вводятся в форме

   
 
 автор: kasmanaft   (10.02.2006 в 19:47)   письмо автору
 
   для: Mikael   (10.02.2006 в 19:32)
 

если переменные вводятся в форме, то они передадутся тому файлу, который указан в поле action формы...
например
<form action='text.php' method=post>
<input name='a' type=text>
<input type=submit>
</form>
тогда в файле text.php можно будет получить доступ к переменным через массив $_POST['name']
где name это имя поля формы (в примере "a")

можно использовать медот get, тогда переменные окажутся в массиве $_GET :)
никакие хеадеры тут не нужны :)
удачи!

   
 
 автор: WebTech   (10.02.2006 в 19:50)   письмо автору
 
   для: kasmanaft   (10.02.2006 в 19:47)
 

Чтобы передать Get'ом, нужно их (переменные) включить в url и потом передать браузеру. Т.е. header надо...

   
 
 автор: WebTech   (10.02.2006 в 19:47)   письмо автору
 
   для: Mikael   (10.02.2006 в 19:32)
 

Если вводятся в форме, можно передать методом POST.

<form action="script.php" method="post">

Можно еще с помощью cookie. Т.е. сначала поставить куки, потом когда нужно - считать. Но если клиент отключил куки, то ничего не получится.
Но самые простые способы, это GET или POST - если от скрипта скрипту, то через GET, если из формы, то POST.

   
 
 автор: Mikael   (10.02.2006 в 20:26)   письмо автору
 
   для: WebTech   (10.02.2006 в 19:47)
 

Нет ребят не в форме….. если б в форме проблем бы не было… у меня как все построено … сначало запускается html с формой потом после submit запускается php файлик который проверяет на наличие ошибок и все такое а потом зависимости от ошибок должен грузить другие php но так чтобы нужные мне переменные были определены…


Подскажите что-нибудь как поступить?

   
 
 автор: kasmanaft   (10.02.2006 в 20:31)   письмо автору
 
   для: Mikael   (10.02.2006 в 20:26)
 

можно сделать какой-нить один файлик, который будет проверять на ошибки (если есть - выводить) если ошибок нет - показывать то что нужно... а если нужно грузить много файлов, то можно их include... или не можно?

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

   
 
 автор: Mikael   (10.02.2006 в 21:04)   письмо автору
 
   для: kasmanaft   (10.02.2006 в 20:31)
 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\Inetpub\wwwroot\regispod.php:6)

   
 
 автор: WebTech   (10.02.2006 в 20:56)   письмо автору
 
   для: Mikael   (10.02.2006 в 20:26)
 

Как советует kasmanaft пишешь проверку на ошибки, а потом что-нибудь типа

if (проверка)
   {
   // если есть ошибка
   $a=1; $b=1;
   header ('location: error.php?a='.$a.'&b='.$b); // передаются методом GET 
   }
   else
      {
      // если нет ошибки
      $a=2; $b=2;
      header ('location: correct.php?a='.$a.'&b='.$b)'; // передаются методом GET 
      )

а можно эти error.php и correct.php инклудить, тогда вообще ничего передавать не надо будет :-)

   
 
 автор: Mikael   (10.02.2006 в 21:08)   письмо автору
 
   для: WebTech   (10.02.2006 в 20:56)
 

Всем спасибо решил проблемы с помощью сессий!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования