Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > считывание данных из форм без сервера


Автор: FortMax 18.10.2010, 06:26
Доброго времени суток=)
У меня php используетяс, как отдельный интерпритатор, а не как модуль сервера.
Мне необходимо написать сценарий, который будет запускаться из командной строки. Он формирует страничку с формой, и после введения данных, после нажатия кнопки отправить, этот же скрипт должен обработать данные, но переменные $_POST, я использовать не могу т.к сервер не используется. Скажите как можно ещё передать содержимое инпута ??? 

Есть у меня мысля: сначало записать данные из формы с помощью JS в текстовик, а затем скриптом считать этот текстовик .... Скажите может существует методика поэлегантней ???

Автор: unicross 18.10.2010, 07:01
Цитата("FortMax")
Есть у меня мысля: сначало записать данные из формы с помощью JS в текстовик

А не смущает, что JS обычно не имеет доступа к файловой системе по причинам безопасности?

Цитата("FortMax")
Скажите может существует методика поэлегантней

Либо сервер, либо PHP-GTK http://gtk.php.net/

Автор: FortMax 18.10.2010, 07:10
Цитата(unicross @  18.10.2010,  07:01 Найти цитируемый пост)
Либо сервер, либо PHP-GTK http://gtk.php.net/ 

unicross, интересная штуковина =) попробуем! а средствами стандартного php нельзя ???

Автор: unicross 18.10.2010, 07:31
Можно передавать данные при вызове из командной строки после названия программы
Код
php.exe test.php test1 test2

Получать через $_SERVER["argv"] 

Возможно и в PHP существуют функции на подобии объекта cin в C++ или raw_input() в Python. Мне сталкиваться не приходилось. Не было в этом нужды...

Автор: FortMax 18.10.2010, 07:38
unicross,  скачал PHP-GTK и что-то не получается поставить  smile  может подскажешь как ?

Автор: unicross 18.10.2010, 07:40
И в PHP можно получать данные при запросах:
Код
<?php
echo "Enter x: ";
$line1 = trim(fgets(STDIN));
echo "Enter y: ";
$line2 = trim(fgets(STDIN));
print $line1 . "\n";
print $line2;
?>

Можно использовать вместо HTML-формы.

Цитата("FortMax")
скачал PHP-GTK и что-то не получается поставить


Не знаю какая у вас ось. Под Винду можно здесь прочитать http://wwwadmin.ru/php/php-gtk/

Добавлено через 3 минуты и 40 секунд
Большое количество примеров по PHP-GTK и описание установки на этом сайте http://www.kksou.com/php-gtk2/

Автор: FortMax 18.10.2010, 07:48
у меня винда и php устанавливался в составе денвера, скачал PHP-GTK и не могу понять что мне делать со старым php, куда и что копировать ....

Автор: unicross 18.10.2010, 08:05
Старый PHP вам не нужен. Необходимые exe файлы идут вместе с PHP-GTK. Единственно библиотеки расширений не идут в поставке. Нужно скачать дистибутив (zip-архив http://windows.php.net/downloads/releases/php-5.2.14-nts-Win32-VC6-x86.zip) и скопировать из него библиотеки в папку ext. Далее подключить их в конфиге.

Если скинете свой E-mail в Личку, то пришлю настроенный дистрибутив PHP-GTK с библиотеками (10 Mb в архиве).

Автор: FortMax 18.10.2010, 08:08
unicross, а можно-ли использовать html+css в оформлении таких приложений ? 

Автор: skyboy 18.10.2010, 08:15
Цитата(FortMax @  18.10.2010,  05:26 Найти цитируемый пост)
У меня php используетяс, как отдельный интерпритатор, а не как модуль сервера.

как CGI? тогда почему это вдруг "$_POST нет"?
или HTTP-сервера нет вообще? тогда как можно заполнить форму? браузер ведь работает либо со статическими файлами(html), либо делает запрос HTTP-серверу.
как ты в консоли собираешься отрисовать <input>?
что вообще за задача такая?

Автор: FortMax 18.10.2010, 08:51
Цитата(skyboy @  18.10.2010,  08:15 Найти цитируемый пост)
как ты в консоли собираешься отрисовать <input>?

в батнике:
Код

@echo off
@php.exe -q %~n0.php >%~n0.html
%~n0.html


Цитата(skyboy @  18.10.2010,  08:15 Найти цитируемый пост)
или HTTP-сервера нет вообще? тогда как можно заполнить форму? браузер ведь работает либо со статическими файлами(html), либо делает запрос HTTP-серверу.

получается локальная страничка с формой


Цитата(skyboy @  18.10.2010,  08:15 Найти цитируемый пост)
что вообще за задача такая? 

мне нужно что бы пользователь мог выбрать rtf-файл(для этого и нужна форма), затем скрипт парсит его и выбранные данные помещает в БД

Автор: FortMax 18.10.2010, 09:10
так что никак без сервера нельзя передать ???

Автор: skyboy 18.10.2010, 10:55
то есть, ты сначала запускаешь ВАТник, затем открываешь страницу и в форме выбираешь имя файла? а кому ты собирался передавать параметры? статическому HTML? BATнику параметры из браузера передать точно не получится.
короче, гиблое дело. по такому принципу связка "браузер + php-cli + BAT-скрипт" работать не будут.
либо передавай параметры в параметрах вызова BATника или непосредственно РНР скрипта.
либо ставь НТТР-сервер.

Автор: FortMax 18.10.2010, 13:00
Цитата(skyboy @  18.10.2010,  10:55 Найти цитируемый пост)
либо ставь НТТР-сервер. 
 уже поставил  smile  всё таки подумав, решил что это в моем случае наиболее приемлемый вариант ... хотя PHP-GTK то же темка прикольная  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)