PHP:如何在表单注册后显示表单错误消息

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (111)

我想创建一个类,它可以从表单中获取一些值并插入一个新的MySQL表行。

如果错误地提交了值,则会设置一个错误变量并显示在页面上。

这是我尝试制作课程:

<?php 
class Register
{   
    private $_db;
    public function __construct()
    {
        $this->_db = new Connection();
        $this->_db = $this->_db->dbConnect();
    }
    public function CheckUname($username,$email,$password,$groups,$level)
    {
        if(!empty($username)&&!empty($email)&&!empty($password)&&!empty($groups)&&!empty($level))
        {
            $chk1 = $this->_db->prepare("SELECT user_name FROM admins WHERE user_name = ?");
            $chk1->bindParam(1,$username);
            $chk1->execute();
            if($chk1->rowCount() == 1)
            {
                $notice['username_exists'] = "Try different username";
            }else{
                $chk2 = $this->_db->prepare("SELECT email_address FROM admins WHERE email_address = ?");
                $chk2->bindParam(1,$email);
                $chk2->execute();
                if($chk2->rowCount() == 1)
                {
                    $notice['email_exists'] = "The email address that you have entered is already exists in database";
                }else{
                    $this->NewAdmin($username,$email,$password,$groups,$level);
                    $notice['success_message'] = "New admin was successfully added";
                }
            }
        }
    }
    public function NewAdmin($username,$email,$password,$groups,$level)
    {
        if(!empty($username)&&!empty($email)&&!empty($password)&&!empty($groups)&&!empty($level))
        {
            $reg = $this->_db->prepare("INSERT INTO admins (user_name, email_address, password_hash, group_admin, date_joined, admin_level) VALUES ( ?, ?, ?, ?, NOW(), ?)");
            $reg->bindParam(1,$username);
            $reg->bindParam(2,$email);
            $reg->bindParam(3,$password);
            $reg->bindParam(4,$groups);
            $reg->bindParam(5,$level);
            $reg->execute();
        }
    }
}
?>

在包含注册表单的页面上,我放置了这些代码以便在屏幕上打印错误:

<?php 
if(isset($notice['email_validation'])){
echo "
<div class='alert alert-danger'>
    <strong>Hey!</strong> ".$notice['email_validation'].".
</div>
";
}
if(isset($notice['username_exists'])){
echo "
<div class='alert alert-danger'>
    <strong>Hey!</strong> ".$notice['username_exists'].".
</div>
";
}
if(isset($notice['email_exists'])) {
echo "
<div class='alert alert-danger'>
    <strong>Hey!</strong> ".$notice['email_exists'].".
</div>
";
}
if(isset($notice['success_message'])) {
echo "
<div class='alert alert-success'>
    <strong>Hey!</strong> ".$notice['success_message'].".
</div>
";
}
?>

但现在问题是,如果您提交的表单中包含错误的数据,repeated email address或者invalid username,错误变量将被提交并显示在屏幕上。

提问于

热门问答

使用微信小程序也可以做腾讯云的标准视频直播吗?使用微信小程序做腾讯云的视频直播和im即时通讯可行吗?

美女视频一起走向共同富裕
推荐
支持的 IM部分,集成云通信 https://cloud.tencent.com/document/product/269/36838 标准直播部分,使用live-pusher和live-player标签,然后用云直播即可 https://cloud.tencent.com/do...... 展开详请

为什么我通过控制台vnc看到的界面和用vnc viewer看的的界面不一样???

HappyLau谈云计算专注于公有云,私有云解决方案,在kubernetes,openstack,kvm,ceph,linux,shell有丰富的实战经验。
推荐

控制台页面使用的是novnc,novnc是一种基于web页面使用的vnc客户端,详情可参考https://github.com/novnc/noVNC介绍,常规的vnc viewer是图形的客户端,所使用的依赖库有所不同,因此显示也不一样。

iOS在release下不走sendProcessBlock进度回调?

karis

腾讯 · 客户端开发工程师 (已认证)

Karis
推荐

请问是哪个版本的sdk呢,调用代码方便贴一下吗,最好能提供一个能复现的demo哈

API获取域名列表一直AuthFailure,code:4100?

推荐
推荐使用SDK进行调用:https://github.com/QcloudApi/qcloudapi-sdk-python 如果要自己写,也请参考下签名文档中python的代码示例,或者SDK中的源码:https://github.com/QcloudApi/qcloudapi-...... 展开详请

请问有图片鉴黄和文字甄别功能吗?现文字违规监控那么严格,有什么好的检测吗?

推荐已采纳
有的。 腾讯云 CDN 结合腾讯优图的深度学习图像识别技术,推出“图片鉴黄”服务,针对 CDN 全网分发的图片进行智能扫描,有效规避您的业务涉黄风险,目前全网免费公测中。参考文档:https://cloud.tencent.com/document/product/228/117...... 展开详请

对象存储如何通过子账户密钥上传文件?

所属标签

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励