【网安小白成长之路】2.PHP与MySQL交互

这篇具有很好参考价值的文章主要介绍了【网安小白成长之路】2.PHP与MySQL交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🐮博主syst1m 带你 acquire knowledge!

✨博客首页——syst1m的博客💘

🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭

😘《CTF专栏》超级详细的解析,宝宝级教学让你从蹒跚学步到健步如飞🙈

😎《大数据专栏》大数据从0到秃头👽,从分析到决策,无所不能❕

🔥 《python面向对象(人狗大战)》突破百万的阅读量,上过各种各样的官方大型专栏,python面向对象必学之一!🐽

🎉希望本文能够给读者带来帮助,更好地理解这个问题或解决你的困惑🐾

前言

学习PHP与MySQL交互可以更好的为后续的学习做铺垫,可以知道前端与后端之间的一个基本交互原理。

PHP与MySQL交互

一、phpMyAdmin安装

由于现在还没有学习怎么使用指令创建数据,这里我们就用可视化去操作

在小皮面板中点击软件管理找到PHPMyAdmin,安装到网站
【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

二、PHPMyAdmin的使用

1.打开phpMyAdmin

打开 Apache 和 MySQL

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

再用浏览器访问 127.0.0.1/phpMyAdimn4.8.5

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

登录数据库,用户名是 root 密码默认是root

2.新建表数据库

点击左侧列表的新建,进行创建数据库,名称随意,我写的test

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互
【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

创建完成之后就会在左侧的列表中啦
【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

3.添加内容

创建一个表,名字随意,我这是test_1

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

添加userName和userPasd字段,类型选择 TEXT 可以限制一下长度 点击保存

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

插入数据,输入你想要的用户名和密码

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

执行之后点击浏览就会出现刚刚添加的内容

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

三.编写代码

1.HTML代码

写一个简单的登录界面,就两个输入框和一个提交按钮

<!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>
    <!-- action 选择提交的php文件  method 提交方式 -->
    <form action="login.php" method="post">
      <!-- labael 点击跳转到input的输入框 -->
      <label for="userName">用户名:</label>
      <!-- type 文本类型 -->
      <input type="text" id="userName" name="userName" />
      <br />
      <label for="userPasd">密码:</label>
      <input type="password" id="userPasd" name="userPasd" />
      <br />
      <!-- submit 提交 -->
      <input type="submit" value="提交" />
    </form>
  </body>
</html>

2.PHP代码

开头的代码
<?php
// 告诉浏览器这是一个html页面,使用uft-8解码
header("Content-type:text/html; Charset=utf-8");
// 开启session
session_start();
获取表单内容

使用$_POST获取传过来的表单内容

// 获取输入的内容
// trim去除掉两侧的空白或者预定字符
$userName = trim($_POST['userName']);
$userPasd = trim($_POST['userPasd']);
// 判断是否填写了信息
if ($userName == '' || $userPasd == '') {
    // 三秒后刷新到login.html
    header('refresh:3; url=login.html');
    echo '用户名或密码不能为空,将在三秒后跳转回登录页面,请重新登录';
}

if里面的判断不要只写一个 = 号,我之前写的时候漏了给我找了好久才发现

连接数据库
// mysqli_connect('数据库地址', '用户名', '密码', '数据库');
$con = mysqli_connect('localhost', 'root', '123456', 'test');
判断是否成功连接到数据库
// 检查连接状态
if (mysqli_connect_errno()) {
    echo '连接数据库失败' . mysqli_connect_error();
    // 停止执行后面的代码
    exit();
}

mysqli_connect_errno() 检查连接状态

mysqli_connect_error() 可以返回连接失败的原因

与数据进行匹配

翻译一下 选择 * 来自 test_1里面的 userName是否等于提交的用户名 和 userPasd是否等于提交的密码

*是通配符就是选择所有,也可以写成 select userName,userPasd 只选择两个

$sql = "select * from test_1 where userName = '$userName' and userPasd = '$userPasd'";
// 返回的结果
$result = mysqli_query($con, $sql);

mysqli_query(数据库,MySQL语句)

判断返回值是否成功

mysqli_num_rows() 查看内容的行数

如果匹配成功的话返回值的行数就有很多数据,匹配失败的话就是空的

if (mysqli_num_rows($result) > 0) {
    echo "登录成功";
} else {
    header('refresh:3; url=login.html');
    echo '用户名或密码错误,将在三秒后跳转回登录页面,请重新登录';
}
PHP的全部代码
<?php
// 告诉浏览器这是一个html页面,使用uft-8解码
header("Content-type:text/html; Charset=utf-8");
// 开启session
session_start();
// 获取输入的内容
// trim去除掉两侧的空白或者预定字符
$userName = trim($_POST['userName']);
$userPasd = trim($_POST['userPasd']);
// 判断是否填写了信息
if ($userName == '' || $userPasd == '') {
    // 三秒后刷新到login.html
    header('refresh:3; url=login.html');
    echo '用户名或密码不能为空,将在三秒后跳转回登录页面,请重新登录';
}
// 连接数据库
//                     数据库地址   用户名    密码     数据库
$con = mysqli_connect('localhost', 'root', '123456', 'test');
// 检查连接状态
if (mysqli_connect_errno()) {
    echo '连接数据库失败' . mysqli_connect_error();
    // 停止执行后面的代码
    exit();
}
// 查看传入的数据是否与数据库中的相同
$sql = "select * from test_1 where userName = '$userName' and userPasd = '$userPasd'";
// 返回的结果
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
    echo "登录成功";
} else {
    header('refresh:3; url=login.html');
    echo '用户名或密码错误,将在三秒后跳转回登录页面,请重新登录';
}

四、测试是否能成功登录

输入开始时自己在数据库中添加的用户名和密码

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

成功返回的页面

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

失败返回的页面

【网安小白成长之路】2.PHP与MySQL交互,网安小白成长之路(我要变成大佬😎!!),php,mysql,交互

五、总结

代码量稍稍有些多,但是跟着文章一步一步的来,还是很简单易懂的,大体就是使用php接收前端传来的数据,与数据库连接后使用MySQL语句进行数据匹配。如果你还有什么问题的话,可以私信我哦!文章来源地址https://www.toymoban.com/news/detail-852527.html

到了这里,关于【网安小白成长之路】2.PHP与MySQL交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序使用PHP调用后台mysql数据库-小白版

    1.域名备案 首先,需要有一个域名,且这个域名是已经备过案的。(如果小程序不发布正式版只用于线上测试则不影响) 2.后台服务器 其次,需要一个服务器,我这里使用的是宝塔面板,对小白很友好,很方便操作。 也可以买个虚拟主机,一个月几块钱左右,很适合小白弄

    2024年04月14日
    浏览(52)
  • 从小白到大神之路之学习运维第37天---第三阶段---mysql数据库之拓展知识

    拓展知识 目录 一、MySQL数据库目录结构以及存放位置 二、MySQL Enterprise Backup 三、MySQL读写分离器 四、进程和线程 五、CentOS 7 中配置静态 IP     1. 数据库存储目录: MySQL数据库的数据文件存储在指定的数据目录下。MySQL安装时默认数据目录在Linux系统中为/var/lib/mysql,Windows系

    2024年02月08日
    浏览(53)
  • 从小白到大神之路之学习运维第64天--------Zabbix监控mysql、ftp服务以及自定义配置

    第三阶段基础 时  间:2023年7月19日 参加人:全班人员 内  容: Zabbix监控mysql、ftp服务以及自定义   目录 一、Zabbix监控mysql数据库 二、Zabbix监控ftp服务 三、Zabbix自定义监控项       整体zabbix搭建完成,server端huyang1监控自己以及监控huyang3,切基于lamp平台,服务均开启 服

    2024年02月16日
    浏览(62)
  • 前端注册登录页面数据库交互(h5+css+php+mysql+axios)

    一个登录注册界面,并使用前端数据库实现登陆注册功能  首先是index.html 直接在index.html里面写了用axios,实现注册和登录 效果图 登录注册滑动实现 script.js style.css 然后是登录和注册的php login.php register.php

    2024年02月11日
    浏览(45)
  • 我的“测试开发”成长之路

    我相信,有很多测试人员会不断问自己,自己到底要不要坚持做测试,测试的职业发展到底怎么样?如果你还在迷茫,在到处找各种大牛问类似的问题,我希望这篇文章,你看完能够结束你的这个烦恼,给你更多的指明方向,当然也有更多的压力。        这个问题,就像

    2024年02月02日
    浏览(69)
  • Dockerfile成长之路

    随着业务架构的整改,针对非容器化业务全部进行容器化改造,这就设计到了java写的业务代码构建业务镜像,并通过k8s发版,因此,就得学习如何使用dockerfile构建后端业务镜像,可能不止构建后端代码镜像,例如前端写的代码也有可能构建为镜像。还有可能就是要在原有镜像基础上进

    2024年01月24日
    浏览(49)
  • Android程序员成长之路

    应该热爱学习Android知识 具备基本的自学能力和解决问题的能力 具备实践能力 Java(基本) C/C++(进阶) Kotlin(基本) Python(可选) 飞书学习路线图 学习路线图正在完善中... 当然读者也可以提出宝贵建议。 我将会按照 Android学习路线图 发布博客文章。 因本人才疏学浅,博客文章中难

    2024年02月09日
    浏览(45)
  • 一个女程序员的成长之路

    2013年大学毕业了,带着迷茫与好玩,我还年轻的心态,开始在郑州寻觅工作机会,最后很荣幸的在一家小公司入职了,工作的内容是给种植大棚的用户打电话,推销农药。每天就是在网上各种农业平台上面找号码,打电话, 一天拨打电话的在四十个左右,却累的都说不出话

    2024年02月14日
    浏览(57)
  • Spring成长之路—Spring MVC

            在分享SpringMVC之前,我们先对MVC有个基本的了解。MVC(Model-View-Controller)指的是一种软件思想,它将软件分为三层:模型层、视图层、控制层         模型层即Model: 负责处理具体的业务和封装实体类,我们所知的service层、pojo都属于模型层         视图层即view:

    2024年01月21日
    浏览(48)
  • 助力成长的开源项目 —— 筑梦之路

    免费的闯关式 SQL 自学教程网站,从 0 到 1 带大家掌握常用 SQL 语法,目前一共有 30 多个关卡,希望你在通关的时候,变身为一个 SQL 高手。除了闯关模式之外,这个项目支持自由选择关卡、自定义关卡、SQL 在线练习广场等功能,方便自由地查漏补缺。 GitHub 地址→GitHub - li

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包