PHP在某些目录中运行,但在其他目录中不运行

时间:2019-08-12 04:11:42

标签: php html .htaccess web-hosting

我有一些带有联系表单的简单HTML网站,可以通过PHP发送电子邮件。它们都很好,没有任何问题。我正在尝试使用相同的联系表单PHP脚本构建另一个网站。但是,当用户提交表单时,他们没有收到成功消息,而是得到了“内部服务器错误”消息。 PHP脚本是相同的(验证码除外)。 HTML是相同的(除了验证码键)和某些CSS样式。

下面是HTML:

const dotenv = require('dotenv');

/* Specify path to .env file */
dotenv.config({ path: 'src' });

下面是scripts / contact.php文件中的PHP代码:

    <form action="scripts/contact.php" method="post" target="resultMsg" style="width:300px; margin:auto;">
        <input class="formInput" type="text" name="name" id="name" placeholder="Name"/>
        <br/><br/>
        <input class="formInput" type="text" name="email" id="email" placeholder="Email"/>
        <br/><br/>
        <textarea class="formInput" name="message" id="message" placeholder="Message"></textarea>
        <br/><br/>
        <div style="margin:auto;width:fit-content">
            <div class="g-recaptcha" data-sitekey="xxxxxxxxxxxxxxxx"></div>
        </div>
        <br/><br/>
        <input class="send" type="submit" value="Send"/>
    </form>

    <br /><iframe name="resultMsg" id="resultMsg" scrolling="no" style="border:0; height:30px; width:100%"></iframe>

上周我对此有疑问,但是托管公司在htaccess文件中添加了<?php if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo("<p style='color:white; width:100%; text-align:center;'>Error: Please check the captcha box.</p>"); exit; } $secretKey = "xxxxxxxxxxxxxxxxxxxxxxxx"; $ip = $_SERVER['REMOTE_ADDR']; $url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secretKey) . '&response=' . urlencode($captcha); $response = file_get_contents($url); $responseKeys = json_decode($response,true); if($responseKeys["success"]) { $myemail = "myemail@ymail.com"; $subject = "Contact Form Submission"; $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $sendMessage = "CONTACT FORM SUBMISSION NAME: $name EMAIL ADDRESS: $email MESSAGE: $message"; mail($myemail, $subject, $sendMessage); echo("<p style='color:white; width:100%; text-align:center;'>Thank you for your email!</p>"); } else { echo("<p style='color:white; width:100%; text-align:center;'>Error: message not sent, please refresh the browser.</p>"); } exit(); ?> 并对其进行了修复。由于某种原因,他们还在网站目录的整个行中添加了额外的htaccess文件。然后,我想我可能不小心删除或更改了某些htaccess文件,但现在它不再起作用。哪个htaccess文件中需要什么才能正常工作?任何想法为什么它不再起作用了?谢谢

1 个答案:

答案 0 :(得分:0)

事实证明,问题很简单,就像PHP脚本的文件权限不正确一样。将脚本的权限更改为644可解决此问题,而不再出现“内部服务器错误”。