change.php 将用户信息展示出来,性别,多选,单选,图片(将图片显示出来)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改用户信息</title>
</head>
<body>
<?php
//因为要把用户信息传出来,所以要连接数据库
$mysqli = mysqli_connect('localhost','root','3589216','php10');
if (!$mysqli) {
printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());
exit;
}
mysqli_query($mysqli , "set names utf8");// 设置编码,防止中文乱码
//从数据库中获取需要修改的id,并获取用户的ID
$id = $_GET['id'];
$sql = mysqli_query($mysqli,"SELECT * FROM msg WHERE id='$id'");
if(!$sql){
echo "没执行成功";
}
$sql_arr = mysqli_fetch_assoc($sql);//从结果集中取得一行作为关联数组 取得数据
// var_dump($sql_arr['name1']);//字符串
// var_dump($sql_arr['sex']);//字符串 ‘男’
// var_dump($sql_arr['interest']); //输出的是字符串
// var_dump($sql_arr['files']);//输出字符串 路径
$path =$sql_arr['files'];//图片的路径
$interest1= explode(",",$sql_arr['interest']);//把字符串拆分成数组
?>
<!--将用户原本信息显示在页面上-->
<form name = "form2" action = "change7.php" onsubmit="return a()" method="post" enctype="multipart/form-data">
//由于这会传输图片到数据库 所以要加上enctype
id :<br/>
<input type = "text" name = "id" value = "<?php echo $sql_arr['id'];?>"/>
<br/><br/>
姓名:<br/>
<input type = "text" name = "name" value = "<?php echo $sql_arr['name1'];?>"/>
<br/><br/>
性别:<br/>
<input type="radio" name="sex" value = "男"
<?php if ($sql_arr['sex'] == '男'){echo "checked = 'checked'";}?>/>男
<!--在这进行一个判断 -->
<input type="radio" name="sex" value = "女"
<?php if ($sql_arr['sex'] == '女'){echo "checked = 'checked'";}?>/>女
<br/><br/>
爱好:<br/>
<!--翻译为如果 跑步 这个字符串在 数组中,则默认选中 -->
<input type = "checkbox" name = "interest[]" value = "跑步"
<?php if(in_array("跑步",$interest1)){echo "checked = 'checked'";} ?> />跑步
<input type = "checkbox" name = "interest[]" value = "健身"
<?php if(in_array("健身",$interest1)){echo "checked = 'checked'";} ?>/>健身
<input type = "checkbox" name = "interest[]" value = "攀岩"
<?php if(in_array("攀岩",$interest1)){echo "checked = 'checked'";} ?>/>攀岩
<input type = "checkbox" name = "interest[]" value = "听音乐"
<?php if(in_array("听音乐",$interest1)){echo "checked = 'checked'";} ?>/>听音乐
<input type = "checkbox" name = "interest[]" value = "读书"
<?php if(in_array("读书",$interest1)){echo "checked = 'checked'";} ?>/>读书
<br/><br/>
手机号:<br/>
<input type = "text" name = "mobile" value = "<?php echo $sql_arr['mobile']?>"/>
<br/><br/>
邮箱:<br/>
<input type = "text" name = "email" value = "<?php echo $sql_arr['email']?>"/>
<br/><br/>
选择头像:
<input type = "file" name = "files" /><br/><br/>
<img src="<?php echo $path; ?>" width = "100px"/>
<br/><br/>
备注:<br/>
<textarea name = "remark" cols = "50" rows = "7" value = "<?php echo $sql_arr['remark']?>"></textarea>
<br/><br/>
<input type = "submit" name = "submit" value = "修改" style="height:30px;width:70px;" />
<!--会提交最上面form action 后面的路径中去 在change7.php 中实现向数据库中的插入-->
<br/><br/>
<input type = "button" name = "button1" value = "返回" onclick = "window.location.href='search7.php'" style="height:30px;width:70px;"/>
<br/><br/>
</form>
<script>
//填写信息正确性验证
function a() {
var x = document.forms["form2"]["name"].value;//对应上面的name的值 form1
if (x==null || x== ""){
alert("请输入名字");
return false;//
}
var z=document.forms["form2"]["mobile"].value;//得到手机号
var r = /^1[34758][0-9]\d{8}$/;
if(!r.test(z)){
alert("请输入正确的手机号");
return false;
}
var y=document.forms["form2"]["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["form2"]["files"].value;
if (c==null || c== ""){
alert("请选择头像");
return false;//
}
}
</script>
</body>
</html>
change7.php 用于处理修改后的再提交
<?php
//修改用户信息后,在将信息传到数据库
//连接数据库
$mysqli = mysqli_connect('localhost','root','3589216','php10');
if (!$mysqli) {
printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());
exit;}
mysqli_set_charset($mysqli,"utf8");
//获取从HTML界面传出的用户信息
$name = $_POST['name'];
$sex = $_POST['sex'];
$interest = $_POST['interest'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$remark = $_POST['remark'];
$id = $_POST['id'];
//应该可以封装成一个处理图片上传的文件 ,直接调用即可
//获取文件的后缀名
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.'/';//真实路径 ROOT_DIR 是什么
mkdirs($realpath);//创建路径
$attach_filesize =filesize($_FILES['files']['tmp_name']) ;
//存储到数据库 文件的临时副本的名称 注意$_FILES的写法
if($attach_filesize>20*1024*1024){
echo json_encode(array('err'=>'文件太大'));
die;
}
move_uploaded_file($_FILES['files']['tmp_name'],$realpath.$filename);
$fileupload = $realpath.$filename;
}
//多选按钮的值传到数据库中
$interest1 =implode(",", $interest);
//更新数据库
mysqli_query($mysqli,
"UPDATE msg SET name1='$name',sex='$sex',interest='$interest1',mobile='$mobile',email='$email',remark='$remark',files='$fileupload'WHERE id = $id") or die('修改数据出错:' .$mysqli_error());
//更新后跳转到用户信息界面
header("Location:search7.php");
//修改完成
?>