zoukankan      html  css  js  c++  java
  • 猜数字案例

    一、方案一:使用post方法(基本版)

    <?php
        if($_SERVER['REQUEST_METHOD']==='GET'){
            //登录网站时,采用的是get的方法
            $num=rand(0,100);
            //不能存在文件中,因为有可能有多个用户使用
            //cookie是每个用户自己本地客户端保存的,每个用户存的都是自己要猜的数字
            setcookie('num',$num);
        }else{
            //用户点击了试一试,采用的是POST的方法
            //$_POST['num']是用户试一试的数字,$_COOKIE['num']是用户要猜的数字
            $result=(int)$_POST['num']-(int)$_COOKIE['num'];
            if($result==0){
                echo '猜对了';
            }elseif($result>0){
                echo '太大了';
            }else{
                echo '太小了';
            }
        }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>猜数字游戏</title>
        <style>
            body{
                padding: 100px 0;
                background-color: #2b3b49;
                color: #fff;
                text-align: center;
                font-size: 2.5em;
            }
            input{
                padding: 5px 20px;
                height: 50px;
                background-color: #3b4b59;
                border: 1px solid #c0c0c0;
                box-sizing: border-box;
                color: #fff;
                font-size: 20px;
            }
            button{
                padding: 5px 20px;
                height: 50px;
                font-size: 16px;
            }
        </style>
    </head>
    <body>
        <h1>猜数字游戏</h1>
        <p>hi,我已经准备了一个0-100的数字,你需要在仅有的10次机会之内猜对它</p>
        <!-- post方法 -->
        <form action="test.php" method="POST">
            <input type="number" min="0" max="100" name="num" placeholder="随便猜">
            <button type="submit">试一试</button>
        </form>
    </body>
    </html>

    二、方案二:使用get方法(完善版)

    • 基本概念的实现
    • 解决10次限制的问题
    • session解决F12可以查看密码的“漏洞”
    <?php
        //开启session
        session_start();
        if(empty($_COOKIE['num'])){
            //登录网站时,产生随机数
            $num=rand(0,100);
            //setcookie('num',$num);
            $_SESSION['num']=$num;
        }else{
            //设置次数限制
            $count=empty($_SESSION['count'])? 0 : (int)$_SESSION['count'];
            if($_COOKIE['count']<10){
                $result=(int)$_GET['num']-(int)$_SESSION['num'];
                if($result==0){
                    $message= '猜对了';
                    //游戏结束,出现开始,删除cookie(一个参数)
                    unset($_SESSION['num']);
                    unset($_SESSION['count']);
                }elseif($result>0){
                    $message= '太大了';
                }else{
                    $message= '太小了';
                }
                $_SESSION['count']=$count+1;
            }else{
                //游戏结束
                $message= '游戏结束';
                unset($_SESSION['num']);
                unset($_SESSION['count']);
            }
        }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>猜数字游戏</title>
        <style>
            body{
                padding: 100px 0;
                background-color: #2b3b49;
                color: #fff;
                text-align: center;
                font-size: 2.5em;
            }
            input{
                padding: 5px 20px;
                height: 50px;
                background-color: #3b4b59;
                border: 1px solid #c0c0c0;
                box-sizing: border-box;
                color: #fff;
                font-size: 20px;
            }
            button{
                padding: 5px 20px;
                height: 50px;
                font-size: 16px;
            }
        </style>
    </head>
    <body>
        <h1>猜数字游戏</h1>
        <p>hi,我已经准备了一个0-100的数字,你需要在仅有的10次机会之内猜对它</p>
        <?php if(isset($message)): ?>
            <p><?php echo $message; ?></p>
        <?php endif ?>
        <!-- GET方法 -->
        <form action="test.php" method="GET">
            <input type="number" min="0" max="100" name="num" placeholder="随便猜">
            <button type="submit">试一试</button>
        </form>
    </body>
    </html>

  • 相关阅读:
    SQLServer2008安装卡在publishing assembly information
    找新朋友
    如何解决:Android中 Error generating final archive: Debug Certificate 的错误
    Open your mind
    A+B Format (20)
    A+B
    1005. Spell It Right (20)
    如何彻底卸载 SQL SERVER
    VC快捷键
    C#之将数据导出到Excel
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9216892.html
Copyright © 2011-2022 走看看