鼠子
Tomori@miomoe.cn
typecho实现前台注册/登录最简单的方法
2024-11-23 · 字数:2381 · Typecho · 暂无标签

废话不多说,代码为:

< form action="options->loginAction()?>" method="post" name="login" rold="form">
    < input type="hidden" name="referer" value="options->siteUrl(); ?>">
    < input type="text" name="name" autocomplete="username" placeholder="请输入用户名" required/>
    < input type="password" name="password" autocomplete="current-password" placeholder="请输入密码" required/>
    < button type="submit">登录< /button >
< /form >
< form action="" method="post" name="register" role="form">
    < input type="text" name="name" placeholder="用户名(必填)" required />
    < input type="email" name="mail" placeholder="邮箱地址(必填)" required />
    < input type="password" name="password" placeholder="密码(必填)" required />
    < button type="submit" name="doRegister">注册< /button >
< /form >
    // 处理注册请求
    if (isset($_POST['doRegister'])) {
        $db = Typecho_Db::get();
        $prefix = $db->getPrefix();

        // 获取输入数据
        $name = htmlspecialchars(trim($_POST['name']));
        $mail = htmlspecialchars(trim($_POST['mail']));
        $password = htmlspecialchars(trim($_POST['password']));

        // 检查数据有效性
        if (empty($name) || empty($mail) || empty($password)) {
            echo '

请填写所有必填项。

'; } elseif (!filter_var($mail, FILTER_VALIDATE_EMAIL)) { echo '

请输入有效的邮箱地址。

'; } else { // 检查用户名是否已存在 $exists = $db->fetchRow($db->select()->from($prefix . 'users')->where('name = ?', $name)->limit(1)); if ($exists) { echo '

用户名已存在。

'; } else { // 创建新用户 $hashedPassword = Typecho_Common::hash($password); $db->query($db->insert($prefix . 'users')->rows([ 'name' => $name, 'mail' => $mail, 'screenName' => $name, 'password' => $hashedPassword, 'created' => time(), 'group' => 'subscriber', // 默认注册用户组 'authCode' => Typecho_Common::randString(32) ])); echo '

注册成功!您现在可以登录。

'; } } }
文章版权声明 本网站名称:鼠子Blog
本站永久网址:https://blog.miomoe.cn/
如有侵权,请联系站长进行删除处理。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!
comment 共有 0 条评论
account_circle
email
link