PHP脚本不工作。接收错误404。Web服务器确实支持PHP

PHP脚本不工作。接收错误404。Web服务器确实支持PHP,php,html,forms,Php,Html,Forms,我有以下表单和php脚本: <form method="post" action="index.php"> <h1>Contact</h1> <label>Name</label> <input name="name" placeholder="Type Here"> <label>Email</label> <input name="email"

我有以下表单和php脚本:

<form method="post" action="index.php">
    <h1>Contact</h1> 

    <label>Name</label>
    <input name="name" placeholder="Type Here">

    <label>Email</label>
    <input name="email" type="email" placeholder="Type Here">

    <label>Message</label>
    <textarea name="message" placeholder="Type Here"></textarea>

    <input id="submit" class="button" name="submit" type="submit" value="Submit">
</form>

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'SJW&T Contact Form'; 
    $to = 'someone@example.com'; 
    $subject = 'Hello';
    $human = $_POST['human'];

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit']) {              
        if (mail ($to, $subject, $body, $from)) { 
            echo '<p>Your message has been sent!</p>';
        } else { 
            echo '<p>Something went wrong, go back and try again!</p>';
        } 
    }
?>

但是我的网络主机似乎返回了一个错误404。我在年尝试了这个建议,这几乎是重复的,但没有奏效。有人看到语法错误吗?我的网络主机是000webhost.com。它没有给我实际的404消息,但它带我去的URL是error404.000webhost.com

当您没有操作页面时,可能会发生这种情况:

<form method="post" action="index.php">
您将操作页面设置为index.php,因此如果该文件不存在或位于其他位置, 您可能会遇到404错误或找不到对象

确保您有index.php,并且它与其他文件存在于同一目录中

如果要对页面本身执行操作,请执行以下操作:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

确保表单操作名与文件名相同。例如,formaction-forms.php。确保文件夹或文件名也是-forms.php尝试以下操作:

$body=From:$name\n电子邮件:$email\n邮件:\n$Message;
我认为这将解决您的问题。

语法错误不会导致404错误。一定是出了什么问题。也许你可以试着用PHPSELF作为动作,@ByronS,那么你看到表单了吗?如果是,请将文件名改为index.php,而不是index.html。这样,您的操作是有效的,php将被处理。顺便说一句,您应该将赋值移到if语句中,并使用isset或empty来消除警告。在@jeroen的注释上展开,如果文件具有html扩展名,web服务器将不会解析任何php,因为它将页面解释为html文件。将扩展名更改为php将告诉web服务器嘿,我是一个php文件。将两者之间的任何内容解析为PHP。下面的教程要求我将PHP脚本直接放在表单下面,以便它的输出显示在表单下面。我还需要制作另一个文件吗?当然,您可以将操作页面设置为index.php,如果您希望将操作设置为页面本身,则可以执行以下操作: