【问题标题】:All form values are empty when used inside a subdirectory在子目录中使用时,所有表单值都是空的
【发布时间】:2015-03-12 19:40:22
【问题描述】:

我在为客户制作的网站中有一个联系我们页面,我从我的主网站的子目录托管该页面。当有人从“联系我们”页面发送消息时,它会发送到网站所有者的电子邮件,但值为空。但是当我从根目录测试相同的两个页面时,它们运行良好。

以下是代码。

HTML 页面

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
<div class="row">
    <div class="col-sm-5">
        <div class="form-group">
            <input name="fname" type="text" class="form-control" required="required" placeholder="First Name">
        </div>
        <div class="form-group">
            <input name="lname" type="text" class="form-control" required="required" placeholder="Last Name">
        </div>
        <div class="form-group">
            <input name="email" type="text" class="form-control" required="required" placeholder="Email address">
        </div>
        <div class="form-group">
            <button type="submit" class="btn btn-primary btn-lg">Send Message</button>
        </div>
    </div>
    <div class="col-sm-7">
        <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Message"></textarea>
    </div>
</div>
</form>

PHP 文件

<?php
header('Content-type: application/json');
$status = array(
    'type'=>'success',
    'message'=>'Email sent!'
);

$fname= @trim(stripslashes($_POST['fname'])); 
$lname = @trim(stripslashes($_POST['lname'])); 
$name = $fname.' '.$lname;
$email = @trim(stripslashes($_POST['email'])); 
$message = @trim(stripslashes($_POST['message'])); 

$email_from = $email;
$email_to = 'my.email@gmail.com';

$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Message: ' . $message;

$success = @mail($email_to, 'An email from website\'s form', $body, 'From: <'.$email_from.'>');

echo json_encode($status);
die;

当我通过 CPanel 的文件管理器将这两个文件放在根目录 (public_html) 中时,它们工作正常,但如果我将它们放在子文件夹中,则值是空的。

以下是示例。

示例 1,从子文件夹发送时




示例 2,从主目录发送时

【问题讨论】:

  • 是的,兄弟,@Dagon 你这是什么意思?
  • 检查你的错误日志文件

标签: php html ajax forms


【解决方案1】:

检查您的文件“main.js”并替换:

$.post($(this).attr(‘action’), function(data) {

$.post($(this).attr('action'), $('.contact-form').serialize(), function(data) {

完整的“main.js”是:

jQuery(function($) {

    //Ajax contact
    var form = $('.contact-form');
        form.submit(function () {
            $this = $(this);
            $.post($(this).attr('action'), $('.contact-form').serialize(), function(data) {
            $this.prev().text(data.message).fadeIn().delay(3000).fadeOut();
        },'json');
        return false;
    });

    //Goto Top
    $('.gototop').click(function(event) {
         event.preventDefault();
         $('html, body').animate({
             scrollTop: $("body").offset().top
         }, 500);
    });
    //End goto top

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多