PHP代码未在表单提交上执行

时间:2017-01-05 18:39:58

标签: php html apache google-cloud-platform

问题:

我创建了一个简单的Web服务器,其中包含由google云服务托管的apache,我很难弄清楚如何在提交表单时让我的PHP代码执行。

目的:

我希望用户能够将某些信息输入表单并将其发送到服务器。从那里,服务器将运行一些PHP代码并将信息写入同一目录中的文件。

现在如何运作:

当我提交表单而不是执行操作时,它只是在浏览器中将文件作为文本文档打开。

Redirected after form submission

来自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

1 个答案:

答案 0 :(得分:0)

我确实有这个问题。我使phpinfo()工作,但表单提交仅以纯文本形式提供了PHP,而不是执行。 Funk 40 Niner有一个正确的主意。从file:///DocumentRoot/Main.html(其中DocumentRoot是您的计算机上的文件),PHP无法执行。但是从localhost / Main.html可以。它是完全相同的文件,但是浏览器对待表单的方式有所不同。