X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> запись из формы в файл
Axe_hb
Axe_hb
Topic Starter сообщение 29.8.2011, 13:41; Ответить: Axe_hb
Сообщение #1


Народ, помогите пожалуйста! имеется скрипт:
[PHP]<?php
/*
*ЗАПИСЬ В ФАЙл данных из формы
*автор: nc_soft
*10.11.07
*/

//переменная ошибок
$error=array();

//обработчик формы
if (!empty($_POST))
{
//проверка параметра
//функция str_replace() необходима чтобы вырезать переводы строк ( \n )
$var=str_replace("\n",'',trim($_POST['var']));
if (empty($var))
$error['empty']='не введен параметр';


//если все нормально пишем в файл
if (empty($error))
{
//открываем
$f=fopen('db.txt','a+');

//блокируем
flock($f,2);

//запись с переводом строки
fwrite($f,$var."\n");

//закрытие
fclose($f);

/*переадресация , чтобы сбросить пост, это нужно чтобы при нажатии кнопки обновить
данные не добавились вновь*/
header('Location: '.$_SERVER['SCRIPT_NAME'].'?ok=1');
die();
}
}

//если есть ошибки выводим
if (!empty($error))
echo '<p>'.implode('<br />',$error).'</p>';

if (isset($_GET['ok']))
echo '<p>данные записаны</p>';

//сама форма
?>
<form action="<?=$_SERVER['SCRIPT_NAME'];?>" method="post">
<p>
введите параметр:<br />
<input name="var" value="<?=isset($_POST['var']) ? htmlspecialchars(stripslashes(trim($_POST['var']))) : '';?>" /><br />
<input type="submit" value="отправить" />
</p>
</form>

<?php
/*
Примечания:

Для сбора ошибок используется именно массив, потому что удобно впоследствии выводить их через <br /> или списком,
в ключе ммассива также можно указать причину $error['empty']='не введен параметр';

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

*/
?>[/PHP]

он записывает данные из формы в файл db.txt каждый раз на следующую строчку.
Вопрос в следующем: что нужно добавить или изменить в скрипте, чтобы данные из формы записывались не на следующую строчку а на ту, которую я укажу (напрмер нужно всё время в 1 строку со сдвигом того что есть уже в файле вниз). При этом желательно добавить переменную в скрипте в которой будет содержаться то, что ещё нужно добавить к тоу что отправляется из формы.
Ну например отправляю "йцукен" а в файле получаю <p>йцукен<p>
Очень надеюсь на вашу помощь!Заранее спасибо!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Axe_hb
Axe_hb
Topic Starter сообщение 29.8.2011, 14:17; Ответить: Axe_hb
Сообщение #2


(Axe_hb @ 29.8.2011, 16:41) *
При этом желательно добавить переменную в скрипте в которой будет содержаться то, что ещё нужно добавить к тоу что отправляется из формы.
Ну например отправляю "йцукен" а в файле получаю <p>йцукен<p>

с этим разобрался, а вот как в определённую строку сунуть всё это...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 29.8.2011, 14:23; Ответить: Letmetouchyou
Сообщение #3


(Axe_hb @ 29.8.2011, 17:17) *
с этим разобрался, а вот как в определённую строку сунуть всё это...

прочитай файл, всатвь в нужную строку данные, запиши заного файл
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Axe_hb
Axe_hb
Topic Starter сообщение 29.8.2011, 14:34; Ответить: Axe_hb
Сообщение #4


(Letmetouchyou @ 29.8.2011, 17:23) *
всатвь в нужную строку данные

вот в этом и вопрос. КАК?) учитывая мои скудные знания пхп...можно поподробнее? что конкретно и куда добавить?)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 29.8.2011, 15:02; Ответить: Letmetouchyou
Сообщение #5


Axe, str_replace, регулррыне выржение, чтение данных в массив ( 1 элемент массива = 1 строка в файле ( file, fread вроде ) ) и смщение элементов массиваи потом запись.

что в файле должно быть и что нужно менять. обясните на словах.
можно использовать json будет лутший варинат для ваших целей.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Axe_hb
Axe_hb
Topic Starter сообщение 29.8.2011, 15:37; Ответить: Axe_hb
Сообщение #6


Letmetouchyou, вообще из этих слов ничего не понял)
вообщем имеется файл db.txt
там есть следующее:
строка
строка
строка
пустая строка
строка 2
строка 3
строка 4
...

нужно чтобы добавлялись данные постоянно в "пустая строка", тобиш заменяя пустоту на данные отправленные из формы
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 29.8.2011, 16:30; Ответить: Letmetouchyou
Сообщение #7


Axe, из назнвания файла db.txt я догадываюсь что вы там храните конфиг БД?
вообщем в файле данные которые вы считываете и дальше сними работатет?
( и мне чего то кажетсья что ето инсталл какойто вы делаете :) )

используйте json.
пример

[PHP]$c = Array('name'=>'Axe', 'expirience'=>1001 );
file_put_contents('db.txt', json_encode($c) );

$r = json_decode(file_get_contents('db.txt') );

var_dump($r);[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Axe_hb
Axe_hb
Topic Starter сообщение 29.8.2011, 16:39; Ответить: Axe_hb
Сообщение #8


не, это вообще будет файл с новостями))

(Letmetouchyou @ 29.8.2011, 19:30) *
$c = Array('name'=>'Axe', 'expirience'=>1001 );
file_put_contents('db.txt', json_encode($c) );
*
$r = json_decode(file_get_contents('db.txt') );
*
var_dump($r);


и куда это всё вставлять?) Хорошо бы готовую версию сее чуда))Чтобы всё это присутствовало в исходном коде данной темы) а вобще замечательно бы было это все ещё мне-чайнику разжевать и в рот положить)))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 29.8.2011, 16:46; Ответить: Letmetouchyou
Сообщение #9


Axe, надеюсь ты понимаешь что такое массив? вот и считай что ты работаешь с пхп массивом, и помто конвертишь его в джсон и сохраняешь в файл.

чтобы вернуть обранто пхп массив, нужно прочитать файл,и декодировать джсон обратно в пхп массив ( и стд объект ).

вот тот пример что выше я написал, у себя на сервер выполни и поиграйся с ним и все поймешь.

а если нужно что то где то поменять, то меняешь массиво.
что то типо
[PHP]$news[0]['title'] = 'new title';[/PHP]

еше вот можеш глянуть
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Axe_hb
Axe_hb
Topic Starter сообщение 29.8.2011, 16:53; Ответить: Axe_hb
Сообщение #10


как же не люблю много читать)) ладно дома разберусь ночью как всегда))) спасибо =)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыРассылка ваших сообщений в контакт формы!
3 dizaynmaks 1682 18.4.2022, 9:04
автор: dizaynmaks
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыКак улучшить запись голоса
0 k0ttee 5900 6.8.2020, 18:59
автор: k0ttee
Открытая тема (нет новых ответов) Делаю простые формы заказов с оплатой
прочитал-оформил-оплатил
3 Taylor 2792 13.6.2018, 0:34
автор: Taylor
Открытая тема (нет новых ответов) Доработка формы вывода фильтра товара и формы заказа. Webasyst ShopScript7
0 rmoto 2718 12.12.2017, 1:13
автор: -Arturrfmoto-
Открытая тема (нет новых ответов) Требуется доработка формы заказа/обратной связи
0 Dinamitt 1796 22.2.2017, 22:02
автор: Dinamitt


 



RSS Текстовая версия Сейчас: 28.3.2024, 21:19
Дизайн