Что происходит с form action?

Ysn

Guest
Что происходит с form action?

PHP:
$action=$_SERVER['DOCUMENT_ROOT'];
...
<form action="<?print $action;?>" method="post">
Вот так не работает. Кнопка формы просто не функционирует, будто action вообще пуст. А если сделать так:

PHP:
$action=$_SERVER['DOCUMENT_ROOT'];
...
<form action="<?$action;?>" method="post">
то все работает отлично. Почему?
 

Кром

Новичок
>Кнопка формы просто не функционирует, будто action вообще пуст.

Наверое стоит все таки посмотреть, что же там такое?

><form action="<?$action;?>" method="post">
>то все работает отлично. Почему?

Потому что нужно почитать про основы php и html, в которых говорится, что если в action ничего не указано, то форма переадресуется на ту же страницу. С теми же параметрами.
А в данном случае в action ничего нет потому что <?$action;?>, это совершенно бессмысленная строка.
 

Ysn

Guest
В том то и дело, что я пытаюсь понять, почему эта совершенно бессмысленная строка работает... в то время как осмысленная - нет. Перечитай понимательнее - print $action - НЕ работает, а вот бессмысленная $action - работает.

p.s. А с пустым action... если файл проинклужен - куда передается? На тот файл, который инклудил, или на тот, который содержит форму?
 

Ysn

Guest
Спасибо, кое-что прояснило. Но не все. Например, p.s. выше.
 

Кром

Новичок
Ysn, я внимательно прочитал то что ты написал. А вот ты читаешь невнимательно.

action="<?$action;?>" делится на две составляющие:

<?$action;?> - бессмысленная строка

action="" - далеко не бессмысленная строка.

Попытайся понять в чем различие, перед тем как отвечать.
 

Ysn

Guest
А то что выше этого $action=$_SERVER['DOCUMENT_ROOT'];
- это ты тоже обратил внимание? И что, соответственно,
action="<?$action;?>" равняется action="<?print $_SERVER['DOCUMENT_ROOT'];?>"... И что, по идее, должно бы работать...
 

Ysn

Guest
там есть index.php , который запускается в таком случае автоматически. Я не об этом. Я о том, что <?PRINT $action;?> НЕ работает, а вот <?$atcion?;> - работает. Любая переменная, которая применяется внутри html кода - применяется при помощи print, так? Ну так вот здесь с ней - не работает. Без нее - без проблем. Вот что я пытаюсь понять - почему так?
 

Tor

Новичок
правую кнопку на странице в обоих случаях
пункт "В виде хтмл" и далее до полного понимания
 

dEn

Guest
Наверное время суток, когда был задан вопрос играет свою роль....


Если у тебя сайт http://site.ru/,
то action="[здесь DOCUMENT_ROOT прим. /home/site/www]"
будет ссылаться на http://site.ru/home/site/www

А вообще последуй совету Tor'а
 

Фанат

oncle terrible
Команда форума
там есть index.php , который запускается в таком случае автоматически
тебе дали ссылку выше, из которой ЯСНО следует, что DOCUMENT_ROOT к "index.php" не имеет ни малейшего отношения.
я пытаюсь понять - почему так?
не заметно.
пытался бы - читал бы ссылку

-~{}~ 26.03.05 14:27:

p.s. А с пустым action... если файл проинклужен - куда передается? На тот файл, который инклудил, или на тот, который содержит форму?
ответ на этот вопрос находится в другом факе - на танке.
сам найдёшь?
 

agx

Программер :-)
Ysn
Короче, сделай так, чтобы в выходном html у тебя атрибут action формы содержал путь к существующему файлу (абсолютный или относительный). К примеру: action="../inc/process.php".
 

Kelkos

Сам себе программер
Ууу.. вот это бред..
Ysn просто сделай вот так:
<form action="<?=$_SERVER['PHP_SELF'] ?>" method="post">
и пока не задумывайся ЧТО там куда выдаётся.. Пока тебе слишком рано задаваться такими вопросами.. ;)
Всем привет.
Да, забыл сказать, что формы будут переданны ЭТОМУ же скрипту..
 

Kelkos

Сам себе программер
Frol
Да.. пойду кофейку попью.. Что то сам чувствую, что рановато я вылез в инет. шутки какими то плоскими получаются. хех.
 
Сверху