2014-09-06 44 views
-2

我有一個PHP腳本,當用戶提交一個更改密碼錶格時執行。它運行良好,並且在使用fgets()fgetc()方法(這需要大量代碼)時,我已成功寫入文件。但我從來不想這樣做。我希望能夠從我的pass.php文件中調用$_SESSION["password"],並使用fwrite()方法將其替換爲$newpass。目前的代碼根本不能替代。我的PHP腳本。試圖用fwrite()寫一個包含PHP的文件的新密碼

<?php 
$oldpass = $_SESSION["password"] ; 
$newpass = $_POST["newpass"] ; 
$session = fopen("pass.php" , "r+") or die("Could not open file") ; 

$session ; 
$content = file_get_contents($session) ; 
$content = str_replace($oldpass , $newpass , $content) ; 
fwrite($session , $content) ; 
fclose($session) ; 
?> 

我的外部PHP文件pass.php

<?php 
session_start() ; 
$_SESSION["username"] = "imauser" ; 
$_SESSION["password"] = "imapass" ; 
?> 
+1

這是爲什麼尖叫危險? – 2014-09-06 16:02:22

+0

@Fred -ii-沒有任何人在文件中使用有害數據。該文件只包含提到的代碼。另外我有一大堆驗證腳本來清理提交的表單。 – Xavier 2014-09-06 16:04:23

+0

我認爲有一些基本的東西我錯過了將文件調入字符串或者可能有更好的方法,然後使用'str_replace()'方法。 – Xavier 2014-09-06 16:14:39

回答

0

錯誤發生在file_get_contents($session)file_get_contents預計文件名不是資源。

PHP manual

+0

謝謝!!!!!這工作! – Xavier 2014-09-06 16:26:25

+0

之前檢查過手冊。這是一個很好的資源。謝謝。 – Xavier 2014-09-06 16:27:17

+0

雖然有一個問題...我在封閉文件的最後得到一個額外的'?>'。難道是因爲我的'PHP'嵌套在'

'內?看上去和下來的語法錯誤,找不到任何。 – Xavier 2014-09-06 16:41:46