标签:info mysqli 运算 login bsp 对话 cti 布尔 val
1、先做一个登陆界面
<form action="chuli.php" method="post"> <div>用户名:<input type="text" name="uid" /></div> <div>密码:<input type="text" name="pwd" /></div> <div><input type="submit" name="" value="确定" /></div> </form>
2、访问数据库进行账号密码验证(拿用户名查密码,再进行验证)
$uid = $_POST["uid"]; $pwd = $_POST["pwd"]; $db = new MySQLi("localhost","root","159357","shuiguo"); $sql = "select password from login where username=‘{$uid}‘"; //当用此方法时会出现不输入数据就能直接登录,所以要加if判断密码不等于空 $reslut = $db->query($sql); $n = $reslut->fetch_row(); if($uid !="" && $pwd != "") //判断用户名跟密码不等于空 { if($n[0]==$pwd) //当用此方法时会出现不输入数据就能直接登录,所以要加if判断密码不等于空 { header("location:main.php"); } else { echo "用户名或密码错误!"; } } else { echo "用户名密码不能为空"; }
3、登录后跳转到主页:通过查数据库里面的内容,返回一张表、增加操作列(删除)
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
<td>操作</td>
</tr>
<?php
$db = new MySQLi("localhost","root","159357","renyuanxinxi");
$sql = "select * from info";
$result = $db->query($sql);
$attr = $result->fetch_all();
foreach($attr as $v)
{
$sex = $v[2]?"男":"女"; //三维运算符
$name = NationName($v[3]);
/*$sname = "select name from nation where code=‘{$v[3]}‘"; //根据民族代号查询民族名称
$rname = $db->query($sname); //执行返回rname结果集
$aname = $rname->fetch_row();*/ //返回数组aname 里面存民族名称 查到了一个
echo "<tr>";
echo "<td>{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$sex}</td>
<td>{$name}</td>
<td>{$v[4]}</td>
<td><a href=‘shanchu.php?c={$v[0]}‘ onclick=\"return confirm(‘主人真的不要我了吗?‘)\">删除</a></td>";
//传主键值c,根据主键值删除数据
//confirm 带确定的对话框(如果用户点确定就返回true 点取消就返回false) // \反斜杠 转义字符
//第一种方法:直接写<td>
/*foreach($v as $v1) //第二种方法:用循环代替<td>
{
echo "<td>{$v1}</td>";
}
echo "</tr>";*/
}
function NationName($code) //如果觉得上面写的比较乱,可以用封装 //给一个民族代号返回民族名称
{
$db = new MySQLi("localhost","root","159357","renyuanxinxi");
$sql = "select name from nation where code=‘{$code}‘";
$result = $db->query($sql);
$attr = $result->fetch_row();
return $attr[0];
}
?>
</table>
<a href="add.php"><input type="button" value="点我添加" /></a>
4、删除操作(根据主键值来进行单条删除)
<?php $code = $_GET["c"]; $db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "delete from info where code=‘{$code}‘"; $r = $db->query($sql); if($r) { header("location:main.php"); } else { echo "删除失败!"; }
5、做一个添加页面(民族列访问数据库,创建下拉列表)
<form action="addchuli.php" method="post">
<div>代号:<input type="text" name="code" /></div>
<div>姓名:<input type="text" name="name" /></div>
<div>性别:
<input type="radio" name="sex" value="1" checked="checked" />男
<input type="radio" name="sex" value="0" />女
</div>
<div>民族:
<select name="nation">
<?php
$db = new MySQLi("localhost","root","159357","renyuanxinxi");
$sql = "select * from nation"; //查找民族信息
$result = $db->query($sql);
$result = fetch_all();
foreach($attr as $v)
{
echo "<option value=‘{$v[0]}‘>{$v[1]}</option>"; //所有表单提交的是value值
}
?>
</select>
</div>
<div>生日:<input type="text" name="birthday" /></div>
<div><input type="submit" value="添加"</div>
</form>
6、设置添加页面,更加人性化(用户不知道怎么填,可以做选择等)
$code = $_POST["code"]; $name = $_POST["name"]; $sex = $_POST["sex"]; $nation = $_POST["nation"]; $birthday = $_POST["birthday"]; $db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "insert into info values(‘{$code}‘,‘{$name}‘,{$sex},‘{$nation}‘,‘{$birthday}‘)"; //‘{$name}‘字符串往布尔型里面扔永远是true $db->query($sql); header("location:main.php"); //在添加性别与民族的时候要写 1或者0 民族代号
小插曲(sql注入攻击)
sql语句代码 $sql = "select count(*) from login where username=‘{$uid}‘ and password=‘{$pwd}‘" 用特定字符串登录 a‘ or ‘1‘=‘1 解决方法 针对php来说: 1、优化语句 2、处理用户输入内容,用函数判断有无特殊符号 3、PDO方法:分两次发送
标签:info mysqli 运算 login bsp 对话 cti 布尔 val
原文地址:http://www.cnblogs.com/u1020641/p/6012439.html