Sergey Yalyshev Опубликовано 18 апреля, 2005 Жалоба Опубликовано 18 апреля, 2005 Помогите новичку, pls. Вот в html имеется форма с некоторым полем, а action есть cgi-bin скрипт (shell). почему-то не передается значение из поля формы в этот скрипт! Методы пробовал и get и post. Данные в скрипте пытаюсь получить $имя_поля_в_форме. И еще проблема. Скрипт выполняет почему-то не все команды, которые в нем есть. Например, системное время выводит, а графические файлы не генерирует! Цитата
EL[michlen] Опубликовано 18 апреля, 2005 Жалоба Опубликовано 18 апреля, 2005 Вы бы сам скрипт приложили =) Цитата
Sergey Yalyshev Опубликовано 19 апреля, 2005 Автор Жалоба Опубликовано 19 апреля, 2005 Виноват! Вот скрипт #!/bin/sh echo Content-type: text/html echo cat << EOF <html><head> <title>Speed</title> </head> <body> <p> EOF echo $theName if [ ! -z "theName" ]; then echo "Hello, " echo $theName else echo "You don't have a name?!" fi cat<<EOF </p> <p><a href="http://localhost/form.html">Go back</a><p> </body></html> EOF А вот html: <html> <head> <title>Name</title> </head> <body> <h2>Who areyou?</h2> <form method="get" action="/cgi-bin/test-cgi"> <p>Enter your name: <input name="theName"></p> <p><input type="submit"></p> </form> </body> </html> Цитата
Sergey Yalyshev Опубликовано 19 апреля, 2005 Автор Жалоба Опубликовано 19 апреля, 2005 я прислал только простейший из моих скриптов, без графики. я понимаю, что все должно быть очень просто, но нехватает знаний Цитата
Sergey Yalyshev Опубликовано 19 апреля, 2005 Автор Жалоба Опубликовано 19 апреля, 2005 Виноват! Вот скрипт #!/bin/sh echo Content-type: text/html echo cat << EOF <html><head> <title>Speed</title> </head> <body> <p> EOF echo $theName if [ ! -z "theName" ]; then echo "Hello, " echo $theName else echo "You don't have a name?!" fi cat<<EOF </p> <p><a href="http://localhost/form.html">Go back</a><p> </body></html> EOF А вот html: <html> <head> <title>Name</title> </head> <body> <h2>Who areyou?</h2> <form method="get" action="/cgi-bin/test-cgi"> <p>Enter your name: <input name="theName"></p> <p><input type="submit"></p> </form> </body> </html> Цитата
EL[michlen] Опубликовано 19 апреля, 2005 Жалоба Опубликовано 19 апреля, 2005 Во-первых, по HTTP нужно разделять хедеры двумя переводами строки. Во-вторых, переменные в методах GET и POST получаются по-разному. Может в shell это учтено, но обычно переменные POST доступны через stdin, а GET - через аргументы командной строки. Цитата
Sergey Yalyshev Опубликовано 19 апреля, 2005 Автор Жалоба Опубликовано 19 апреля, 2005 Попробовал Ваши рекомендации - не помогло! Самое странное, что PHP скрипт работает и значения из полей в форме передает в скрипт исправно! Цитата
EL[michlen] Опубликовано 19 апреля, 2005 Жалоба Опубликовано 19 апреля, 2005 Естественно - в PHP переменные обрабатываются автоматом, правда рекомендуется использовать $_POST и $_GET. Насчёт shell не знаю, но, по идее, там такого нет - нужно вручную делать. Цитата
Sergey Yalyshev Опубликовано 19 апреля, 2005 Автор Жалоба Опубликовано 19 апреля, 2005 А как это, вручную? В книге, которой я пользуюсь, вводится системная переменная (знать бы что это такое в данном случае!): в скрипте при обращении к переменной из поля формы добавлен определенный префикс, типа $WWW_имя_поля_формы. Пробовал... Как бы не так, ха, ха... Короче не знаю что и делать! Может настройки демона httpd надо поменять где-то? Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.