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

Форум PHP

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

 

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

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

тема: Передача значений переменных между php файлами?
 
 автор: xpom   (18.02.2007 в 16:58)   письмо автору
 
 

Добрый день!
У меня вопрос:
Вот есть форма, которая передает значения в другой php файл:

<?php
print ("<form method='post' action='fail.php'>");
print (
"input type='text' name='name' size='50' maxlength='150' value='$per'>");
print (
"</form>");
?>

как в форме реализовать такую $_POST['per']передачу данных?

   
 
 автор: Санька   (18.02.2007 в 17:30)   письмо автору
 
   для: xpom   (18.02.2007 в 16:58)
 

Скажи по русски. У тя переменная не срабатывает?

   
 
 автор: bronenos   (18.02.2007 в 17:48)   письмо автору
 
   для: xpom   (18.02.2007 в 16:58)
 

Для $_POST['per'] :

<form action='fail.php' method='post'>
<input type='text' name='per' /></form>

   
 
 автор: xpom   (18.02.2007 в 18:18)   письмо автору
 
   для: bronenos   (18.02.2007 в 17:48)
 

нет, я ощибся не для per, а для name!

Я имею ввиду, что в обработчике формы я эту переменную запрашиваю вот так: $_POST['name'] , т.е. через $_POST[''], а как в этом случае в форме нужно где-нибуть в форме ставить $_POST['']?

   
 
 автор: alek_chita   (18.02.2007 в 18:22)   письмо автору
 
   для: xpom   (18.02.2007 в 18:18)
 

или может быть так:


<?php
echo "<input type=text name=name value=$_POST['name']>"
?>

   
 
 автор: xpom   (18.02.2007 в 18:30)   письмо автору
 
   для: alek_chita   (18.02.2007 в 18:22)
 

Нет, я имею ввиду все поля, я не знаю, нужну ли в форме ставить такое $_POST[''], т.е. делать переменную глобальной, по-моему оно так называется, точно не помню?

   
 
 автор: alek_chita   (18.02.2007 в 18:42)   письмо автору
 
   для: xpom   (18.02.2007 в 18:30)
 

Попробуйте еще раз сначала сформулировать вопрос. Постараемся помочь.

   
 
 автор: xpom   (18.02.2007 в 18:57)   письмо автору
 
   для: alek_chita   (18.02.2007 в 18:42)
 

Вопрос таков:
Нужно где-нибуть в форме делать переменные глобальные ($_POST[] ), если в php.ini отключен register_globals ?

   
 
 автор: alek_chita   (18.02.2007 в 19:11)   письмо автору
 
   для: xpom   (18.02.2007 в 18:57)
 

нет не нужно при обращении к $_POST у вас все будет работать, если register_globals = Off, то вы не можете обращаться к переменным из другого скрипта просто $переменная ,без POST

   
 
 автор: xpom   (18.02.2007 в 19:35)   письмо автору
 
   для: alek_chita   (18.02.2007 в 19:11)
 

А, если нужно передать обычную переменную без формы из одного скрипта в другой постом нужно и первом скрипте и во втором её обозначать $_POST ?

   
 
 автор: alek_chita   (18.02.2007 в 19:42)   письмо автору
 
   для: xpom   (18.02.2007 в 19:35)
 

$_SESSION Сложнеее подделать, а пост придется проверять, т.к. пост подделать секундное дело.

   
 
 автор: xpom   (18.02.2007 в 20:18)   письмо автору
 
   для: alek_chita   (18.02.2007 в 19:42)
 

Т.е. это означает, да, нужно так?
А что-такое $_SESSION и как оно работает?

   
 
 автор: NovikovMA   (18.02.2007 в 20:28)   письмо автору
 
   для: xpom   (18.02.2007 в 20:18)
 

$_SESSION - это сессионные переменные
сначала открываешь сессию session_start();
а потом в массив $_SESSION[] добавляешь что хочешь.

Далее при переходе на другую страницу снова открываешь сессию session_start() и ты имеешь доступ к переменным, которые ты записал ранее.

   
 
 автор: xpom   (18.02.2007 в 20:36)   письмо автору
 
   для: NovikovMA   (18.02.2007 в 20:28)
 

А какой способ передачи переменных самый безопасный? Это наверное $_SESSION, безопаснее нет?

А $_SESSION не имеет значения к тому включен в php.ini register_globals или отключен?

   
 
 автор: NovikovMA   (18.02.2007 в 20:57)   письмо автору
 
   для: xpom   (18.02.2007 в 20:36)
 

>А $_SESSION не имеет значения к тому включен в php.ini register_globals или отключен?

Вроде не имеет.

>А какой способ передачи переменных самый безопасный? Это наверное $_SESSION, безопаснее нет?

Скорее всего нет, хотя я слышал, что вроде тоже можно подделать

   
 
 автор: alek_chita   (19.02.2007 в 03:16)   письмо автору
 
   для: NovikovMA   (18.02.2007 в 20:57)
 

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

   
 
 автор: NovikovMA   (18.02.2007 в 20:35)   письмо автору
 
   для: xpom   (18.02.2007 в 20:18)
 

ну например в одном скрипте: (1.php)


<php
session_start();
$_SESSION['test']='test';
?>
<a href='2.php'> Go to 2</a>



скрипт 2.php:

<php
session_start();
print_R($_SESSION);
?>

   
 
 автор: xpom   (19.02.2007 в 18:16)   письмо автору
 
   для: NovikovMA   (18.02.2007 в 20:35)
 

Подскажите, почему может быть такое, что ставлю в php.ini register_globals = On, а точнее вот в этой строке - register_globals = On [Security, Performance] и переменные срабатывают и в с лучае с ($_POST[] ), и без него одинакого?

   
 
 автор: alek_chita   (19.02.2007 в 19:04)   письмо автору
 
   для: xpom   (19.02.2007 в 18:16)
 

register_globals = ON практически не используется, а в 6 версии будет по всей видимости вообще будет отключен. Если register_globals=On, то например содержимое текстового поля name передается непосредственно в переменную $name. А в POST[] он передается т.к. вы в указали

<?php
      
echo "<form method=post>";
?>

   
 
 автор: xpom   (19.02.2007 в 19:50)   письмо автору
 
   для: alek_chita   (19.02.2007 в 19:04)
 

Что-то я запутался:)
Для безопасности, что нужно ставить?
Чтобы потом запрашивать переменную только $_GETом или $_POSTом, а не просто $переменная? Это я так понимаю будет безопасность на высоком уровне?

   
 
 автор: Trianon   (19.02.2007 в 19:56)   письмо автору
 
   для: xpom   (19.02.2007 в 19:50)
 

register globals off

   
 
 автор: Dmitrij_K83   (19.02.2007 в 22:09)   письмо автору
 
   для: xpom   (19.02.2007 в 18:16)
 

>вот в этой строке - register_globals = On [Security, Performance]
Судя по тому что Вы написали это не та строка, это строка из раздела About this file, т.е просто описание что это такое.
Менять надо в разделе Data Handling.

   
 
 автор: xpom   (20.02.2007 в 10:34)   письмо автору
 
   для: Dmitrij_K83   (19.02.2007 в 22:09)
 

>это не та строка
Спасибо!
Да, это была моя ошибка из-за которой я мучался! Но в итоге нашел нужную!


Еще вопросик: Если я в скрипт вставляю другой php файл

<?php
include("fail.php");
?>

переменные в этом файле и скрипте в котором запрашиваются переменные нужно писать вот так: POST[] ?

   
 
 автор: ZuArt   (20.02.2007 в 10:38)   письмо автору
 
   для: xpom   (20.02.2007 в 10:34)
 

оператор include работает по простому алгоритму - просто в это место "вписывается" код из подключаемого файла и делее идет выполнение по обычному пути...

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

   
 
 автор: xpom   (20.02.2007 в 19:37)   письмо автору
 
   для: ZuArt   (20.02.2007 в 10:38)
 

Значит POST[] не нужно писать?

А, если нужно переменную из одного скрипта, т.е.

 <?php

?>

запросить в другом

 <?php

?>

скрипте этого же файла, нужно писать переменную постом POST[] ?

   
Rambler's Top100
вверх

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