[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с передасчей строковой переменной из форм
dicksfriend
Имеется следующая проблема, при заполнении строковой формы и нажатии кнопки, в переменную $Name не поступает никаких данных, она остается пустой. Помогите разобраться пожалуюста, буду очень благодарен.

Код:
Скрытый текст

Код

<form method=post>
<P>Name:<br>

<INPUT type="text" name="Name" size=30>

</p>

<input type=submit name=savefile value=Save_File>
</form>

<script language = "php">
function Save_File(){
$h = fopen($Name,"w");
$add_text = "Stroki peredani uspeshno";
if(fwrite($h,$add_text,7))
 echo "All Ok<br>";
else echo "It's a some problem<br>";
fclose($h);
}
if($_POST[savefile])
{Save_File();}
</script>





Спустя 6 минут, 48 секунд (16.07.2009 - 11:10) twin написал(а):
Если только в этом разобраться, то переменную нужно принять в функции или передать в неё значение. А вообще этот код крайне нежелателен. Как в плане безопасности, так и в плане общей реализации.

Спустя 1 минута, 5 секунд (16.07.2009 - 11:11) Anton63 написал(а):
попробуй при открытии файла вместо $Name поставить $_POST[Name]

Спустя 22 минуты, 22 секунды (16.07.2009 - 11:34) dicksfriend написал(а):
Anton63
Cпасибо, все работает.

twin
Безопасность здесь играет самую мизерную роль. т.к. это будет использоваться в локальной сети, среди работников. Но спасибо за замечание.

Спустя 9 минут, 41 секунда (16.07.2009 - 11:43) twin написал(а):
Дело в том, что тут очень велик риск совместного доступа, особенно с атрибутом w. Вы рискуете потерять файл в лучшем случае и положить сервер в худшем. И о безопасности все равно надо думать, бережоного Бог бережет. Нежелательно имя файла напрямую ставить из пост запроса.

Спустя 22 минуты (16.07.2009 - 12:05) andreevich написал(а):
PHP
$_POST[savefile]

а ковычки не нужны ?
PHP
$_POST['savefile']

Спустя 8 минут, 7 секунд (16.07.2009 - 12:13) sergeiss написал(а):
Цитата (andreevich @ 16.07.2009 - 13:05)
а кавычки не нужны ?

ПХП сначала смотрит, не является ли эта строка (в данном случае savefile) именем константы. Если таковой не находит, то делает символьную строку с этим именем, и использует ее как ключ массива.

Проблема может быть в том случае, если вдруг будет константа... Поэтому лучше всегда в явном виде указывать, что это строка. Хотя это и не является строго обязательным.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.