2017-01-17 2 views
-2

Регистрационная форма записи данных в текстовый файл, используя этот код:PHP записи стирании TXT

<? 
if(isset($_GET['list']) AND $_GET['list'] != '') { 
$listId = $_GET['list']; 
} 
$email = $_POST['widget-subscribe-form-email']; 
$fname = isset($_POST['widget-subscribe-form-fname']) ? $_POST['widget-subscribe-form-fname'] : ''; 
$lname = isset($_POST['widget-subscribe-form-lname']) ? $_POST['widget-subscribe-form-lname'] : ''; 


$fp = fopen("newsletter_subscriptions.txt","w+"); 

fputs($fp, "email : "); 
fputs($fp, $_POST['widget-subscribe-form-email']); 

fputs($fp, "\nPrénom : "); 
fputs($fp, $_POST['widget-subscribe-form-fname']); 

fputs($fp, "\nNom : "); 
fputs($fp, $_POST['widget-subscribe-form-lname']); 

fclose($fp); 

?> 

Моя проблема заключается в том, что каждая новая запись стирает предыдущую. Я хочу сохранить все записи в txt-файле. Как это сделать?

+0

пропустить текстовый файл, используйте дб. – nogad

+5

Когда люди начнут читать документацию о функциях, которые они используют? На ваш вопрос ответили: http://php.net/manual/en/function.fopen.php – arkascha

+0

Возможный дубликат [w + mode in fopen?] (Http://stackoverflow.com/questions/11939847/w- mode-in-fopen) – joeyfb

ответ

2

Вы открываете файл в неправильном режиме. From the manual:

'w +' Открыт для чтения и записи; поместите указатель файла в начало файла и обрезайте файл до нулевой длины. Если файл не существует, попытайтесь его создать.

Вы хотите добавить в файл, вы должны использовать:

«A +» Открыть для чтения и записи; поместите указатель файла в конец файла. Если файл не существует, попытайтесь его создать. В этом режиме fseek() влияет только на позицию чтения, записи всегда добавляются.

Изменение fopen линии:

$fp = fopen("newsletter_subscriptions.txt","a+"); 
3

File open modes:

w+ Открыть только для записи; поместите указатель файла на начало файла и обрезать файл до нулевой длины. Если файл не существует, попытайтесь его создать.

a+ Открыт для чтения и записи; поместите указатель файла на конец файла.

+0

Я был слишком медленным, lol. –

+1

Не так медленно; вы уже ответили и удалили до того, как я отредактировал ссылку на PHP Docs –