通过PHP语言实现模拟登录+mysql

通过PHP语言实现模拟登录+mysql

生成验证码

  • 注意:验证码的信息通过session存储
<?php
session_start();
// session开启
// 创建图片imagecreatetruecolor(宽,高);
$image = imagecreatetruecolor(100,30);
// 创建一个背景颜色 imagecolorallocate(图片,红,绿,蓝); 
$bg = imagecolorallocate($image,255,255,255);
// 填充背景颜色 imagefill(图像,x位置,y位置,背景颜色);
imagefill($image,0,0,$bg);
// 声明一个空验证码;
$code = '';
// 验证码4个字符,创建for 动态的添加4个字符
for($i=0;$i<4;$i++){
    $data = "abcdefghijklmnopqrstuvwxyz3456789";//验证码可以显示的字符
    // 随机获取其中一个
    // 截取字符串substr(被截取的字符串,从第几个,截取几个);
    $f = substr($data,rand(0,strlen($data)-1),1);
    $code .=$f;//放入到验证码里面
    //创建文字颜色
    $fcolor = imagecolorallocate($image,0,0,0); //黑色
    // 把 字符写入到图片imagestring(图片,字体大小,x位置,y位置,字符,字体颜色)
    imagestring($image,30,$i*25+10,5,$f,$fcolor);
}
$_SESSION["code"] = $code;//设置session数组 code属性值为 动态4个字符
// 输出图片
header("content-type:image/png");//告诉浏览器,内容是图片类型
imagepng($image); //创建一个张png图片

?>

登录页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>验证码实验</title>
</head>
<body>
    <form action="./conn.php" method="POST">
        用户名: <input type="text" name="name"><br/>
        密码: <input type="password" name="pwd"><br/>
        验证码:<input type="text" style="width: 90px;"   name="code"> 
        <img src="./vad.php" alt=""><br/>
        <input type="submit" value="提交"/>
    </form>
    
</body>
</html>

服务器端

<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据库连接</title>
</head>
<body>
<?php
// 目标:验证验证码
if($_POST["code"]!=$_SESSION["code"]){
    echo '<script>alert("验证码错误");history.back()</script>';
}  

//目标 获取用户名和密码
$name = $_POST["name"];
$pwd =  $_POST["pwd"];
// 查询数据库里面 是否由name 并且对应的是pwd



// 01 连接数据库
// @ 屏蔽错误
// mysql_connect(域名,数据用户名,数据库密码);
// mysql_error() mysql 错误信息
// die() 结束程序
$conn = @mysql_connect("localhost","root","123456");
if(!$conn){
    die("数据库连接失败:".mysql_error());
}else{
    echo "数据库连接成功";
}

// 02 选择数据库 web
// mysql_select_db(数据库的名称,连接资源)
mysql_select_db("web",$conn);

// 03 执行sql语句
// select * from tb_admin 选择到tb_admin 所有的数据
// where 1 条件都为真
//  mysql_query(sql语句);
// where 哪儿(条件) 
// name='$name' 数据库的name字段等于用户发送的name信息
// and 并且
// pwd='$pwd' pwd字段 等于用户输入的pwd字符 通过post发送过来的
$result = mysql_query("select * from tb_admin where name='$name' and pwd='$pwd'");

// 04 输出结果
// mysql_fetch_assoc 取出数据用数组键值对应的形式
// $row 就是取回的一行数据
//  while 当数据取完 $row 结果是false while就结束
// while($row=mysql_fetch_assoc($result)){
//     print_r($row);
//     echo "<br/>";
// }
$row=mysql_fetch_assoc($result);//获取查询的结果
if($row){ //只要有结果用户名和密码是正确
    echo "欢迎回来 $name";
}else{
echo '<script>alert("用户名或密码错误!");history.back()</script    ipt>'; 
}
// 05 关闭mysql 连接
// mysql_close(连接资源)
mysql_close($conn);
?>  
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_40994735/article/details/108131020