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



 

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

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

Открыть тему
Тема закрыта
> Запись в txt файл с порядковым номером
pashek123
pashek123
Topic Starter сообщение 9.12.2017, 23:01; Ответить: pashek123
Сообщение #1


Здравствуйте. Как осуществить запись в txt файл из формы с автоматическим присвоением порядкового номер?
<form action="writepeople.php" method="post">
<table>
<tr>
<td>Данные</td>
<td>Поле ввода</td>
</tr>
<tr>
<td>Фамилия</td>
<td align="center">
<input type="text" name="surname" />
</td>
</tr>
<tr>
<td>Имя</td>
<td align="center">
<input type="text" name="name" />
</td>
</tr>
<tr>
<td>Отчество</td>
<td align="center">
<input type="text" name="patronymic" />
</td>
</tr>
<tr>
<td>Дата рождения</td>
<td align="center">
<input type="text" name="birth" />
</td>
</tr>
<tr>
<td>Номер телефона</td>
<td align="center">
<input type="text" name="phone" />
</td>
</tr>
<tr>
<td>
<select name="kindofpeople">
<option value="a">Друг</option>
<option value="b">Коллега</option>
</select>
</td>
<td colspan="2">
<input type="submit" value="Записать" />
</td>
</tr>

</table>
</font>

[PHP]
<?php

$number = $_POST ['number'];
$surname = $_POST ['surname'];
$name = $_POST ['name'];
$patronymic = $_POST ['patronymic'];
$birth = $_POST ['birth'];
$phone = $_POST ['phone'];

$kindofpeople = $_POST ['kindofpeople'];

$DOCUMENT_ROOT = $_SERVER ['people'];

$date = date ('H:i, jS F Y');
?>

<html>
<head>
<title>Запись друзей и коллег</title>
</head>
<body>
<h1>Справочник</h1>
<h2>Просмотр записи</h2>
<?php
echo "<p> Запись выполнена в " . $date . "</p>";

$number = 0;


$writepeople = $number . "\t" . $date . "\t" . $surname . "фамилия \t" . $name . "имя \t" . $patronymic . "отчество \t" . $birth . "дата рождения \t" . $phone . "номер телефона \t" . $kindofpeople . "Друг или коллега \n";

@ $fp = fopen ("people/people.txt", 'ab');
if (!$fp){
echo "<p><strong>Запись не осуществлена.</p></strong>";
exit;
}
flock ($fp, LOCK_EX); /*Значение параметра LOCK_EX - блокировка записи. Это монопольный режим. Файл не доступен для совместного использования*/
fwrite ($fp, $writepeople, strlen($writepeople));
flock ($fp, LOCK_UN); /*Значение параметра LOCK_UN - отмена существующей блокировки*/
fclose ($fp);

echo "<p>Запись осуществлена.</p>";
?>
</body>


</html>
[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 10.12.2017, 14:16; Ответить: Degradator
Сообщение #2


Используй базу данных. Ты пытаешься использовать инструменты не по назначению.

Если все-таки надо записать в файл, то я бы рекомендовал функцию
[PHP]file_put_contents [/PHP]
Это гораздо удобнее чем то что у тебя в скрипте

Для того чтобы получать новый идентификатор ты должен придумать какой-то велосипед. Например, иметь файл с метаданными, в котором будет записываться последний сохраненный id, либо вытягивать названия файлов из файловой системы при помощи какой-то функции, и смотреть на последний созданный id. например
[PHP]$files = glob('*_file.txt');
$lastFileName = end($files);
$nameParts = explode('_', basename($lastFileName));
$lastId = intval($nameParts[0]);[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pashek123
pashek123
Topic Starter сообщение 11.12.2017, 17:56; Ответить: pashek123
Сообщение #3


На данный момент предполагаю, что можно прочитать часть текста передать переменной и сделать ++.
[PHP]<?php
echo "<p> Запись выполнена в " . $date . "</p>";

$number = 0;

@ $fp = fopen ("people/people.txt", 'r');
if (!$fp){
echo "<p><strong>Нет информации</strong></p>";
exit;
}

$view = fread ($fp, 4);
$number = $view + 1;

fclose ($fp);

$writepeople = "\x0B" . $number . "\t" . $date . "\t" . $surname . " фамилия \t" . $name . " имя \t" . $patronymic . " отчество \t" . $birth . " дата рождения \t" . $phone . " номер телефона \t" . $kindofpeople . " Друг или коллега" . "\x0B";

@ $fp = fopen ("people/people.txt", 'ab');
if (!$fp){
echo "<p><strong>Запись не осуществлена.</p></strong>";
exit;
}
flock ($fp, LOCK_EX); /*Значение параметра LOCK_EX - блокировка записи. Это монопольный режим. Файл не доступен для совместного использования*/
fwrite ($fp, $writepeople, strlen($writepeople));
flock ($fp, LOCK_UN); /*Значение параметра LOCK_UN - отмена существующей блокировки*/
fclose ($fp);

echo "<p>Запись осуществлена.</p>";
?> [/PHP]

Как каждый раз записывать текст с новой строки?
[PHP]$writepeople = "\x0B" . $number . "\t" . $date . "\t" . $surname . " фамилия \t" . $name . " имя \t" . $patronymic . " отчество \t" . $birth . " дата рождения \t" . $phone . " номер телефона \t" . $kindofpeople . " Друг или коллега" . "\x0B";[/PHP]
[PHP]$writepeople = "\n" . $number . "\t" . $date . "\t" . $surname . " фамилия \t" . $name . " имя \t" . $patronymic . " отчество \t" . $birth . " дата рождения \t" . $phone . " номер телефона \t" . $kindofpeople . " Друг или коллега" . "\n";[/PHP]
[PHP]$writepeople = "\r" . $number . "\t" . $date . "\t" . $surname . " фамилия \t" . $name . " имя \t" . $patronymic . " отчество \t" . $birth . " дата рождения \t" . $phone . " номер телефона \t" . $kindofpeople . " Друг или коллега" . "\r";[/PHP]

Ничего из этого не переводит запись на новую строку. Что делаю не так?

p.s. Согласен, что не предназначено, решил таким образом поглубже изучить и потренироваться работе с файлами, иду по книге Люка и Лоры... Но у них инфа исчерпана и данного примера нет((
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 12.12.2017, 14:44; Ответить: Degradator
Сообщение #4


[PHP]file_put_contents("filename.txt", "line1\n");
file_put_contents("filename.txt", "line2\n", FILE_APPEND);
file_put_contents("filename.txt", "line3\n", FILE_APPEND);[/PHP]

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыКак улучшить запись голоса
0 k0ttee 5900 6.8.2020, 18:59
автор: k0ttee
Горячая тема (нет новых ответов) Услуги по сбору новостей .txt для ваших сайтов, любые тематики + Отзывы
Импорт в DLE, WP (Xml, SQL) с отложенной публикацией под заказ
138 Akira 78610 12.8.2019, 21:28
автор: neonix
Открытая тема (нет новых ответов) Куплю места для размещения TXT+URL Строительная тематика.
7 regem 7587 28.3.2019, 18:31
автор: regem
Открытая тема (нет новых ответов) Срочно требуется специалист по robots.txt
Разовая работа
1 tankoff 2186 8.3.2017, 1:56
автор: PavelMarty
Открытая тема (нет новых ответов) Куплю места для размещения TXT+URL Кафе, Ресторан, Банкетные тематики.
0 regem 8335 1.3.2017, 3:20
автор: regem


 



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