会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133683个问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>07cookie案例</title>
    <style>
        .loginDiv{border: 1px solid #666;padding: 30px;width: 300px;}
        .welcomeDiv{border: 1px solid #666;padding: 30px;width: 300px;margin-top: 30px;display: none;}
        .welcome1 span{color: green;font-size: 20px;font-weight: bold;}
    </style>
</head>
<body>
    <div class="loginDiv">
        <div class="login1">
            <label for="">姓名:</label>
            <input type="text" name="" id="userName">
        </div>
        <div class="login1">
            <label for="">密码:</label>
            <input type="text" name="" id="passWord">
        </div>
        <button id="login">登录</button>
        <button id="regist">注册</button>
    </div>
    <div class="welcomeDiv">
        <div class="welcome1">欢迎回来, <span id="nickNameSpan">未登录</span></div>
        <button id="reset">注销登录</button>
    </div>
    <script>
        (function(){
            var login = document.querySelector('#login');
            var regist = document.querySelector('#regist');
            var reset = document.querySelector('#reset');
            var loginDiv = document.querySelector('.loginDiv');
            var welcomeDiv = document.querySelector('.welcomeDiv');
            var userName = document.querySelector('#userName');
            var passWord = document.querySelector('#passWord');
            var nickNameSpan = document.querySelector('#nickNameSpan');
            //表示一个自动登录的功能
            function getCookie(){                
                var cookie = document.cookie;
                var cookieArr = cookie.split(';');
                var finalObj = {};
                for(var i = 0; i < cookieArr.length; i++){
                    var tempArr = cookieArr[i].trim().split('=');
                    finalObj[tempArr[0]] = tempArr[1];
                }
                return  finalObj;
            }
            var cookieObj = getCookie();
            if(cookieObj.nickName != undefined){
                if(cookieObj.nickName.length != 0){
                    welcomeDiv.style.display = 'block';
                    loginDiv.style.display = 'none';
                    nickNameSpan.innerHTML = cookieObj.nickName;
                }
            }

            login.onclick = function(){
                var xhr = new XMLHttpRequest();
                xhr.onreadystatechange = function(){
                    if(xhr.readyState == 4){
                        if(xhr.status == 200){
                            var data = JSON.parse(xhr.responseText);
                            if(data.loginStatusCode == 1){
                                welcomeDiv.style.display = 'block';
                                loginDiv.style.display = 'none';
                                nickNameSpan.innerHTML = data.nickName;
                            }
                        }
                    }
                };
                var formData = new FormData();
                formData.append('uname', userName.value);
                formData.append('pword', passWord.value);
                xhr.open('post', '07cookie案例.php', true);
                xhr.send(formData)
            }
            
            //注销
            reset.onclick = function(){
                userName.value = '';
                passWord.value = '';
                welcomeDiv.style.display = 'none';
                loginDiv.style.display = 'block';
                var expires = new Date(new Date().getTime() + 1).toGMTString();
                document.cookie = "nickName=beixi; expires" + expires;
            }
        })()
    </script>
</body>
</html>

老师,我这个注销的时候cookie清除不了是什么原因

WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 46楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>cookie复杂存储</title>
</head>
<body>
    <button>点我</button>
    <script>

        (function() {
            var xhr=window.XMLHttpRequest
            ?new XMLHttpRequest()
            :new ActiveXObject();
            xhr.onreadystatechange=function() {
                if(xhr.readyState==4) {
                    if(xhr.status==200) {
                        console.log(xhr.responseText)
                    }
                }
            }
            var datas=new FormData();
            datas.append('name','taige');
            datas.append('hobby','eat');
            xhr.open('post','cookie后台.php',true);
            xhr.send(datas);
        }());
    </script>
</body>
</html>
<?php
    // 处理cookie
    $name=$_POST['name'];
    $hobby=$_POST['hobby'];
    setcookie('name',$name,time()+60*60);
    setcookie('hobby',$hobby,time(+60*60));

    // 给出反馈
    $success=array('msg'=>'ok');
    echo json_encode($success);
?>

老师,我前后台数据都提交了,您看看。我返回的结果是这玩意!!

QQ截图20210210160444.png


WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 47楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>cookie案例</title>
    <style>
        .loginRegistDiv{
            text-align: center;
            padding: 15px;
            border: 1px solid black;
            width: 300px;
            min-height: 30px;
        }
        .welcomeDiv{
            text-align: center;
            padding: 15px;
            border: 1px solid black;
            width: 300px;
            min-height: 30px;
            display: none;
        }
        .nickNameSpan{
            color: green;
            font-size: 22px;
            font-weight: bold;
        }
    </style>
</head>
<body>
 <div class="loginRegistDiv">
     <lable for="userName">
         <span>用户名:</span><input type="text" id="userName" placeholder="请输入用户名">
     </lable><br><br>
     <lable for="password">
         <span>密&nbsp;&nbsp;&nbsp;码:</span><input type="text" id="password" placeholder="请输入密码">
     </lable><br><br>
     <button class="loginBtn">登录</button>
     <button class="registBtn">注册</button>
 </div>
<div class="welcomeDiv">
    欢迎回来,尊敬的:
    <span class="nickNameSpan">哈哈哈</span>
    <br><br>
    <button class="exitBtn">注销登录</button>
</div>
 <script>
     //页面逻辑
     ;(function () {
         var loginBtn=document.querySelector('.loginBtn');
         var userNameInput=document.querySelector('#userName');
         var passwordInput=document.querySelector('#password');
         var welcomeDiv=document.querySelector('.welcomeDiv');
         var loginRegistDiv=document.querySelector('.loginRegistDiv');
         var nickNameSpan=document.querySelector('.nickNameSpan');
         var exitBtn=document.querySelector('.exitBtn');
         //表示一个自动登录的功能
         function getCookie() {
             var cookie=document.cookie;
             var cookieArr=cookie.split(';');
             // console.log(cookieArr);//得到的是数组 (2) ["uname=beixi", " userId=120123"]
             var finalObj={};
             for (var i=0;i<cookieArr.length;i++){
                 //trim()是去除空格
                 var tempArr=cookieArr[i].trim().split('=');
                 //console.log(tempArr);//(2) ["uname", "beixi"]  (2) ["userId", "120123"]
                 finalObj[tempArr[0]]=tempArr[1];
             }
             return finalObj;
         }
         console.log(getCookie());
         var cookieObj=getCookie();
         //判断cookie存储的nickName是否存在
         if (cookieObj.nickName!=undefined){
             if (cookieObj.nickName.length!=0){
                 loginRegistDiv.style.display='none';
                 welcomeDiv.style.display='block';
                 nickNameSpan.innerHTML=cookieObj.nickName;
             }
         }
         loginBtn.onclick=function () {
            //发送Ajax请求
             var xhr=new XMLHttpRequest();
             xhr.onreadystatechange=function () {
                 if (xhr.readyState==4){
                     if (xhr.status==200){
                         var data=xhr.responseText;
                         if (data.infoCode==0){
                             loginRegistDiv.style.display='none';
                             welcomeDiv.style.display='block';
                             nickNameSpan.innerHTML=data.nickName;
                         }
                     }
                 }
             };
             var formData=new FormData();
             formData.append('uname',userNameInput.value);
             formData.append('upass',passwordInput.value);
             xhr.open('post','7-cookie案例后台.php',true);
             xhr.send(formData);
         };
         //退出登录按钮
         exitBtn.onclick=function () {
             userNameInput.value='';
             passwordInput.value='';
             loginRegistDiv.style.display='block';
             welcomeDiv.style.display='none';
             //清除cookie
             var expires=new Date(new Date().getTime()+1).toGMTString();
             document.cookie='nickName=beixi,expires='+expires;
         }
     })();
 </script>
</body>
</html>

php:
 <?php
$success=array('msg'=>'ok');
$userName=$_POST['uname'];
$password=$_POST['upass'];
//连接数据库
try{
$con=new PDO('mysql:host=localhost;dbname=beixidb','root','');
   if($con){
      //添加辅助设置
      mysqli_query($con,'set names utf8');
      mysqli_query($con,'set character_set_client utf8');
      mysqli_query($con,'set character_set_results utf8');
      $sql="select * from userinfo where 1";
      $result=$con->query($sql);
      //解析查询的结果
      if($result->num_rows>0){
        $info=[];
        for($i=0;$row=$result->fetch_assoc();$i++){
          $info[$i]=$row;
        }
        //$success['infoCode']=$info;//拿到数据了
        //得到解析数组后,判断用户发来的内容是否存在于数据库中
        $flag=0;//只要执行break,就变为1,否则一直为0
        for($j=0;$j<count($info);$j++){
         //判断是否与当前条目的用户名相同
         if($info[$j]['username']==$username){
            //如果相同,继续判断是否是当前条目的密码
            if($info[$j]['password']==$password){
                $success['infoCode']=0;
                $flag=1;
                break;
            }
         }
        }
        if($flag==0){
        $success['infoCode']=1;
        }
      }else{
        $success['infoCode']=1;
      }
      }else{
      //向前台返回信息
      //0代表登录成功,1代表登录失败,2代表数据库连接失败
      $success['infoCode']=2;
      }
}catch(PDOException  $err){
echo '出现错误信息:'.$err->getMessage();
}
setcookie('nickName','beixi',time()+3600*24);
//回馈前端表示登录成功,使用状态码infoCode  0表示成功  1表示失败
$success['infoCode']=0;
$success['nickName']='beixi';
echo json_encode($success);
?>

老师,我总觉得我的优点问题,但是又找不到代码出错的地方,老师帮忙看看呗,谢谢老师

WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 48楼
WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 50楼
WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 51楼

html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>cookie案例</title>
    <style type="text/css">
        .loginRegistDiv{
            text-align: center; padding: 15px;
            border: 1px solid black; width:300px; min-height:30px;
        }
        .welcomeDiv{
            text-align: center; padding: 15px;
            border: 1px solid black; width: 300px; min-height:30px;
            display: none;
        }
        .nickNameSpan{
            color: green; font-size: 22px; font-weight: bold;
        }
    </style>
</head>
<body>
<div class="loginRegistDiv">
    <label for="userName">
        <span>用户名:</span><input type="text" id="userName" placeholder='请输入用户名'>
    </label><br/>
    <label for="password">
        <span>密&nbsp;&nbsp;&nbsp;码:</span><input type="text" id="password" placeholder='请输入密码'>
    </label><br/><br/>
    <button class="loginBtn">登录</button>
    <button class="registBtn">注册</button>
</div>
<div class="welcomeDiv">
    欢迎回来,尊敬的:
    <span class='nickNameSpan'>哈哈哈</span>
    <br/><br/>
    <button class="exitBtn">注销登录</button>
</div>
<script>
    //页面逻辑
    ;(function(){
        var loginBtn=document.querySelector('.loginBtn');
        var userNameInput=document.querySelector('#userName');
        var passwordInput=document.querySelector('#password');
        var welcomeDiv=document.querySelector('.welcomeDiv');
        var loginRegistDiv=document.querySelector('.loginRegistDiv');
        var nickNameSpan=document.querySelector('.nickNameSpan');
        var exitBtn=document.querySelector('.exitBtn');
        //表示一个自动登录的功能
        function  getCookie(){
            var cookie=document.cookie;
            var  cookieArr=cookie.split(';');
            var finalObj={};
            for(var i=0;i<cookieArr.length;i++){
                var tempArr=cookieArr[i].trim().split('=');
                finalObj[tempArr[0]]=tempArr[1];
            }
            return finalObj;
        }
        var cookieObj=getCookie();
        if(cookieObj.nickName!=undefined){
            if(cookieObj.nickName.length!=0){
                loginRegistDiv.style.display='none';
                welcomeDiv.style.display='block';
                nickNameSpan.innerHTML=cookieObj.nickName;
            }
        }
        loginBtn.onclick=function(){
            var xhr=new XMLHttpRequest();
            xhr.onreadystatechange= function () {
                if(xhr.readyState==4){
                    if(xhr.status==200){
                        var data=JSON.parse(xhr.responseText);
                        if(data.loginStatusCode==1){
                            loginRegistDiv.style.display='none';
                            welcomeDiv.style.display='block';
                            nickNameSpan.innerHTML=data.nickName;
                        }
                    }
                }
            };
            var formData=new FormData();
            formData.append('uname',userNameInput.value);
            formData.append('upass',passwordInput.value);
            xhr.open('post','cookie案例后台.php',true);
            xhr.send(formData);
        }
        //退出登录按钮
        exitBtn.onclick= function () {
            userNameInput.value='';
            passwordInput.value='';
            loginRegistDiv.style.display='block';
            welcomeDiv.style.display='none';
            //清除cookie
            var expires=new Date(new Date().getTime()+1).toGMTString();
            document.cookie='nickName=beixi;expires='+expires;
        }
    })();
</script>
</body>
</html>

php

<?php
$success=('msg'=>'ok');
$userName=$_POST['uname'];
  $password=$_POST['upass'];
  /*
     假设经过了数据库的出来
     假设已经认证登录成功,需要添加cookie
  */
  //登录成功之后对页面添加cookie
  setcookie('nickName','beixi',time()+3600*24);
  //回馈前端表示登录成功,使用状态码loginStatusCode   0表示失败  1表示成功
  $success['loginStatusCode']=1;
  $success['nickName']='beixi';
 echo  json_encode($success);
?>

页面没有显示image.png是哪里有问题的呢

WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 54楼
WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 55楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <title>Document</title>
    
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=webgl&ak=XgpOvmATLiD7xu0G0HEvLECHAAEkRsPp"></script>
    <style>
        #container{
            width: 700px;
            height: 500px;
            border:1px solid black;
        }
    </style>
</head>
<body>
    <button>加载地图</button>
    <div id="container"></div><!--  容器 -->
  <script>
      var btn=document.querySelector('button');
      btn.onclick=function(){
        var map =  new BMap.Map("container");
        var point = new BMap.Point(116.404, 39.915);
        map.centerAndZoom(point, 15); 
        map.enableScrollWheelZoom(true);
        var option={
            anchor:BMAP_ANCHOR_BOTTOM_RIGHT,
            offset:new BMapGL.Size(150, 5),
            type: BMAP_NAVIGATION_CONTROL_LARGE
        }
        map.addControl(new BMap.ScaleControl());//比例尺控件
        map.addControl(new BMap.ZoomControl());//缩放
        map.addControl(new BMap.NavigationControl(option));//平移缩放
        map.addControl(new BMap.MapTypeControl());//地图类型 右上角

      }
  </script>
</body>
</html>

老师 为啥控件不显示

WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 56楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>多个小球运动</title><style>canvas{border: 1px solid;}</style>
</head>
<body>
    <canvas width="500px" width="400px">对不起你的浏览器不支持canvas</canvas>
    <script>
        var mycanvas=document.querySelector('canvas');
        var ctx=mycanvas.getContext('2d');
        function Circle(){
            this.r=Math.floor(Math.random()*20+6);
            this.x=Math.floor(Math.random()*(500-this.r));
            this.y=Math.floor(Math.random()*(400-this.r));
            this.dx=Math.floor(Math.random*10);
            this.dy=Math.floor(Math.random*8);
            this.color='rgb('+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+')';
        }
        Circle.prototype.yd=function(){
            this.x+=this.dx;
            if(this.x<=this.r){
                this.dx=-this.dx
            }else if(this.x>=500-this.r){
                this.dx=-this.dx
            }
            this.y+=this.dy;
            if(this.y<=this.r){
                this.y=-this.dy
            }else if(this.y>=400-this.r){
                this.dy=-this.dy
            }
        }
       Circle.prototype.abs=function(){
           ctx.beginPath();
           ctx.arc(this.x,this.y,this.r,0,2*Math.PI);
           ctx.fillStyle=this.color;
           ctx.fill();
           ctx.closePath();
         

       }
       var arr=[];
           for(var i=0 ;i<4;i++){
               arr[i]=new Circle();
           }
           var timer=setInterval(function () {
               ctx.clearRect(0,0,mycanvas.width,mycanvas.height)
               for(var i=0;i<arr.length;i++){
                   arr[i].yd();
                   arr[i].abs();

               }
           },40)

    </script>
</body>
</html>

老师为啥我的球显示不了

WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 57楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        canvas{border: 1px solid red;}
    </style>
</head>
<body>
    <canvas width="300px" height="100px">你得u暗器不智灿canvas</canvas>
    <script>
        var mycanvas=document.querySelector('canvas');
        var ctx=mycanvas.getContext('2d');
        ctx.beginPath();
        ctx.strokeRect(0,0,300,100);
        var counter=0;
        var obj={};
        //请求图片
        var arr=['谢谢惠顾.jpg','中将.jpg']
        for(var i=0;i<arr.length;i++){
            var img=new Image();
             img.src=arr[i];
             obj[i]=img
            img.onload=function(){
                counter++;
                if(counter==arr.length){
                    callback(obj)
                }

            }
        }
        function callback(obj){
            var num=Math.ceil(Math.random()*10);
            if(num==8){
               // mycanvas.style.background='ur('+arr[1]+')'
            }else{
                mycanvas.style.background='ur('+arr[0]+')'
            }

        }
    </script>
</body>
</html>

老师 为什么我图片的文字出不来

image.png

WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 58楼

02后台操作cookie.rar

浏览器打印出来的结果是把PHP文件的文本内容

image.png

WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 59楼
WEB前端全系列/第九阶段:HTML5新特性模块/(旧)H5新特性 60楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637