【问题标题】:PHP Form Button Doesn't Submit; Page Refresh OnlyPHP 表单按钮未提交;仅页面刷新
【发布时间】:2018-07-08 21:23:19
【问题描述】:

此表单最初使用 reCAPTCHA v1,但我已删除相关代码。 我正在收集用户注册信息以发布到 MySQL 数据库,但提交按钮仅刷新页面并且不会进一步导致有一封确认电子邮件要遵循的消息。这些文件可访问且功能正常,但表单本身和提交不起作用。

我尝试使用 reCAPTCHA v2 作为替代品,并且成功完成,但表单仍然没有提交。我已经删除了它。此外,我已经删除了字段以查看条款和条件的复选框是否存在问题,因为如果未选中,它不会像其他字段那样抛出错误,但这也不起作用。我已经查看了有关 PHP 表单提交问题的先前问题,我发现按钮类型不正确,因为未提交,但它是正确的类型。确认数据库已连接,即调用 'config.php'

表单的PHP代码:

$data['PageName']='SIGN UP FOR YOUR FREE ACCOUNT TODAY';
$data['PageFile']='signup';
$data['PageTitle'] = 'Sign Up - GPW'; 

include('../config.php');
require_once('recaptchalib.php');

// Get a key from https://www.google.com/recaptcha/admin/create
$publickey = "6Ld3c-YSAAAAAIIdQocSje_bq1a7Sti3QymRM5hw";
$privatekey = "6Ld3c-YSAAAAAJqrQBNAR_Qb40Mh4BveQ_q8bjv0";

# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;

if($_SESSION['login']){
    header("Location:{$data['Host']}/members/index.php");
    echo('Logged In');
    exit;
}
if($post['action']=='go')optimize('common');
if($post['send']){
    if(!$post['newuser']){
        $data['Error']='Your username can not be empty.';
    }elseif(verify_username($post['newuser'])){
        $data['Error']='For your username you can use only next letters [A..Z, a..z, 0..9].';
    }elseif(!$post['newpass']){
        $data['Error']='Your password can not be empty.';
    }elseif(strlen($post['newpass'])<$data['PassLen']){
        $data['Error']="Your password must be at least {$data['PassLen']} characters long.";
    }elseif($post['newpass']!=$post['cfmpass']){
        $data['Error']='Your password and confirm should be not different.';
    }elseif($post['newuser']==$post['newpass']){
        $data['Error']='Your password can not be same as your username.';
    }elseif(!$post['newques']){
        $data['Error']='Please enter a valid security question.';
    }elseif(!$post['newansw']){
        $data['Error']='Please enter a valid security answer.';
    }elseif(!$post['newmail']||verify_email($post['newmail'])){
        $data['Error']='Please enter your valid e-mail address.';
   }elseif($data['UseExtRegForm']&&!$post['newfname']){
        $data['Error']='Please enter your first name.';
   }elseif($data['UseExtRegForm']&&!$post['newlname']){
        $data['Error']='Please enter your last name.';
   }elseif($data['UseExtRegForm']&&!$post['newaddress']){
        $data['Error']='Please enter your address.';
   }elseif($data['UseExtRegForm']&&!$post['newcity']){
        $data['Error']='Please enter your city.';
   }elseif($data['UseExtRegForm']&&!$post['newcountry']){
        $data['Error']='Please enter your country.';
   }elseif($data['UseExtRegForm']&&!$post['newzip']){
      $data['Error']='Please enter your postal code.';
   }elseif($data['UseExtRegForm']&&!$post['newphone']){
      $data['Error']='Please enter your telephone number.';
    }elseif($post['terms']!='on'){
        $data['Error']='Please read our Terms and Conditions before signup.';
    }elseif(!is_user_available($post['newuser'])){
        $data['Error']='Sorry but this username already taken.';
    }elseif(!is_mail_available($post['newmail'])){
        $data['Error']='Sorry but this e-mail address already taken.';
    }else{
        if (isset($_POST["recaptcha_response_field"])) {
            $resp = recaptcha_check_answer($privatekey,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
            //print_r($_SERVER["REMOTE_ADDR"]);

                if ($resp->is_valid) { 
                    create_confirmation(
                        $post['newuser'],
                        $post['newpass'],
                        $post['newques'],
                        $post['newansw'],
                        $post['newmail'],
                        $post['newfname'],
                        $post['newlname'],
                        $post['newcompany'],
                        $post['newregnum'],
                        $post['newdrvnum'],
                        $post['newaddress'],
                        $post['newcity'],
                        $post['newcountry'],
                        $post['newstate'],
                        $post['newzip'],
                        $post['newphone'],
                        $post['newfax'],
                        get_member_id($_SESSION['sponsor'])
                    );
                    unset($_SESSION['turing']);
                    $data['PostSent']=true;
                }
        } else {
            $error = $resp->error;
        }
    }
}else{
    if($data['UseTuringNumber'])$_SESSION['turing']=gencode();
}
display('members');
?>

【问题讨论】:

  • 接下来的问题,请只发布相关代码。整个页面的html一点用处都没有。
  • 我看不到表单打开标签。
  • 见上面的更新。

标签: php html mysql forms


【解决方案1】:
type=submit name=send

缺少引号

type="submit" name="send"

【讨论】:

  • 你能清除所有的空白并限制你的表单的 html 吗?
  • 我已将 HTML 限制为提交按钮。让我知道我是否应该留下数据输入的示例字段,但它们都是一样的。
  • 无法查看表单的开始和结束位置。正如他们上面所说,您的
    标签在哪里?
  • 见上面的更新。我不小心把它取下来了。上面的完整 HTML 代码,但删除了多余的条目字段。
  • 您在哪里打开
    并通过 POST 方法调用 PHP 文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
  • 2019-02-09
  • 2014-12-09
  • 1970-01-01
相关资源
最近更新 更多