连接数据库的注册、登录----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)终于学将数据连接到数据库了,开森~~~~~~

原文地址:https://www.cnblogs.com/chenguanai/p/6771261.html