实现用户注册功能,用户上传头像放在imgs的目录下,所涉及文件分别是register.html(注册),conn.php(连接数据库),img.php(上传图片与更改图片名称,改成了是一个函数,返回 图片存储位置+图片名称),register.php(注册功能)
register.html界面如下:
<form action="../php/registeradmin.php" method="post" enctype="multipart/form-data">
<div class="logindiv">用户姓名:<input type="text" name="user" placeholder="用户名" /></div>
<div class="logindiv">用户密码:<input type="password" name="password" placeholder="密码" /></div>
<div class="logindiv">联系方式:<input type="phone" name="phone" placeholder="联系方式" /></div>
<div class="logindiv">用户邮箱:<input type="email" name="email" placeholder="用户邮箱" ></div>
<div class="logindiv">联系地址:<input type="text" name="address" placeholder="联系地址" /></div>
<div class="logindiv">用户头像:<input type="file" name="file"/></div>
<input type="submit" id="createadmin" value="创建超级管理员" />
</form>
conn.php不贴,img.php如下:
<?php
function uploadimg($imgnewname){
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp); // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb
&& in_array($extension, $allowedExts)){
if ($_FILES["file"]["error"] > 0){
echo "错误:: " . $_FILES["file"]["error"] . "<br>";
}else{
// 上传图片的路径
$path = "../imgs";
// 获取图片真实名称
$imgname = $_FILES["file"]["name"];
// 图片新名字,用户名.png/.jpg等
$imgnew = $imgnewname . "." . $extension;
// 用户需要存储的路径+图片名
$userimg = $path."/".$imgnew;
echo $userimg;
// 重命名,此处报错,需要修改
rename(iconv('UTF-8', 'GBK',$imgname), iconv('UTF-8','GBK',$imgnew));
// 如果 upload 目录不存在该文件则将文件上传到 imgs 目录下
move_uploaded_file($_FILES["file"]["tmp_name"], $userimg);
// 传递给调用者存储位置内容
return $userimg;
}
}else{
echo "非法的文件格式";
}
}
?>
register.php如下:
<?php
// 超级用户注册功能
// 连接数据库
include "connect.php";
// 获取所上传图片路径
include "img.php";
$user = $_POST['user'];
$password1 = $_POST['password'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$address = $_POST['address'];
// 密码加密
$password = password_hash($password1, PASSWORD_DEFAULT);
$credit = "5";
$manner = "1";
$userclass = "0";
// 访问img.php下的uploadimg函数,上传图片,返回上传路劲,如下为重命名为$user所代表内容,
$userimg = uploadimg($user);
$createtime = date("Y/m/d h:i:s");
// 判断是否已经存在将要注册的用户名
$sqlsearch = "select * from user where user='$user'";
$seresult = $conn->query($sqlsearch);
if($seresult->num_rows>0){
echo "该用户名已经存在,请输入其他用户名";
// header("Location:../admin/create.html");
}else{
echo "没有该用户信息";
$sqlinsert = "INSERT INTO user (user, password, phone, email, address, credit, manner, userclass, userimg, createtime) VALUES ('".$user."','".$password."','".$phone."','".$email."','".$address."','".$credit."', '".$manner."', '".$userclass."', '".$userimg."', '".$createtime."')";
if ($conn->query($sqlinsert) === TRUE) {
echo "新记录插入成功";
// header("Location:../admin/index.html");
} else {
echo "出错,重新注册 " . $sql . "<br>" . $conn->error;
// header("Location:../admin/create.html");
}
}
?>
不要在意注释掉的代码,那是我在测试其他方式