PHP 表单按钮不提交;仅页面刷新

标签 php html mysql forms

此表单最初使用 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');
?>

最佳答案

type=submit name=send

缺少引号

type="submit" name="send"

关于PHP 表单按钮不提交;仅页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51236093/

相关文章:

用于存储产品、颜色、尺寸和库存的 MySQL 数据库

PHP - while 循环中的 mysqli_fetch_assoc 不显示任何内容

php - 将国家字符转换为 PHP 中的拉丁字符

php - CORS 预检请求未通过访问控制检查 : It does not have HTTP ok status

javascript - 使用存储的颜色在 ng-repeat 中设置动态背景颜色

PHP:刷新我的代码

php - Mysql限制

javascript - 如何在特定的 jquery 验证结构中验证 radio

javascript - Chrome : JS loads before HTML

mysql - mySQL 动态列标题出错