网络安全--PHP第一天

目标 熟悉信息传递架构 基于phpstydy-mysql-php

前置条件 需要先在数据库中创建相应的库和表名并配置表的结构

该文件为数据库配置文件 名字为config.php

复制代码
<?php
$dbip = 'localhost';//连接数据库的地址 远程连接需要输入ip等
$dbuser = 'root';//连接数据库的用户
$dbpass = 'root';//连接数据库用户的密码
$dbname = 'demo01';//进入后使用的数据库的表
$con = mysqli_connect($dbip, $dbuser, $dbpass, $dbname);//返回连接的结果 该函数可以连接数据库

?>

复制代码
该文件名字为domo.php 主要是创建方法

<form id="form1" name="form1" method="post" action="">
    <p>用户名: <input type="text" name="username"></p>
    <p>内容:</p>
    <p><textarea name="content"></textarea></p>
    <input type="submit" name="submit" id="submit" value="提交">
</form>


<?php
include 'config.php';//引入数据库连接
//判断连接情况使用if语句

function add_gbook($con)//定义方法
{
    if (!$con) {
        die("连接错误: " . mysqli_connect_error());
    } else {
        //去除垃圾数据(没有用户的数据)
        $u = @$_POST['username'];//拿到 <p>用户名: <input type="text" name="username"></p> 内的数据
        if (isset($u) && trim($u) !== '') {
            //连接成功
            // 使用 null 合并运算符,避免 @ 抑制错误
            //我们使用form表单传数据 通过input里面的username属性找到要传输的数据
            $c = @$_POST['content'];  //拿到 <p><textarea name="content"></textarea></p> 的数据
            $i = @$_SERVER['REMOTE_ADDR'];//拿到连接的IP地址
            $ua = @$_SERVER['HTTP_USER_AGENT'];//拿到连接报文的请求头
            //书写sql语句
            //!!!!!插入表的数据用单引号 而字段名要反引号!!!!!
            $sql = "insert into gbook(`username`,`content`,`ipaddr`,`uagent`) value('$u','$c','$i','$ua');";
            mysqli_query($con, $sql);//执行sql语句
            echo '<script>alert("留言成功")</script>';//里面单引号 外面双引号 反之亦然
        }
    }
}

function show_gbook($con)//定义方法
{
    $sql1 = "select * from gbook";//查询语句
    $data = mysqli_query($con, $sql1);//执行语句 返回结果
    while ($row = mysqli_fetch_array($data)) {//循环输出数据
        echo "<br>";
        printf("%s : %s", $row['username'], $row['content']);//打印数据
    }
}

?>

第三个文件为主要为执行文件 名字为gbook-admin.php 和其他两个文件不在一起 注意看引入路径

复制代码
<?php
include '../config.php';//引入代码(方法)
include '../domo.php';

add_gbook($con);//调用方法

$sql1 = "select * from gbook";//定义查询语句
$data = mysqli_query($con, $sql1);//执行sql语句
while($row = mysqli_fetch_array($data)){//while循环有结果就输出 数据库数据有限
    echo "<br>";//每一次循环 换行
    printf("%s : %s",$row['username'],$row['content']);//循环打印数据
    echo "<a href='gbook-admin.php?delete=$row[username]'>删除</a>";//打印结果后添加删除功能
}

$delstr = @$_GET["delete"];//通过get方法拿到数据 $row[username] 方便后面语句查询
$sql2 = "delete from gbook where username='$delstr';";//定义删除数据语句
if(mysqli_query($con, $sql2) && $delstr != ''){//在数据库执行命令 并确保第一次进入页面不会出现alert删除弹窗
    echo "<script>alert('删除成功')</script>";//弹窗
}


结果页面

展示了信息传输的过程(php开发)

构造好数据 客户端发送消息到网页 网页传输数据到数据库 数据库存储数据 数据库返回数据到网页 网页回消息到客户端

相关推荐
有代理ip1 小时前
成功请求的密码:HTTP 2 开头响应码深度解析
java·大数据·python·算法·php
小天源1 小时前
银河麒麟 V10(x86_64)离线安装 MySQL 8.0
android·mysql·adb·麒麟v10
2501_915921431 小时前
傻瓜式 HTTPS 抓包,简单抓取iOS设备数据
android·网络协议·ios·小程序·https·uni-app·iphone
csj503 小时前
安卓基础之《(20)—高级控件(2)列表类视图》
android
JMchen1233 小时前
Android计算摄影实战:多帧合成、HDR+与夜景算法深度剖析
android·经验分享·数码相机·算法·移动开发·android-studio
小白学大数据4 小时前
实测数据:多进程、多线程、异步协程爬虫速度对比
开发语言·爬虫·python·php
米羊1214 小时前
威胁识别(上)
网络·安全·web安全
白帽子黑客罗哥4 小时前
护网行动中遇到突发安全事件的标准应急响应流程
网络·安全·web安全·计算机·护网行动
恋猫de小郭4 小时前
Flutter 在 Android 出现随机字体裁剪?其实是图层合并时的边界计算问题
android·flutter·ios
2501_915918414 小时前
把 iOS 性能监控融入日常开发与测试流程的做法
android·ios·小程序·https·uni-app·iphone·webview