zoukankan      html  css  js  c++  java
  • 连接数据库的注册、登录----2017-04-26

    一、注册

    要实现的效果:点击注册按钮,能够将数据写进数据库中

    效果图:

    数据添加后:

    代码如下:

    html代码:

    <body>
    <form method="post" action="zhuce.php">
    <h2>注册页面</h2>
    <div>用户名:</div><input type="text" name="name" /><br />
    
    <div>密码:</div> <input type="text" name="pwd" /><br />
    
    <div>性别:</div> 
     男:<input type="radio" name="sex"  value="1"/> 女:<input type="radio" name="sex" value="0"/>
    
    
    <div>生日:</div> <input type="text" name="birthday" /><br />
    
    <input type="submit" value="注册"/>
    
    </form>
    
    </body>

    php代码:

    <?php
    //取数据
    $name = $_POST["name"];
    $pwd = $_POST["pwd"];
    $sex = $_POST["sex"];
    $birthday = $_POST["birthday"];
    
    //向数据库写入
    
    $db = new MySQLi("localhost","root","123","hw_0408");
    $sql = "insert into zhuce values ('{$name}','{$pwd}',{$sex},'{$birthday}')";    //{$sex}没有单引号,因为是整型
    if( $db->query($sql))
    {
        echo "success";
        
        }
    else
    {
        echo "failed";
        }
    
    
    ?>

    二、登录

    html代码:

    <body>
    <form action="denglu.php" method="post">
    <div>姓名:</div> <input type="text" name="name" />
    <div>密码:</div>  <input type="password" name="pwd" /> <br />
    
    <input type="submit" value="登录"/>
    
    </form>

    php代码:

    第一种:

    <?php
    header("Content-type:text/html;charset=utf-8");       //改变编码格式,使中文正常输出
    $name = $_POST["name"];
    $pwd = $_POST["pwd"];
    
    $db = new MySQLi("localhost","root","123","hw_0408");
    $sql = "select count(*) from zhuce where name='{$name}' and psd='{$pwd}'";
    $result = $db->query($sql);
    $arr =  $result->fetch_row();
    
    if($arr[0])
    {
        echo "登录成功";
        }
    else
    {
        echo "登录失败";
        }
    
    ?>

     缺点:当用户名为  a' or 1=1 #  时,不用输入密码也可以成功登陆;

    避免sql遭到攻击的几种方法:

    (1)过滤用户的输入

    (2)改变程序的方式

    (3)通过预处理软件

     第二种:

    <?php
    $name = $_POST["name"];
    $pwd = $_POST["pwd"];
    
    $db = new MySQLi("localhost","root","123","hw_0408");
    $sql = "select psd from zhuce where name='{$name}'";
    $result = $db->query($sql);
    $arr =  $result->fetch_row();
    if($arr[0]==$pwd && !empty($pwd))            
    {
        echo "登录成功";
        }
    else
    {
        echo "登录失败";
        }
    
    
    ?>

     重点:

    (1)如何取数据,注意取数据的语句格式 _get(有长度限制,地址栏可见)/_post(地址栏不可见,采用);

    (2)如何向数据库中写入数据(insert);

    (3)判断用户名与密码是否与数据库匹配时,注意有没有漏洞;

    (4)终于学将数据连接到数据库了,开森~~~~~~

  • 相关阅读:
    面向对象(metaclass继承高级用法)
    建表和删表(sqlalchemy框架)
    单表操作
    认证,权限
    协程,twisted
    定制起始url(scrapy_redis)
    浅谈深度优先和广度优先(scrapy-redis)
    scrapy-redis(调度器Scheduler源码分析)
    scrapy-redis
    xpath
  • 原文地址:https://www.cnblogs.com/chenguanai/p/6771261.html
Copyright © 2011-2022 走看看