一、注册
要实现的效果:点击注册按钮,能够将数据写进数据库中
效果图:
数据添加后:
代码如下:
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)终于学将数据连接到数据库了,开森~~~~~~