用户注册和登录是网站开发最基本的功能模块之一,现在通过登录处理程序代码来学些下php对mysql的基本操作。
本身没有难点,主要是作为开发人员,应该能做到手写这些基本代码,算是自己加强记忆,同时希望能给初学者一些参考借鉴。
php连接MySQL数据库服务器的时候,有三种主要的API可供选择:
PHP的MySQL扩展
PHP的mysqli扩展
PHP数据对象(PDO)
<?php
//接收用户登录窗口输入数据
$username = $_POST['username'];
$password = $_POST['password'];
//连接数据库
$conn = mysql_connect('dbip','dbuser','dbpassword');
if(!$conn){
dir('连接失败'.mysql_errno());
}
//设置访问库编码方式
mysql_query("set names utf8",$conn) or dir(设置编码失败'.mysql_errno());
//选择数据库
mysql_select_db("dbname",$conn) or dir('选择数据库失败'.mysql_errno());
//发送sql语句,注意预防sql注入
$sql = "select password,nickname from tb_user where username='$username'";
$res = mysql_query($sql,$conn);
//如果有数据
if($row = mysql_fetch_assoc($res)){
//判断密码
if($password == md5($row['password'])){
//合法用户
$nickname = $row['nickname'];
header("Location:success.php?nickname=$nickname");
exit();
}
}
//用户或者密码错误
//现在的网站不再具体提示用户是用户名错还是密码错,避免黑客有针对性破解密码
header("Location:failed.php");
exit();
//还需考虑关闭资源和连接,注意安排代码位置
//mysql_free_result($res);
//mysql_close($conn);
?>
其它知识:
如果是列表页,显示多条记录
if($row = mysql_fetch_assoc($res))相应修改为 while($row = mysql_fetch_assoc($res)) 。