2011-12-15 111 views
0

我正在處理一個表單,該表單將允許用戶向網站提交文本,並將其保存爲稍後可以檢索的服務器上的文件。我使用的格式如下: PHP創建新文件問題k

<p> 
     <label for="Name">First Name</label> 
     <input type="text" name="Name" id="Name" /> 
    </p> 
    <p> 
     <label for="Last Name">Last Name</label> 
     <input type="text" name="LastName" id="LastName" /> 
    </p> 
    <p> 
     <label for="GuideName">Guide Name</label> 
     <input type="text" name="GuideName" id="GuideName" /> 
    </p> 
    <p>Copy and paste your study guide into this box.</p> 
    <p> 
     <textarea name="Guide" id="Guide" cols="100" rows="30"></textarea> 
    </p> 
    <p>Submit 
     <input type="submit" name="Submit" id="Submit" value="Submit" /> 
     </p> 
    </form> 

和下面的PHP代碼:

<?php 
if (isset($_POST['Submit'])) 
{ 
    $firstName = $_POST['Name']; 
    $lastName = $_POST['LastName']; 
    $guideName = $_POST['GuideName']; 
    $guide = $_POST['Guide']; 
    $finalGuideName = $guideName."(".$firstName." ".$lastName.").txt"; 

    $fh = fopen($finalGuideName, 'w') or die("can't open file"); 
    fwrite($fh, $guide); 
    fclose($fh); 
} 
?> 

我已經在過去使用的代碼(至少我認爲這是這個代碼)取用戶的信息並使用它在服務器上創建一個文本文件。但是,當我查看錶單是否正常工作時,服務器上沒有顯示任何內容。我究竟做錯了什麼?提前致謝。

感謝您的幫助,每個人,當我試圖解決它,它開始再次工作。我完全不知道爲什麼,我敢肯定我沒有改變任何事情,但再次感謝您的幫助。

+0

發生了什麼或沒有發生什麼?條件是否已經進入? – 2011-12-15 16:20:53

回答

0

您需要確保您寫入的目錄允許寫入權限(更改爲0755或0644 *)。另外,我不建議寫信給網站的ROOT,建立一個文件夾並更改這個權限。這不是一個好主意,讓任何人寫入根,哈哈

*感謝勞倫斯指出我的錯誤

+1

0777是安全風險,0755或0644就足夠了 – 2011-12-15 16:24:28

+0

這是事實。我會改變我的帖子,以防萬一OP沒有閱讀評論haha – 2011-12-15 16:27:20

1

你透過按鈕名稱爲Submit2,所以用這個代碼

if (isset($_POST['Submit2'])) 
0

有你嘗試使用$ _REQUEST而不是_POST或_GET?

發現furher信息我想你也應該把一個其他對您

if(isset($_POST['Submit'])) { 

只是爲了確保達到聲明。 作爲最後的手段,檢查你的路徑和他們的權限,比如從0777開始,如果它的工作正確到755或644(這取決於擁有目錄的用戶對apache用戶的配置,他們應該全部在同一組中,但這是另一個故事)