四 用户信息的修改功能

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");
    //修改完成
?>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值