2014-09-29 141 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