【问题标题】:Getting 404/405 error on HTML / PHP contact form (linking issue?)在 HTML / PHP 联系表单上出现 404/405 错误(链接问题?)
【发布时间】:2015-08-31 12:14:51
【问题描述】:

表单位于fictiveapp.com/ 这是第二个包含姓名、电子邮件和消息的表单。

我遇到了两个问题。

  1. 405 错误 - 我通过添加 trailing slash“解决”了这个问题

  2. 404 错误 - 添加斜杠以解决上一个问题时,我得到了 404 错误。我对 PHP 很陌生,不确定我应该如何链接文件。我认为这与链接网站上的所有其他 html 文件一样,显然不是。

我将所有 index.html、html_form_send.php 和 contactthanks.php 都放在同一个顶级(第一)级目录中,以及第二级 CSS、JS、Font 和 Img 文件夹

所有相关代码如下

HTML

    <div class="8u 12u$(small)">
<form name="htmlform" method="post" action="html_form_send.php">
<div class="row uniform 50%">
<div class="6u 12u$(xsmall)"><input type="text" name="name" id="name" placeholder="Name" /></div>
<div class="6u$ 12u$(xsmall)"><input type="email" name="email" id="email" placeholder="Email" /></div>
<div class="12u$"><textarea name="message" id="message" placeholder="Message" rows="4"></textarea></div>
</div>
<ul class="actions">
<li><input type="submit" value="Send Message" /></li>
</ul>
</div>
</form>

来自 html_form_send.php 的 PHP

<?php

$EmailFrom = "Michael.kalmykov.88@gmail.com";
$EmailTo = "Michael@kovcreation.com";
$Subject = "from fictive site";
$Name = Trim(stripslashes($_POST['Name']));
$Email = Trim(stripslashes($_POST['Email']));
$Message = Trim(stripslashes($_POST['Message']));

// validation
$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php/\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

来自contactthanks.php的PHP

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">

<head>
    <title>work already!</title>

    <link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>

    <div id="page-wrap">


        <br /><br />


    <h1>Your message has been sent!</h1><br />

    <p><a href="index.html">Back to Site</a></p>

</div>

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-68528-29";
urchinTracker();
</script>

我确信它是愚蠢而简单的,但我已经搜索了几个小时的论坛,似乎找不到问题。

感谢您对此的任何帮助。

【问题讨论】:

  • 尝试使用 php 重定向而不是 html

标签: php html forms contact


【解决方案1】:

重定向时,标头优于 html 元标记。请记住,只有在没有打印任何内容时才能使用页眉。

这里如何使用标题:

header("位置:./yourfile.html");

另外,创建正确文件路径的一些技巧

要重定向到同一文件夹中的文件,请使用 "./filename.php"

要重定向到外部目录中的文件,您可以使用“../”退出 1 个目录。例如,如果我的文件在“/hello/file.php”中并且我想重定向到“/index.php”,我的路径将是“../index.php”

【讨论】:

  • 感谢您提供的信息。我知道如何“调用”我需要的 php 文件的唯一方法是通过 &lt;form... action="/html_form_send.php/"&gt; 我在哪里放置 $header('Location: './html_form_send.php);?
  • 标头用于 html_form_send.php 而不是元 http-equiv 重定向。表单看起来是正确的...使用:
    ...此外,当您在 php 中并打开类似 print 的内容时,您可以使用里面的 '不使用 \" 的打印,例如打印 "Hello 'user'" 而不是打印 "Hello \"user\""。请记住,标题是一个函数,而不是您在评论中发布的变量。它应该是 header("Location: ./contactthanks.php")
猜你喜欢
  • 2018-08-28
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
相关资源
最近更新 更多