LINUX.ORG.RU

Вопрос специалистам по PHP. Ввод данных.

 , , ничего не понимаю, ,


1

2

Нужно нарисовать на странице поля login. password, minutes, command-line а после нажатия на кнопку (OK) записать их в файл (pipe). Что бы они уже парсились другой программой. Сам я в PHP ничего не понимаю. Программу пишу для частных нужд, однако предоставлю исходники как допишу.

Программа что то вроде WEB консоли для управления игровым сервером.

Формат выходных данных:

login=username
password=qwerty123
minutes=0
command-line=print через 30 минут сервер будет перезагружен

быдлокод, валидации нет

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$result = "login=" . $_POST['login'] . "\npassword=" . $_POST['password'] . "\nminutes=" . $_POST['minutes'] . "\ncommand-line=" . $_POST['command-line'];
file_put_contents('output.txt', $result);
}
?>
<html>
<form method="POST" action="<?php $_SERVER['PHP_SELF']?>">
Login: <input type="text" name="login" value="username" size="30"><br />
Password: <input type="text" name="password" value="qwerty123" size="30"><br />
Minutes: <input type="text" name="minutes" value="0" size="3"><br />
Command-Line: <input type="text" name="command-line" value="print через 30 минут сервер будет перезагружен" size="30"><br />
<input type="submit" value="OK">
</form>
</html>

я не программист :(

xtraeft ★★☆☆ ()
Последнее исправление: xtraeft (всего исправлений: 1)
Ответ на: комментарий от rezedent12

Строки склеиваются через точку. А вообще уже xtraeft тебе готовый вариант накидал. Но млин, это же гуглится за час!

alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Установил php5-cgi, перезапустил nginx. Я всё правильно сделал?

rezedent12 ☆☆☆ ()
Ответ на: комментарий от kukara4

Таки заставил работать через fastcgi. Да уж, думал как на апаче всё будет работать..

Сейчас это скрипт выводит в браузер

No input file specified.

а в output.txt ничего не выводит.

rezedent12 ☆☆☆ ()
Ответ на: комментарий от rezedent12

разберись с работоспособностью пхп скриптов сначала на своем конфиге

При том что файл явно «выходной».

это к тому скрипту отношения вообще не имеет.

ну или попробуй поменять

<form method="POST" action="<?php $_SERVER['PHP_SELF']?>">
на
<form method="POST" action="script.php">

xtraeft ★★☆☆ ()
Последнее исправление: xtraeft (всего исправлений: 1)
Ответ на: комментарий от xtraeft

Вообще то поменял.

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$result = "login=" . $_POST['login'] . "\npassword=" . $_POST['password'] . "\nminutes=" . $_POST['minutes'] . "\ncommand-line=" . $_POST['command-line'];
file_put_contents('/login-minecraft/output.txt', $result);
}
?>
<html>
<form method="POST" action="/login-minecraft/index.php">
Login: <input type="text" name="login" value="username" size="30"><br />
Password: <input type="text" name="password" value="qwerty123" size="30"><br />
Minutes: <input type="text" name="minutes" value="0" size="3"><br />
Command-Line: <input type="text" name="command-line" value="print через 30 минут сервер будет перезагружен" size="30"><br />
<input type="submit" value="OK">
</form>
</html>

rezedent12 ☆☆☆ ()
Ответ на: комментарий от xtraeft

Извини, просто перепутал index.php с index.html

Теперь такого сообщения не выдаёт, то есть скрипт по ходу запускается, только ничего в output.txt не пишет.

rezedent12 ☆☆☆ ()
Ответ на: комментарий от resurtm

За 40 баксов сделаю. Сроки: 1 день на разработку + 1 день на твои правки.

дорого. Я сделаю за $37.

drBatty ★★ ()
Ответ на: комментарий от drBatty

Нашёл

2013/07/31 19:30:03 [error] 13819#0: *45 FastCGI sent in stderr: "PHP Warning:  file_put_contents(/login-minecraft/output.txt): failed to open stream: No such file or directory in /var/www-html/login-minecraft/index.php on line 4" while reading response header from upstream, client: 192.168.0.25, server: localhost, request: "POST /login-minecraft/index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "yoba-gaming.no-ip.org", referrer: "http://yoba-gaming.no-ip.org/login-minecraft/index.php"
rezedent12 ☆☆☆ ()
Ответ на: комментарий от xtraeft

Спасибо, вроде работает. Завтра буду с pipe каналами пробовать. Как сделаю, выложу исходники в теме разработка. Для начала это будет альтернативный minecraft авторизатор работающий не через bukkit, а через командную строку сервера. А дальше можно будет другие функции прикрутить.

rezedent12 ☆☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.