Php переменные между скриптами

Передача и обработка параметров между двумя PHP скриптами

Наверное человек, которых это спрашивало мильон.
И я как и все не нашел конкретного ответа на свой вопрос.
Задача такая:
Допустим в денвере есть 2 папки site1.ru и site2.ru
Возможно ли с помощью $ _GET и file_get_content передать параметры из одного пхп скрипта, получить их на другом и вернуть обработав?

Передача параметров между двумя окнами
здравствуйте. краткое описание ситуации — делаю плеер, хочу реализовать плей лист в новом окне.

Обработка данных из формы двумя скриптами
Есть форма, типа анкеты. Задача: нужно ее обработать двумя скриптами. Один скрипт, допустим,лежит.

Передача данных из html формы между двумя php файлами
Существует сайт, на котором пользователь вводит данные в html форму, затем эти данные по средствам.

Передача переменной между скриптами
Есть 3 файла: 1.php : в нем лежит форма (одно текстовое поле ввода) 2.php : в нем 2 фрейма (3.php.

Эксперт PHP

ЦитатаСообщение от Gtone Посмотреть сообщение

Возможно ли с помощью $ _GET и file_get_content передать параметры из одного пхп скрипта, получить их на другом и вернуть обработав?

$_GET запрос передается через адресную строку, например site1.ru/index.php?id=5&key=2
в файле index.php сайта site1.ru можно получить доступ к этим данным в массиве GET через $_GET[‘key’] и $_GET[‘id’]. Соответсвенно можно также и обратно передать данные.

Либо при помощи file_get_content(‘site1.ru/index.php?id=5&key=2’) в ответ вы получите html который выводится на странице к которой обращаетесь

Я до туда еще не докопал) Просто столкнулся с такой задачей и хотелось бы знать как это делается именно так, как я спросил. Чисто в практических целях.
Лучше знать 100 хреновых способов и 1 лучший, и не использовать ту сотню, но опробовав все.

к примеру я задал несколько переменных в одном файле
$a = 50.5;
$f = 32.442;

Я не пойму как на «другом конце» поймать эти данные сложить их и, к примеру, вернуть и вывести их в echo в первый файл?

Спрашивая это у одного товарища, он сказал примерное «file_get_content отошлет их и получит назад результат выполнения того скрипта».
Как это будет отличаться, если 2 пхп файла лежат в одной папке (site1.ru) и в разных?
Я так и не разобрался с этой темой, в какую сторону копать в литературе.

Добавлено через 3 минуты
Что почитать по этому поводу?
Так же интересует похожая задача: как передать параметр через Javascript и проверить его в отдельном php скрипте.
Какие технологии используются в этой сфере?

Источник

She-wo1f notes

При нажатии кнопки типа submit в пользовательской форме данные, введенные в ее поля, передаются сценарию, расположенному на указанной в параметре action заголовка формы страницу. Они доступны в этом сценарии в переменных, одноименных с соответствующими элементами формы (если в файле php.ini установлен в on параметр reg-ister_globals), а также через массивы $HTTP_POST_VARS (если в файле php.ini установлен в on параметр track_vars) и $_POST (в РНР версий 4.1 и старше).
В форме также могут быть указаны скрытые поля – т. е. поля типа hidden. В эти поля посетитель не может вводить свою информацию, однако данные, указанные в их параметрах value, отправляются вместе с формой сценарию-обработчику.
Принцип передачи данных по страницам с помощью формы прост: один скрипт выводит на страницу в форму скрытые поля с нужными данными, а другой скрипт – обработчик формы – их использует. Недостаток этого способа ясен: данные скрытых полей можно узнать, просмотрев исходный код страницы с формой, так что защита от подделки и конфиденциальность здесь отсутствует.

Читайте также:  Create adapter class java

2. Через формы ($_POST)

Здесь уже не все так очевидно, как в случае $_GET, однако сложного тоже ничего нет. Каждый из нас ежедневно сталкивается с html-формами (авторизация, регистрация, поиск и т.д. и т.д.). А как и куда передаются данные, введенные вами в форме? Рассмотрим самую простую форму:

Рассмотрим первую строку. Значение атрибута action определяет файл обработчик формы, т.е. тот файл, которому будут доступны переменные формы. Атрибут action может быть и пустым, тогда обрабатывать форму можно в той же странице, в которой она выводится. Атрибут method определяет, в какой массив будут помещены значения полей формы. Если method=”get”, переменные будут доступны в массиве $_GET, еслиmethod=”post” – $_POST. Теперь перейдем непосредственно к полям формы. Мы создали всего одно текстовое поле с атрибутом name=”some_field”, который и определяет имя переменной, которое будет соответствовать значение поля. Т.е., после нажатия кнопки отправить, доступ к значению поля some_field можно получить как $_POST[‘some_field’]. На самом деле, есть еще один массив $_REQUEST, который может содержать как массив $_GET, так и массив $_POST, но его я встречал только в backend-файлах AJAX приложений, поэтому ничего по поводу того, как его использовать сказать не могу.
Обратимся к случаю, когда обработчик формы и сама форма находятся в одном файле. Вот пример кода:

Здесь мы проверяем, если массив $_POST пустой, то выводим форму, если нет – распечатываем его содержимое. Обратите внимание, что если вместо функции empty мы будем использовать функцию isset, пример работать не будет, поскольку массив $_POST существует всегда, а вот пустой он или нет определяем мы с вами.

3. Через сессию ($_SESSION)

Передача информации между страницами возможна с помощью механизма работы с сессиями. Смысл его в том, что значения определенных переменных сохраняются в файле в папке временных файлов сервера, а посетителю отправляется в cookie уникальный идентификатор этого файла (или, если браузер посетителя cookie не принимает, идентификатор присоединяется ко всем ссылкам на сайте, ведущим на другие его страницы). Впоследствии при получении от посетителя идентификатора сессии (имя cookie, содержащего его, жестко определяется в настройках web-сервера) в том случае, если в папке временных файлов существует соответствующий этому идентификатору файл, этот файл считывается и значения всех переменных, указанные в нем, передаются сценариям на страницах сайта.
Открыв сессию командой session_start () и зарегистрировав для сессии нужные переменные командой session_register (), можно в сценариях на других страницах сайта (после вызова той же команды session_start ()) работать с этими переменными, как если бы они были определены и установлены в этих же самых сценариях. (Подробнее о данных командах и особенностях их использования в зависимости от настроек файла php.ini читайте в Описании РНР.)
Кроме того, все эти переменные доступны как элементы массивов $HTTP_SESSION_VARS и (в РНР 4.1) $_SESSION (использовать эти массивы предпочтительнее, так как при этом отсутствует риск передачи значений переменных сценарию-обработчику путем указания их значений в адресной строке при неоткрытой сессии).
Если в php.ini установлен в on параметр session.auto start, то открывать сессию для ее использования не обязательно – достаточно лишь зарегистрировать нужные переменные командой sessionregister, чтобы они сохранялись в качестве сессионных.

Читайте также:  Using slow pure python sequencematcher install python levenshtein to remove this warning

1.php:
session_start(); $a = 123; $_SESSION[‘a’] = $a;

2.php:
session_start(); echo $_SESSION[‘a’];

Источник

Как передать переменные между php-скриптами?

Есть ли способ передать значения и переменные между php-скриптами?

Формально я пытался закодировать страницу входа и когда пользователь вводит неправильный ввод, первый другой скрипт проверяет ввод, а если он ошибочен, сайт возвращается к последней странице сценария и показывает предупреждение типа «Это неправильный ввод». Для этой цели мне нужно передать значения из сценариев, я думаю.

Для передачи информации через GET :

header('Location: otherScript.php?var1=val1&var2=val2'); 
 // first script session_start(); $_SESSION['varName'] = 'varVal'; header('Location: second_script.php'); // go to other // second script session_start(); $myVar = $_SESSION['varName']; 

Сообщение : Взгляните на это .

Не можете ли вы include (или include_once или require ) другой скрипт?

Вы должны изучить переменные сеанса . Это включает в себя хранение данных на сервере, связанных с определенным ссылочным номером («идентификатор сеанса»), который затем отправляется браузером по каждому запросу (как правило, в виде файла cookie). Сервер может видеть, что тот же пользователь обращается к странице, и он устанавливает $_SESSION чтобы отразить это.

session_start(); // must be called before data is sent $_SESSION['error_msg'] = 'Invalid input'; // redirect to b.php 

Быстрый способ – использовать глобальные или сеансовые переменные.

global $variable = 'something'; 

«Лучшим» способом сделать это будет включение сценария и передача переменной по параметру, например:

// script1.php contains function 'add3' function add3( $value ) < return $value + 3; >// script2.php include "script1.php"; echo 'Value is '.add3(2); // Value is 5 

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

  • временный файл (например, tempnam() ),
  • кеш (NoSQL: memcached , redis ),
  • переменная сеанса ( $_SESSION ), но сначала нужно начать сеанс.
Читайте также:  Select html element jquery

Я использую метод extract() для передачи переменной среди PHP-скриптов . Это выглядит как пример:

1. Файл index.php

'hello', 'content'=>'hello world' ]; extract($data); require 'content.php'; 

2. Файл content.php :

Источник

Как передать переменные между PHP-скриптами?

Есть ли способ передать значения и переменные между php-скриптами? Формально я пытался закодировать страницу входа в систему, и когда пользователь вводит неправильный ввод, первый другой script будет проверять ввод, а если он ошибочен, сайт возвращается к последней странице script и показывает предупреждение, подобное «Это неправильный ввод». Для этого мне нужно передать значения из сценариев, которые, как я полагаю. С уважением. P

7 ответов

Чтобы передать информацию через GET:

 header('Location: otherScript.php?var1=val1&var2=val2'); 
 // first script session_start(); $_SESSION['varName'] = 'varVal'; header('Location: second_script.php'); // go to other // second script session_start(); $myVar = $_SESSION['varName']; 

Опубликовать. Посмотрите этот.

Не можете ли вы include (или include_once или require ) другой script?

Когда вы include другой скрипт, его код «вставляется» во включающий, так что он получает те же вещи, что и при написании кода непосредственно в первом.

Если include не может найти указанный файл, он выдаст предупреждение, require вызовет фатальное исключение.

Вы должны заглянуть в переменные сеанса. Это включает в себя хранение данных на сервере, связанных с определенным ссылочным номером ( «идентификатор сеанса» ), который затем отправляется браузером по каждому запросу (как правило, в виде файла cookie). Сервер может видеть, что один и тот же пользователь обращается к странице, и он устанавливает надстроговое значение $_SESSION , чтобы отразить это.

session_start(); // must be called before data is sent $_SESSION['error_msg'] = 'Invalid input'; // redirect to b.php 

Это сработало безупречно, хотя меня немного смущает вопрос, почему вы должны использовать «session_start ()» в b.php, когда это больше похоже на «session_continue (), поскольку, по-видимому, он не создает новый сеанс.

Быстрый способ — использовать глобальные или сеансовые переменные.

global $variable = 'something'; 

«Лучшим» способом сделать это будет включение script и передача переменной по параметру, например

// script1.php contains function 'add3' function add3( $value ) < return $value + 3; >// script2.php include "script1.php"; echo 'Value is '.add3(2); // Value is 5 

Я использую метод extract() для передачи переменной среди PHP-скриптов. Это выглядит как пример:

1. Файл index.php

'hello', 'content'=>'hello world' ]; extract($data); require 'content.php'; 

2. Файл content.php:

Источник

Оцените статью