思路:form表单创建,提交后上传用户信息到数据库,创建后台,可实现增删改查。
1 enroll.php <实现form表单的创建,并且可以提交到数据库中>
<!DOCTYPE html>
<html>
<head>
<meta charset = 'utf-8'/>
<title>用户注册</title>
</head>
<body>
<form name = "form1" action = "dataconn.php" onsubmit="return a()" method="post" enctype="multipart/form-data">
<!-- 提交表单到dataconn.php中、dataconn.php实现连接数据库,并将用户信息插入到数据库,传送的方式是post
onsubmit 提交的时候先验证 在script 标签中的a函数-->
<!-- 上传的含有非文本内容 如图像 用enctype 编码方式-->-->
姓名:<br/>
<input type = "text" name = "name" />
<br/><br/>
性别:<br/>
<input type="radio" checked="checked" name="sex" value = "男"/>男
<input type="radio" name="sex" value = "女" />女
<!-- checked 属性是默认选中 两个的name相同,说明两个用的是一个单选按钮 -->
<br/><br/>
爱好:<br/>
<input type = "checkbox" name = "interest[]" value = "跑步" checked = "checked"/>跑步
<input type = "checkbox" name = "interest[]" value = "健身" checked = "checked"/>健身
<input type = "checkbox" name = "interest[]" value = "攀岩"/>攀岩
<input type = "checkbox" name = "interest[]" value = "听音乐"/>听音乐
<input type = "checkbox" name = "interest[]" value = "读书"/>读书
<br/><br/>
手机号:<br/>
<input type = "text" name = "mobile"/>
<br/><br/>
邮箱:<br/>
<input type = "text" name = "email"/>
<br/><br/>
选择头像:
<input type = "file" name = "files" />
<br/><br/>
备注:<br/>
<textarea name = "remark" cols = "40" rows = "7"></textarea>
<br/><br/>
<input type = "reset" name = "reset" value = "重置信息" style="height:30px;width:70px;"/>
<br/><br/>
<input type = "submit" name = "submit" value = "提交信息" style="height:30px;width:70px;"/>
<!--会提交最上面form action 后面的路径中去,在由.php 文件去处理收到的数据-->
<br/><br/>
<input type = "button" name = "button1" value = "退出" onclick = "window.close()" style="height:30px;width:70px;"/>
<br/><br/>
<!--添加的onclick 只要点击就会退出页面-->
</form>
<script>
// 进行用户输入信息验证
function a() {
var x = document.forms["form1"]["name"].value;
if (x==null || x== ""){
alert("请输入名字");
return false;//
}
var z=document.forms["form1"]["mobile"].value;//得到手机号
var r = /^1[34758][0-9]\d{8}$/;
if(!r.test(z)){
alert("请输入正确的手机号");
return false;
}
var y=document.forms["form1"]["email"].value;
var atpos=y.indexOf("@");
var dotpos=y.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=y.length){
alert("请输入正确的邮箱地址");
return false;
}
var c = document.forms["form1"]["files"].value;
if (c==null || c== ""){
alert("请选择头像");
return false;//
}
}
</script>
</body>
</html>
2 dataconn.php <连接数据库并向数据库中插入用户信息 增>
<?php
//但是首先要在数据库中创建一个表单,在后面会写到,用的是Navicat 软件
header('content-type:text/html; charset=utf-8');
$mysqli = mysqli_connect('localhost','root','3589216','php10');//mysql数据库中自己设置的密码
mysqli_query($mysqli,"set names 'utf8'");
//设置的是数据库的编码方式https://blog.csdn.net/Lewis_lxc/article/details/82731054
if (!$mysqli) {
printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());
exit;
}
mysqli_set_charset($mysqli,"utf8");// 修改数据库连接字符集为 utf8
$name = $_POST['name'];//这是从HTML界面传过来的值 enroll.php
$sex = $_POST['sex'];
$remark = $_POST['remark'];
$mobile = $_POST['mobile'];
$interest = $_POST['interest'];
$email = $_POST['email'];
//处理上传的图片文件
//定义了一个函数,获取后缀名, 应该有更方便的方法,下面用
function GetFiletype($Filename)
{
if (substr_count($Filename, ".") == 0) { // 检查文件名中是否有.号。
return; // 返回空
} else if (substr($Filename, -1) == ".") { // 检查是否以.结尾,即无扩展名
return; // 返回空
} else {
$FileType = strrchr($Filename, "."); // 从.号处切割
$FileType = substr($FileType, 1); // 去除.号
return $FileType; // 返回
}
}
//创建一个函数,可以递归创建多层路径 下面用
function mkdirs($path){
if(!is_dir($path)){
mkdirs(dirname($path));
if(!mkdir($path, 0777)){
return false;
}
}
return true;
}
if(isset($_FILES[$files])){
echo json_encode(array('err'=>'上传文件失败'));
die;
}else{
$files = $_FILES['files']['name'] ;//获取传过来的图片名称
$fileext = getfiletype($files);//由上面的函数,获得后缀名
$rand_name = date('His',time()).rand(1000,9999);//将传过来的图片重命名
$filename = $rand_name.'.'.$fileext;//修改后文件的名字
$path = "/upload/image/".date('Ymd',time());//将图片存储到一个新的路径
$realpath = ROOT_DIR.'/'.$path.'/';
mkdirs($realpath);//创建路径,根据上面的函数
$attach_filesize =filesize($_FILES['files']['tmp_name']) ;
if($attach_filesize>20*1024*1024){
echo json_encode(array('err'=>'文件太大'));
die;
}
move_uploaded_file($_FILES['files']['tmp_name'],$realpath.$filename);//将照片移动到新路径
$fileupload = $realpath.$filename;//将$fileupload 上传到数据库,展示在后台
}
$interest1 =implode(",", $interest);// 由于兴趣是多选 所以要将传过来的数组,变成字符串的形式
$sql = "insert into msg(name1,sex,remark,mobile,interest,email,files) values('{$name}','{$sex}','{$remark}','{$mobile}','{$interest1}','{$email}','{$fileupload}')";
//mysql语句
$res = mysqli_query($mysqli, $sql);//插入
if($res == true ){
echo '提交成功';
}else{
echo '提交失败';
}
?>