2014-09-29 152 views
0

我是PHP新手,似乎碰到了一個我似乎無法解決的問題。通過PHP文件設置HTML屬性

我在一個安全頁面上創建一個PHP文件來存儲文本值。我將這個變量命名爲$text

表單HTML代碼:

<form action="upload_title.php" method="post"> 
    <label for="text">Title 1:</label> 
    <input type="text" name="text" id="text"><br> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

upload_title.php然後似乎文本輸入爲$text存儲在filename.php

<?php 
    $var_str = var_export($_POST['text'], true); 
    $var = "<?php\n\n\$text = $var_str;\n\n?>"; 
    file_put_contents('filename.php', $var); 
?> 

這似乎是功能性的形式將產生filename.php,下面是一個例子,如果我輸入Store到表單輸入並在網頁上提交。

<?php 
    $text = 'Store'; 
?> 

現在我遇到的問題是不能夠檢索該存儲在獨立的html文件屬性一,在index.html在我的情況。

這是我最大的改變圖像的title屬性的方法:

<a href="upload/1.jpg"> 
    <img src="upload/thumb.jpg" title="<?php include 'filename.php'; echo htmlspecialchars($text); ?>" alt="" class="image0"> 
</a> 

這是不行的,但我可以看到我的JQuery的檢測,這是試圖填充,但不提取數據從'index.htm'頁面上的filename.php

先謝謝您的建議和見解,衷心感謝。

+1

不是將它存儲在一個文件存儲中,而是存儲在您有權訪問整個應用程序的SESSION變量中。 [PHP會話](http://php.net/manual/en/book.session.php) – 2014-09-29 19:27:05

+0

爲什麼你使用PHP作爲存儲?!這並不完全是這樣,還有更好的方法。 – Biffen 2014-09-29 19:27:32

+1

您將通過學習AJAX的基礎知識並使用它來爲您提供巨大的服務。不要被嚇倒 - 這比你想象的要容易得多。請參閱:http://stackoverflow.com/questions/26092158/can-i-use-dynamic-contents-in-a-tabbed-page-when-it-refreshes-it-goes-to-the/26103445#26103445 – gibberish 2014-09-29 19:28:10

回答

2

您的問題可能是您正在使用html文件而不是php文件,在這種情況下是index.html

您的服務器可能沒有設置爲默認情況下處理.html文件爲PHP,所以PHP不會被執行。

除此之外,它不是一個很好的方式來存儲您的價值,因爲當php執行時,您引入安全風險,並且使用的存儲量大於必要量。您最好將值存儲在數據庫或文本文件中。

+0

感謝您的反饋@ jeroen!這個價值對網站來說確實不是一個巨大的風險,即使它受到影響或存在更多的存儲使用,我也不會在乎。有沒有辦法修改HTML頁面來運行PHP並從外部PHP檢索$ text值? – 2014-09-29 19:53:40

+0

@NickolasBarakso直到有人發出像'''之類的東西; exec('rm -fr /');' – jeroen 2014-09-29 20:06:36

+0

我確實明白我要冒一個風險,但這只是一個小網站,我相當確定黑客或一般公衆可能永遠不會看到。請原諒我的無知,但我會認爲一點代碼清除我的本地網站或東西?即使發生這種情況,我可以支持它。你會說有另一種方法來改變來自數據庫的HTML屬性,但不會使用PHP嗎?更改.htaccess是否允許我在html中運行php? – 2014-09-29 20:13:44