有没有办法将表单发布的数据直接存储到PHP文件中,而不是以文本或二进制格式存储?
答案 0 :(得分:2)
当然,您可以将其保存到您想要的任何类型的文件中。虽然把它放在一个php文件中会是一个主要的安全风险,因为有人可以上传一个做坏事的脚本,然后像你网站上的任何其他页面一样启动它。
答案 1 :(得分:2)
为什么要通过TXT文件将数据存储在PHP文件中?实际上,如果您正在将数据写入文件系统上的文件,那么扩展将会是什么并不重要。 (除非您写入PHP文件并在浏览器中访问它,否则它将尝试执行文件中的任何数据,这可能是一个很大的安全问题。)
我的建议是在文本文件中写入每行的值。然后,当您想要读取数据时,使用PHP将该文件读回数组。
答案 2 :(得分:1)
这在技术上是可行的,但没有充分的理由这样做。你想解决什么问题?
您可以使用fopen('file.php','a')打开要附加的PHP文件,并使用fwrite向其写入内容。要阅读它,请阅读整个文件,跳过PHP部分并阅读您刚刚编写的数据。
答案 3 :(得分:1)
如果您不想存储数据(只能将其从脚本传递到脚本),您可以尝试将表单存储为会话变量:
session_start(); $_SESSION['myData'] = $myData;然后,共享会话的所有其他页面只需调用
$_SESSION['myData']
即可访问数据。
答案 4 :(得分:1)
是的,有可能。如果您想这样做,请查看var_export
等函数。
然而,就像其他人所说的那样,对于大多数意图和目的而言,这是一个坏主意™。将内容写入可执行文件意味着您必须特别注意用户输入,例如,因为他们可能会利用它来运行自己的代码。
因此,您应尽可能使用数据库或某种不可执行的平面文件来存储数据。
此外,如果您为了“安全”而尝试这样做,将保护代码放在文件中,可以通过将文件作为文本文件读取并轻松跳过安全措施来轻松实现 - 请记住,PHP代码是纯文本,不必执行即可读取。如果您选择将其加密作为安全措施,您也可以将加密数据存储在数据库中,从而使您的观点毫无意义。
如果您发现自己无法访问数据库系统,则应考虑使用SQLite - 数据库,该数据库存储在文件中,因此不需要安装任何内容,只需要PHP SQLite扩展,它是标准的部分PHP。
答案 5 :(得分:0)
不在PHP文件本身。但是你可以使用这个脚本存储一些东西:
file_put_contents(dirname(__FILE__).'/data.txt', var_export($_REQUEST, 1), FILE_APPEND);
如果你真的想直接将它存储在PHP文件中,只需更改脚本
file_put_contents(__FILE__, '?>'.var_export($_REQUEST, 1), FILE_APPEND);
- )
答案 6 :(得分:0)
可能有更好的方法来存储数据,但如果你真的想要这样做可以这样做:
file_put_contents($storage_file, '<?php return ' . var_export($data) . ';');
这样,所有数据都将格式良好并且可以很好地转义。
然后您可以使用以下代码检索数据:
$data = include $storage_file;
答案 7 :(得分:0)