2015-04-01 3 views
-1

Когда я создаю некоторый ввод в текстовое поле (например: test123), и я отправляю страницу, на которой отображается только пустой ввод. После перезагрузки (обновление страницы) появляется текст «test123» в форме. Это также происходит, когда я пытаюсь отредактировать ранее введенный текст, например, например: редактирование ввода «test123» в «test12345» и нажатие на кнопку «Отправить» покажет «test123» и после обновления страницы «test12345».Текстовое поле PHP показывает последний вход после отправки

echo '<form action="" method="post">'; 
$content = file_get_contents($file); 
echo '<textarea style="width: 99.3%; height: 700px; margin-left:-1px" name="cfgtekst">'.htmlspecialchars($content).'</textarea>'; 
echo '<center><input type="submit" class="btn btn-primary confirm_t btn btn-sucess" value="'.$usavechange.'" />'; 
echo '<a href="serverdetalji.php?sid='.$serverid.'" class="btn btn-primary confirm_t btn btn-warning">'.$uotkazi.'</a></center>'; 
echo '</form>'; 

if(isset($_POST)) 
{ 
    $cfgtekst = $_POST['cfgtekst']; 
    $stream_options = array('ftp' => array('overwrite' => true)); 
    $stream_context = stream_context_create($stream_options); 
    if ($fh = fopen($file, 'w', 0, $stream_context)) 
    { 
     fputs($fh, $cfgtekst); 
     fclose($fh); 
    } 
} 
+0

Поскольку это непосредственная форма редактирования FTP, массив ('overwrite' => true) должен стоять там, как будто нет, изменений в файле не будет. Возможно, у вас есть некоторые быстрые решения? – Tuna

ответ

0

Новое значение отображается только после обновления, потому что вы читаете старое значение из файла, печатаете его, а затем сохраняете новое значение. Завершить этот заказ:

if(isset($_POST)) 
{ 
    $cfgtekst = $_POST['cfgtekst']; 
    $stream_options = array('ftp' => array('overwrite' => true)); 
    $stream_context = stream_context_create($stream_options); 
    if ($fh = fopen($file, 'w', 0, $stream_context)) 
    { 
     fputs($fh, $cfgtekst); 
     fclose($fh); 
    } 

} 

echo '<form action="" method="post">'; 
$content = file_get_contents($file); 
echo '<textarea style="width: 99.3%; height: 700px; margin-left:-1px" name="cfgtekst">'.htmlspecialchars($content).'</textarea>'; 
echo '<center><input type="submit" class="btn btn-primary confirm_t btn btn-sucess" value="'.$usavechange.'" />'; 
echo '<a href="serverdetalji.php?sid='.$serverid.'" class="btn btn-primary confirm_t btn btn-warning">'.$uotkazi.'</a></center>'; 
echo '</form>'; 

BTW, я бы посоветовал вам сэкономить время и использовать базу данных; использование таких файлов в веб-приложениях очень подвержено ошибкам.

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

+0

DONE & it works! :) Спасибо, человек, должен тебе пиво – Tuna

Смежные вопросы