S.H.L.L.D. 2023-08-19 10:04 采纳率: 0%
浏览 9

数据库已连接但无法写入信息

img

img

img


想问一下,我这边连接了数据库,但是在注册的时候,数据库没有写入注册信息。

registeraction.php


<?php
    //声明变量

    $username = isset($_POST['username'])?$_POST['username']:"";
    $password = isset($_POST['password'])?$_POST['password']:"";
    $re_password = isset($_POST['re_password'])?$_POST['re_password']:"";
    $sex = isset($_POST['sex'])?$_POST['sex']:"";
    $qq = isset($_POST['qq'])?$_POST['qq']:"";
    $email = isset($_POST['email'])?$_POST['email']:"";
    $phone = isset($_POST['phone'])?$_POST['phone']:"";
    $address = isset($_POST['address'])?$_POST['address']:"";

    if($password == $re_password) {
        //建立连接
        $conn = mysqli_connect('101.42.246.250','uehsystem_eu_org','pHAE5p6cTjPaxLey','uehsystem_eu_org');
        //准备SQL语句,查询用户名
        $sql_select="SELECT username FROM User WHERE username = '$username'";
        //执行SQL语句
        $ret = mysqli_query($conn,$sql_select);
        //判断用户名是否已存在
        if($username == $row['username']) {
            //用户名已存在,显示提示信息
            header("Location:register.php?err=1");
        } else {

            //用户名不存在,插入数据
            //准备SQL语句
            $sql_insert = "INSERT INTO User(username,password,sex,qq,email,phone,address) VALUES('$username','$password','$sex','$qq','$email','$phone','$address')";
            //执行SQL语句
            mysqli_query($conn,$sql_insert);
            header("Location:register.php?err=3");
        }

        //关闭数据库
        mysqli_close($conn);
    } else {
        header("Location:register.php?err=2");
    }

?>

loginaction.php


<?php
    //声明变量
    $username = isset($_POST['username'])?$_POST['username']:"";
    $password = isset($_POST['password'])?$_POST['password']:"";
    $remember = isset($_POST['remember'])?$_POST['remember']:"";

    //判断用户名和密码是否为空
    if(!empty($username)&&!empty($password)) {
        //建立连接
        $conn = mysqli_connect('101.42.246.250','uehsystem_eu_org','pHAE5p6cTjPaxLey','uehsystem_eu_org');
        //准备SQL语句
        $sql_select = "SELECT username,password FROM User WHERE username = '$username' AND password = '$password'";
        //执行SQL语句
        $ret = mysqli_query($conn,$sql_select);

        //判断用户名或密码是否正确
        if($username==$row['username']&&$password==$row['password']) {
            //选中“记住我”
            if($remember=="on") {
                //创建cookie
                setcookie("wang", $username, time()+7*24*3600);
            }
            //开启session
            session_start();
            //创建session
            $_SESSION['user']=$username;
            //写入日志
            $ip = $_SERVER['REMOTE_ADDR'];
            $date = date('Y-m-d H:m:s');

            $info = sprintf("当前访问用户:%s,IP地址:%s,时间:%s \n",$username, $ip, $date);
            $sql_logs = "INSERT INTO Logs(username,ip,date) VALUES('$username','$ip','$date')";

            //日志写入文件,如实现此功能,需要创建文件目录logs
            $f = fopen('./logs/'.date('Ymd').'.log','a+');

            fwrite($f,$info);
            fclose($f);

            //跳转到loginsucc.php页面
            header("Location:loginsucc.php");
            //关闭数据库
            mysqli_close($conn);
        }else {
            //用户名或密码错误,赋值err为1
            header("Location:login.php?err=1");
        }
    }else {
        //用户名或密码为空,赋值err为2
        header("Location:login.php?err=2");
    }

?>

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-19 12:16
    关注

    【以下回答由 GPT 生成】

    问题的原因可能是以下几点:

    1. 数据库连接错误:请确保数据库连接信息正确,包括数据库主机地址、用户名、密码和数据库名称。可以尝试使用以下代码进行连接: php $conn = mysqli_connect('主机地址','用户名','密码','数据库名'); 如果连接失败,请检查数据库主机地址、用户名、密码和数据库名称是否正确。

    2. 数据库表或字段错误:请确保在注册时要写入的表和字段名称正确。检查数据库表是否存在,并确保字段名称正确。

    3. SQL语句错误:根据提供的代码,我们无法确定完整的SQL语句。请确保SQL语句的语法正确,并同时考虑使用参数化查询来防止SQL注入攻击。以下是一个使用参数化查询的示例: php $stmt = $conn->prepare("SELECT username FROM User WHERE username = ?"); $stmt->bind_param("s", $username); $stmt->execute(); 请注意,这只是一个查询示例,您需要根据实际情况修改SQL语句。

    4. 数据库操作错误:在注册成功后,您需要执行插入操作将用户信息写入数据库表中。请确保在代码的其他部分有正确的插入操作,并且插入的字段值与注册表单中的值一致。

    综上所述,以下是可能的解决方案:

    <?php
        // 声明变量
        $username = isset($_POST['username'])?$_POST['username']:"";
        $password = isset($_POST['password'])?$_POST['password']:"";
        $re_password = isset($_POST['re_password'])?$_POST['re_password']:"";
        $sex = isset($_POST['sex'])?$_POST['sex']:"";
        $qq = isset($_POST['qq'])?$_POST['qq']:"";
        $email = isset($_POST['email'])?$_POST['email']:"";
        $phone = isset($_POST['phone'])?$_POST['phone']:"";
        $address = isset($_POST['address'])?$_POST['address']:"";
    
        if($password == $re_password) {
            // 建立连接
            $conn = mysqli_connect('主机地址','用户名','密码','数据库名');
            if (!$conn) {
                die('数据库连接失败: ' . mysqli_connect_error());
            }
    
            // 准备SQL语句,查询用户名
            $sql_select = "SELECT username FROM User WHERE username = ?";
    
            // 使用参数化查询
            $stmt = $conn->prepare($sql_select);
            $stmt->bind_param("s", $username);
            $stmt->execute();
    
            // 获取查询结果
            $result = $stmt->get_result();
    
            // 检查用户名是否已存在
            if ($result->num_rows > 0) {
                echo "该用户名已存在!";
            } else {
                // 准备SQL语句,插入注册信息
                $sql_insert = "INSERT INTO User (username, password, sex, qq, email, phone, address) VALUES (?, ?, ?, ?, ?, ?, ?)";
    
                // 使用参数化查询
                $stmt = $conn->prepare($sql_insert);
                $stmt->bind_param("sssssss", $username, $password, $sex, $qq, $email, $phone, $address);
                $stmt->execute();
    
                echo "注册成功!";
            }
    
            // 关闭数据库连接
            $stmt->close();
            $conn->close();
        }
    ?>
    

    请注意,以上是一个基本的解决方案,您可能需要根据实际情况进行修改和调整。另外,为了更好地保护数据库安全,建议使用加密算法对用户密码进行加密存储。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月19日

悬赏问题

  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)