PHP电子邮件脚本只是打开PHP文件

时间:2012-12-30 18:10:05

标签: php html linux forms apache

我在Linux服务器上托管一个网站,运行Ubuntu Server 11.04(32位)。 Web服务器是Apache。该网站上的一个页面有一个表单,其中提交链接到PHP电子邮件脚本。表格代码:

<form id="contact_form" method="post" action="email.php">
<table>
<tr>
<td>Name:</td>
<td><input type="text" id="name" class="textbox"/></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" id="email" class="textbox"/></td>
</tr>
</table>
<div id="message_box_header">Describe your problem:<br /></div>
<textarea class="textbox"></textarea><br />
<input type="submit" value="Submit!" id="submit" />
</form>

Linux服务器拥有最新版本的sendmail。我根本不懂PHP并且预先编写了脚本,所以我想我的问题可能就在那里。为了隐私,我用虚拟网站替换了网站/电子邮件。这是email.php:

<?php
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;

  mail( "myemail@gmail.com", "Form Data",
    $message, "From: $email" );
  header( "Location: http://mywebsite.com" );
?>

当我点击实际网站上的提交按钮时,它只会下载email.php。

3 个答案:

答案 0 :(得分:2)

确保PHP实际安装在您的服务器上(这应该是您第一件事,遵循神秘的说明)。

如果安装了,并且您仍然遇到问题,请将其添加到您的apache配置(.htaccess):

AddType application/x-httpd-php .php 

答案 1 :(得分:0)

您应该设置输入字段的name属性,而不是id。否则,不会发送任何数据。如果正在下载文件,则这是Web服务器的配置错误,而不是脚本。

答案 2 :(得分:0)

运行此命令更新您的包管理器:

apt-get update

并运行此命令安装mod_fcgidphp5-cgi

apt-get install libapache2-mod-fcgid php5-cgi
安装程序将启用

mod_fcgid,否则运行此命令以启用它:

a2enmod fcgid

现在您可以将这些预先配置的行添加到您的apache配置文件中:

AddHandler fcgid-script .php
FcgidIOTimeout 3600
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 
FcgidMaxRequestLen 52428800
FcgidConnectTimeout 3600
FcgidMaxProcesses 12
FcgidOutputBufferSize 64
FcgidProcessLifeTime 3600
FcgidMaxRequestsPerProcess 500
FcgidMinProcessesPerClass 0
FcgidWrapper /usr/bin/php-cgi .php

你的apache配置文件可以在/etc/apache2/apache2.conf

获得

有关快速cgi处理程序的更多信息,请参阅:http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html