Форма пуста сама, ничего не делая

0

Ранее сегодня я задал вопрос о том, что я делаю неправильно, я получил эту работу, но теперь у меня возникает другая проблема с этим скриптом.

предварительно

Код дал предупреждение(), которое исправлено сейчас. Вы можете прочитать сообщение здесь

В чем проблема?

Код автоматически пуст сам. Когда вы обновляете страницу, где скрипт является текстовым файлом, пуст. Я понятия не имею, почему... Это код

    <?php 
$fn = "file.txt"; 
$file = fopen($fn, "w+"); 
$size = filesize($fn); 

if($_POST['addition']) fwrite($file, $_POST['addition']); 

fclose($file); 
?> 
<form action="<?=$PHP_SELF?>" method="post"> 
<input type="text" name="addition" value="<?php echo file_get_contents('file.txt');?>"/> 
<input type="submit"/> 
</form>

Я использую этот скрипт для отображения видео на YouTube, поэтому я часто его обновлял. Вы можете найти рабочий пример скрипта с этой ссылкой: http://beta.martijnmelchers.nl/private/Test/test.php

Что я пробовал?

Я не пробовал много, потому что я не мог найти решение для этого в Интернете, а также не в коде. Пожалуйста, помогите мне снова! Заранее спасибо!

  • 0
    Замените if($_POST['addition']) на if(!empnty($_POST['addition'])) это if(!empnty($_POST['addition'])) вам?
  • 2
    Вам следует начать с руководства для fopen с w+ : открыто для чтения и записи; поместите указатель файла в начале файла и обрежьте файл до нулевой длины . Если файл не существует, попытайтесь создать его.
Показать ещё 3 комментария
Теги:

1 ответ

1
Лучший ответ

Согласно руководству с w+:

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

Похоже, что вы хотите заменить все содержимое при создании сообщения, поэтому самым простым решением является посылка всех запросов обработки файлов в состояние POST:

// To avoid warnings, this is better.
// You can add your original condition after it if you need it.
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
  $file = fopen($fn, "w+"); 
  // not sure why you need this...
  // $size = filesize($fn);
  fwrite($file, $_POST['addition']);
  fclose($file);
}
  • 0
    Нееет еще 1: /
  • 0
    @MartijnMelchers Не беспокойтесь об этом :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню