Php 自定义404不';我不能正常工作

Php 自定义404不';我不能正常工作,php,.htaccess,http-status-code-404,Php,.htaccess,Http Status Code 404,我正在我的网站上使用此代码(它包含在404.php中): 如果我进入ahornblume.ch/404.php一切正常,我可以使用表单发送电子邮件。 但是,如果我转到ahornblume.ch/something联系人表单不起作用。如果您包括联系人表单,您可能需要先检查链接!这可能只是一个错误的链接。避免使用action=“../php/contact_form.php”之类的内容。对于include/require/require_once,我总是选择$root=realpath($_SERV

我正在我的网站上使用此代码(它包含在404.php中):

如果我进入
ahornblume.ch/404.php
一切正常,我可以使用表单发送电子邮件。
但是,如果我转到
ahornblume.ch/something
联系人表单不起作用。

如果您包括联系人表单,您可能需要先检查链接!这可能只是一个错误的链接。避免使用action=“../php/contact_form.php”之类的内容。对于include/require/require_once,我总是选择
$root=realpath($_SERVER[“DOCUMENT_root]”);只需要一次($root./path/to/file/myfile.php”)
因此,如果联系人表单正在显示,但当您单击submit时什么也没有发生,那么原因很可能是服务器找不到“action”php文件。您有两个选择:

1:您的表单没有指定操作,因此它将提交到用于显示表单的URL,而不是

ahornblume.ch/404.php
的情况下,它将提交到404.php,并将正常工作

ahornblume.ch/something
的情况下,它将导致404错误,只显示404.php页面,但表单post将被丢弃


要修复此问题,请使用绝对路径指定操作。php

是否使用javascript/ajax/jquery提交表单?如果您要发送这样的post请求,请检查.js文件中的链接或任何您有代码的地方,并使用post请求的绝对路径。

这听起来不错,但如果我在表单中添加操作,它仍然不起作用。。。不知道why@Lorenz在您添加操作后,它现在似乎在您的站点上工作?我正在编辑include(“文件”),它使用的是404.php文件的缓存版本。。。在我注意到一切都起作用之后;)谢谢其他人说这是因为我缺少一个动作属性。你能检查一下上面的代码并告诉我要更改什么吗?
<?php 
if (isset($_POST["op"]) && ($_POST["op"]=="send")) { 

/******** START OF CONFIG SECTION *******/
  $sendto  = "myemail@gmail.com";
  $subject = "Website Contact Enquiry";

/******** END OF CONFIG SECTION *******/



  $message = $HTTP_POST_VARS['message']; 
  $headers = "From: $email\n";
  $headers . "MIME-Version: 1.0\n"
           . "Content-Transfer-Encoding: 7bit\n"
           . "Content-type: text/html;  charset = \"iso-8859-1\";\n\n";

$request = $_SERVER["REQUEST_URI"];
$self = $_SERVER["PHP_SELF"];
// Build the email body text
  $emailcontent = " 
----------------------------------------------------------------------------- 
   WEBSITE CONTACT ENQUIRY
----------------------------------------------------------------------------- 
$request
$self

$message


"; 
 if (!trim($message)) { 
  echo "<p>Please go back and type a Message</p><p><a href='javascript: history.go(-1)'>Click here to go back</a>.</p>"; 
}  


// Sends out the email or will output the error message 
 elseif (mail($sendto, $subject, $emailcontent, $headers)) { 
  echo "<br><br><p><b>Thank You </b></p><p>We will be in touch as soon as possible.</p>"; 

} 
} 
else { 
?>
<form action="http://www.ahornblume.ch/404.php" method="post">
<INPUT NAME="op" TYPE="hidden" VALUE="send"> 
<textarea name="message" cols="25" rows="4" placeholder="Wenn Sie eine Antwort wünschen,  vergessen Sie bitte ihre email Adresse nicht."></textarea><br>
<input name="submit" type="submit" value="Send Message"> 
</form> 
ErrorDocument 404 /404.php