2012-12-17 29 views
0

PHPPHP,將字符串保存爲文本。 (的fputs)

<?php 
if ($changefile) { 
    $savedEdit = stripslashes($_POST['filetest']); 
    $filetochange = "../dashboard/list.ini"; 
    $filetochangeOpen = fopen($filetochange,"w") or die ("Error editing."); 
    fputs($filetochangeOpen,$savedEdit); 
    fclose($filetochangeOpen) or die ("Error Closing File!"); 
} 
?> 

HTML表單

<form method=post action="mmtst.php"> 
    <textarea rows="40" cols="60" name="filetest"> 
    <? 
     // Implode CSS 
     $filetochange = "../dashboard/list.ini"; 
     print (implode("",file($filetochange))); 
    ?> 
    </textarea><br/><br/> 
    <input type="submit" value="Save Changes" name="changefile"> 
</form> 

在這裏我有一個顯示在文本框中INI文件的頁面。應該發生的事情是,當我點擊提交按鈕時,原始文件被打開,並且fputs使用txtbox中顯示的任何內容寫入原始文件。 (原始文件設置爲權限777)。然而,當點擊提交按鈕時沒有任何反應,我不知道我在做什麼錯誤,任何建議都會很棒。

+1

所有寫入相關的代碼是在一個分支:'如果($ changefile)',嘗試傾銷,因爲通過對事物的外觀:它可能是一個不確定的變量,在這種情況下,該文件從不打開,更不用說寫入了。同時結帳[file_put_contents](http://www.php.net/file_put_contents),用'get'替換'put'以獲得它的對應內容。它不需要打開和關閉文件的額外行 –

回答

1

這個問題很簡單,你有register_globals禁用,你要使用它,這一套ting允許PHP根據從GET和POST數據收到的參數自動定義變量,但它被認爲是不安全並且已經被棄用

要訪問後使用的$_POST變量傳遞的值,爲獲得使用$_GET

if(isset($_POST["changefile"])) { 

如果你只是想檢查後形式提交你可以!empty($_POST),離開提交按鈕沒有名稱:

<?php //... 
if(!empty($_POST)) { 
//... 
?> 
<input type="submit" value="Save Changes"> 
1

您正在檢查一個

if ($changefile) { 

您需要檢查的$ _ POST版本的變量,你對「filetest」變量做同樣的,所以你應該例如...

if (isset($_POST["changefile"])) { 

否則病情從未返回true,該代碼塊沒有得到執行

相關問題