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");
}
?>
【以下回答由 GPT 生成】
问题的原因可能是以下几点:
数据库连接错误:请确保数据库连接信息正确,包括数据库主机地址、用户名、密码和数据库名称。可以尝试使用以下代码进行连接: php $conn = mysqli_connect('主机地址','用户名','密码','数据库名');
如果连接失败,请检查数据库主机地址、用户名、密码和数据库名称是否正确。
数据库表或字段错误:请确保在注册时要写入的表和字段名称正确。检查数据库表是否存在,并确保字段名称正确。
SQL语句错误:根据提供的代码,我们无法确定完整的SQL语句。请确保SQL语句的语法正确,并同时考虑使用参数化查询来防止SQL注入攻击。以下是一个使用参数化查询的示例: php $stmt = $conn->prepare("SELECT username FROM User WHERE username = ?"); $stmt->bind_param("s", $username); $stmt->execute();
请注意,这只是一个查询示例,您需要根据实际情况修改SQL语句。
数据库操作错误:在注册成功后,您需要执行插入操作将用户信息写入数据库表中。请确保在代码的其他部分有正确的插入操作,并且插入的字段值与注册表单中的值一致。
综上所述,以下是可能的解决方案:
<?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();
}
?>
请注意,以上是一个基本的解决方案,您可能需要根据实际情况进行修改和调整。另外,为了更好地保护数据库安全,建议使用加密算法对用户密码进行加密存储。