问题:
我创建了一个简单的Web服务器,其中包含由google云服务托管的apache,我很难弄清楚如何在提交表单时让我的PHP代码执行。
目的:
我希望用户能够将某些信息输入表单并将其发送到服务器。从那里,服务器将运行一些PHP代码并将信息写入同一目录中的文件。
现在如何运作:
当我提交表单而不是执行操作时,它只是在浏览器中将文件作为文本文档打开。
来自Main.html的表单
<form action="processForm.php" method="POST">
Spotify URI: <input type="text" name="uri">
<br/>
Description: <input type="text" name="description">
<br/>
<input type="submit">
</form>
processForm.php
<?php
if(isset($_POST['uri']) && isset($_POST['description'])) {
$data = $_POST['uri'] . '-' . $_POST['description'] . "\n";
$ret = file_put_contents('data.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
}
else {
echo "$ret bytes written to file";
}
}
else {
die('no post data to process');
}
我不相信PHP安装不正确是一个问题。当我运行php -v
时,它会回显
PHP 5.6.29-0+deb8u1 (cli) (built: Dec 13 2016 16:02:08)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
答案 0 :(得分:0)
我确实有这个问题。我使phpinfo()工作,但表单提交仅以纯文本形式提供了PHP,而不是执行。 Funk 40 Niner有一个正确的主意。从file:///DocumentRoot/Main.html(其中DocumentRoot是您的计算机上的文件),PHP无法执行。但是从localhost / Main.html可以。它是完全相同的文件,但是浏览器对待表单的方式有所不同。