如何使用php post支持设置我的静态appharbor?

时间:2013-07-19 22:33:30

标签: php forms email appharbor

我在appharbor上创建了一个简单的基于html的网站,并希望添加一个访问者可以完成的表单,然后使用php通过电子邮件发送信息。

我收集了一些用于发送邮件的php脚本,并且还创建了表单,当我在我的计算机上测试页面时(没有安装php)我可以输入信息并按“发送”然后我转移到php页面,我觉得似乎是正确的。

问题是当我在appharbor部署它时,我可以在表单中输入信息,但是当我按下按钮发送邮件时,我得到404错误,说明页面丢失或者我得到的信息是HTML动词不受支持。

我是否需要创建一些web.config文件,即使它是一个静态的HTML网站? 我是否需要在我的网站或appharbor上激活某些内容?

---更新----

<form class="form-horizontal" action="test.php" method="POST">
<fieldset>
<div id="legend">
<legend class="">Request</legend>
</div>
<div class="control-group">
<label class="control-label" for="email">Email</label>
<div class="controls">
<input type="text" id="email" email="email" placeholder="" class="input-xlarge">                    
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">Your name</label>
<div class="controls">
<input type="text" id="name" name="name" placeholder="" class="input-xlarge">
</div>
</div>
<div class="control-group">
<div class="controls">
<button class="btn btn-success">Skicka</button>
</div>
</div>
</fieldset>
</form> 

php脚本文件

<?php
if(isset($_REQUEST['email'])) {

$email_to = "something@mail.ma";
$email_subject = "Message from homepage";

function died($error) {
  echo "Error occured please correct. ";
  echo $error."<br /><br />";
  die();
}

if(!isset($_REQUEST['name']) ||
   !isset($_REQUEST['email'])) {
  died('Something was wrong, please correct.');       
}

$name = $_REQUEST['name'];
$email = $_REQUEST['email'];

$email_message = "Message.\n\n";

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

$email_message .= "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email)."\n";

$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>

Thanks for the request

<?php
}
?>

我删除了一些表单以及我通常使用的脚本中的一些错误测试。

0 个答案:

没有答案