2016-12-26 23 views
0

對於網站,用戶應該能夠輸入標題並在表單中發佈並按下提交按鈕以輸入它們。按下提交按鈕後,表單中的數據將寫入與網頁位於同一文件夾的指定文本文件。寫作工作正常,但正如你可以看到下面,我已經試圖做到這一點,如果用戶點擊提交按鈕沒有兩個領域之一(或任何領域)被填寫在網站將提示他們進入文字和沒有文件寫作發生。文本文件中的數據在表單提交時被刪除點擊

我的問題是,當他們點擊提交併且一個字段沒有填充時,這實際上會影響.txt文件,它們也會變成空白。除非表單中的兩個textarea包含要覆蓋的數據,否則我希望這些文件保留其「舊」文本。例如,如果兩個.txt文件都包含文本,並且我單擊表單上沒有文本的提交,那麼這兩個.txt文件將保留文本而不是覆蓋文本(這是當前發生的情況) 。

這裏的HTML和PHP:

<form action="AdminBlog.php" method="post"> 
    Blog Title:<textarea type="text" name="titleInput"></textarea><br><br> 
    Blog Post:<textarea type="text" name="postInput"></textarea><br><br><br> 
    <input type="submit" value="Submit"/> 
</form> 


<?php 
$titleFile = fopen("Title.txt","w"); 

$blogTitle = null; 

$postFile = fopen("Post.txt","w"); 

$blogPost = null; 


if(!empty($_POST['titleInput']) && !empty($_POST['postInput'])) { 
$blogTitle = $_POST['titleInput']; 
fwrite($titleFile,$blogTitle); 
fclose($titleFile); 

$blogPost = $_POST['postInput']; 
fwrite($postFile,$blogPost); 
fclose($postFile); 
} 

if (empty($_POST['postInput']) || empty($_POST['titleInput'])) { 
echo "Please enter a title and post."; 
} 

?> 

改變這種最後的if語句ELSEIF否則似乎沒有有所作爲。回聲應該是輸出的,但.txt文件仍然被覆蓋而沒有數據(當textarea爲空並且用戶單擊提交時)。

編輯:只是想添加一些東西。我不確定這是否相關,但是否存在文件中的文本,我無法從另一個.php文件讀取文本。我可以從這一個,但是當試圖在另一個.php頁面中獲取.txt文件內容時,我不能這樣做。這也造成我一個單獨的問題,只是想提一下,如果它是有用的。

回答

0

我想你需要嘗試

file_put_contents($file, $person, FILE_APPEND); 

用於寫文件。

第一個參數將是名稱&文件的路徑。

第二個參數將是字符串格式的數據。

如果要在現有文件中添加內容,則第三個參數將爲FILE_APPEND。

如果您不會使用第3個參數,那麼它會一直替換文件的內容。

Source

+0

如前所述,我希望只有在textarea字段中有數據時才能替換內容。我不希望它添加。 – 4u53r

+0

我試過了,這沒有什麼區別。 – 4u53r

0

有一個>丟失在HTML <textarea type="text" name="postInput"後。 試着把它放在上面。

+0

剛纔我複製並粘貼了代碼,而不是在我的實際腳本中。] – 4u53r