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


Автор: xdark 21.7.2008, 17:18
Здраствуйте! 
У меня есть форма с одним текстовым полем ввод имени, и скрипт обработчик, хочу, чтобы имя из поля записывалось в корневой каталог в файл file.htm, но не выходит почему то, помогите плз!

вот код: 

Код

<?php
if (isset($_REQUEST["name"]))
{
add();
}
else
{
echo "введите ваше имя";
}
function add()
{
$f=fopen ("file.htm", "a+");
$w=fwrite($f, "ваше имя: $name<br>");
fclose ($f);
}
?>

Автор: bars80080 21.7.2008, 17:22
пользуйся кнопкой код, пожалуйста

Код

<?php
if (isset($_REQUEST["name"]))
{
add($_REQUEST['name']);
}
else
{
echo "введите ваше имя";
}
function add($name)
{
$f=fopen ("file.htm", "a+");
$w=fwrite($f, "ваше имя: $name<br>");
fclose ($f);
}
?>
 почитай документацию, про область видимости переменных


а почему в файл .htm?

Автор: xdark 21.7.2008, 17:30
Цитата(bars80080 @ 21.7.2008,  17:22)
пользуйся кнопкой код, пожалуйста

Код

<?php
if (isset($_REQUEST["name"]))
{
add($_REQUEST['name']);
}
else
{
echo "введите ваше имя";
}
function add($name)
{
$f=fopen ("file.htm", "a+");
$w=fwrite($f, "ваше имя: $name<br>");
fclose ($f);
}
?>
 почитай документацию, про область видимости переменных


а почему в файл .htm?

а почему в файл .htm?

чтобы в нем теги не отображались)

Автор: bars80080 21.7.2008, 17:36
а зачем, чтобы тэги не отображались?

Автор: xdark 21.7.2008, 17:48
$w=fwrite($f, "ваше имя: $name<br>ваша фамилия: $fam<br>ваш возраст: $age<br>"); 

вот у меня дальше примерно так будет, если бы я в "текстовый" сохранял, так бы не красиво было и все в одну строку

Автор: bars80080 21.7.2008, 17:52
ладно
вытаскивать по капле не хочется, собственно и не моё дело. просто оно (дело) попахивает керосином

может вы обрисуете весь смысл этого проекта (задумки), а то кажется, что здесь излишне жонглирование с записью, чтением и т.п.
но это уже как сами хотите

Автор: Feldmarschall 21.7.2008, 18:38
xdark, первое, чему ты должен научиться, как новичок - это задавать вопросы. 
Ты должен понимать, что никто за твоим монитором не сидит, и твой код не запускает.
поэтому "не выходит почему-то" писать бесполезно. Что-то да всегда выходит. Пиши, что именно. Какие ошибки. Что ты видишь на экране. Что ожидал получить, что получил в итоге. Подробно

Автор: xdark 24.7.2008, 01:25
вот написал код дальше и столкнулся с проблемой: теперь у меня два текстовых поля имя и фамилия, например пишу в поле, где нужно ввести имя оператор else обрабатывает условие правильно, если пишу наоборот в поле фамилия то получается "введите имя и ваши данные записаны", почему так, если не трудно подскажите, где ошибку сделал

Код

<?php
if (isset($_REQUEST["name"]) && strlen($_REQUEST["name"]))
{
add($_REQUEST['name']);
}
else
{
echo "<font color = 'red'>введите имя</font>" , "<br>";
}
if (isset($_REQUEST["fam"]) && strlen($_REQUEST["fam"]))
{
addfam($_REQUEST['fam']);
}
else
{
echo "<font color = 'red'>введите фамилию</font>" , "<br>";
}
if (isset($_REQUEST["name"]) && ($_REQUEST["fam"] == false))
{
echo "";
}
else
{
echo "ваши данные записаны";
}
function add($name)
{
$f=fopen ("file.htm", "a+");
$w=fwrite($f, "ваше имя: $name<br>");
fclose ($f);
}
function addfam($fam)
{
$f=fopen ("file.htm", "a+");
$w=fwrite($f, "ваша фамилия: $fam<br>");
fclose ($f);
}
?>

Автор: Валерия 24.7.2008, 04:41
Код

if (isset($_REQUEST["name"]) or isset($_REQUEST["fam"]))
{
echo "ваши данные записаны";
}

Автор: Feldmarschall 24.7.2008, 11:26
xdark, все зависит от логики, которую ты хочешь сделать.
Ты уверен, что хочешь записывать имя без фамилии или фамилию без имени? Если да - то к чему эти предупредждения? Если нет - почему две функции записи и две отдельные проверки?

Опиши логику приложения, как оно должно у тебя работать. Словами.

Добавлено через 6 минут и 49 секунд
...впрочем, как я понял, словами для тебя - самое сложное. И логики у тебя никакой нет своей - лучше подсказать чужую.
Твой код надо разделить на две части.
1 - проверка
2 - запись

Поскольку условий больше оодного, надо ввести при проверках переменную, которая будет индикатором ошибки.
в первой части проверяем поля и пишем ошибки в переменную.
во второй - проверяем эту переменную.
если нет ошибок - записываем и выводим ваши данные записаны
иначе - выводим ошибку.

итого у тебя на всю программу три условия. Два из которых простые, а третье - с else
 

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