[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запись данных из формы в файл
UmbaIOmba
Собственно второй день не могу понять в чем проблема... задача простая -есть очень простая html форма, данные из нее принимаются и записываются в файл, далее просто считываются и выводятся под формой в нумерованном списке... здесь запись в файл полученных данных:
define("USERS_LOG", "users.log");
if($_SERVER["REQUEST_METHOD"] == "POST"){
$fn = trim(strip_tags($_POST["$fname"]));
$ln = trim(strip_tags($_POST["$lname"]));
$user = "$fn $ln\n";
file_put_contents(USERS_LOG,$user,FILE_APPEND);
header("Location: file.php");
exit;
}

ну вот а тут вывод их:
if(file_exists("USERS_LOG")){
$users = file("USERS_LOG");
if(is_array($users)){
$users = array_reverse($users);
echo "<ol>";
foreach($users as $user){
echo "<li>$user</li>";
}
echo "</ol>";
}
}

Так вот есть проблема ( дело в том, что файл создается но он почему то пустой, при отправке формы -в файле записывается пустая строка.. и соответственно в браузер ничего не выводится... уже 2 дня сижу не могу понять в чем проблема ( OC win 7(32) -возможно тут проблема? но файл пишется в общедоступную директорию к тому же создается без проблем( ошибок в браузере тоже нет.. что делать хз, может кто может подсказать? потому как мозг закипел((((
P.S. если нужно во вложении файл целиком с html формой? и прошу не судите строго занимаюсь второй месяц самостоятельно потому могу что то не понять.. да и образование экономическое)))

 ! 

М
Выделяйте код тегами [php][/php]
Winston




Спустя 7 минут, 41 секунда (24.11.2011 - 15:21) Winston написал(а):
Исправь немного код
if($_SERVER["REQUEST_METHOD"] == "POST"){
$fn = trim(strip_tags($_POST["fname"]));
$ln = trim(strip_tags($_POST["lname"]));
$user = "$fn $ln\n";
file_put_contents(USERS_LOG,$user,FILE_APPEND);
header("Location: file.php");
exit;
}

Спустя 4 минуты, 3 секунды (24.11.2011 - 15:25) UmbaIOmba написал(а):
Цитата (Winston @ 24.11.2011 - 12:21)
Исправь немного код

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

Спустя 6 минут, 24 секунды (24.11.2011 - 15:31) Winston написал(а):
Цитата (UmbaIOmba @ 24.11.2011 - 14:25)
да и странно, разве заранее объявленная константа может помешать выполнению

Нет не может. Я просто ее не скопировал.
найди различия:
Твой код
Цитата (UmbaIOmba @ 24.11.2011 - 14:13)

$fn = trim(strip_tags($_POST["$fname"]));
$ln = trim(strip_tags($_POST["$lname"]));

Мой код
Цитата (Winston @ 24.11.2011 - 14:21)

$fn = trim(strip_tags($_POST["fname"]));
$ln = trim(strip_tags($_POST["lname"]));

Просто в названиях индексов массиве не нужно ставить $ вначале.
Можешь еще так написать
echo '<pre>'.print_r($_POST, 1).'</pre>';

Чтобы увидеть, что представляет из себя массив $_POST

Спустя 2 минуты, 29 секунд (24.11.2011 - 15:34) UmbaIOmba написал(а):
Все понял сорри за тупость как обычно банальная ошибка в синтаксисе... POST -это массив а индексы естественно не имеют отношения к переменным никакого))) да уж.. радует только то, что это я запомню на долго и врятли повторю такую глупость))) еще раз спасибо!
Быстрый ответ:

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