第22天:安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用

 

 

 

#知识点:

1PHP留言板前后端功能实现

2、数据库创建&架构&增删改查

3、内置超全局变量&HTML&JS混编

4、第三方应用插件&传参&对象调用

 

#章节点

PHP

功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等

技术:输入输出,超全局变量,数据库操作,逻辑架构,包含上传&下载删除;

技术:JS&CSS混用,Cookie,Session操作,MVC架构,ThinkPHP引用等。

JS:内容筹备中......

Java:内容筹备中......

 

 

 

演示案例:

➢ 数据导入-mysql架构&库表列

 

#开发环境:

DW + PHPStorm + PhpStudy + Navicat Premium

DW : HTML&JS&CSS开发

PHPStorm : 专业PHP开发IDE

PhpStudy :Apache MYSQL环境

Navicat Premium: 全能数据库管理工具

 

#数据导入-mysql架构&库表列

1、数据库名,数据库表名,数据库列名

 

 

 

 

 

 

 

 

2、数据库数据,格式类型,长度,键等

 

➢ 数据库操作-mysqli函数&增删改查

 

参考:https://www.runoob.com/php/php-ref-mysqli.html

常用:

mysqli_connect() 打开一个到MySQL的新的连接。

mysqli_select_db() 更改连接的默认数据库。

mysqli_query() 执行某个针对数据库的查询。

mysqli_fetch_row() 从结果集中取得一行,并作为枚举数组返回。

mysqli_close() 关闭先前打开的数据库连接。

MYSQL增删改查:

查:select * from 表名 where 列名='条件';

增:insert into 表名(`列名1`, `列名2`) value('列1值1', '列2值2');

删:delete from 表名 where 列名 = '条件';

改:update 表名 set 列名 = 数据 where 列名 = '条件';

//post提交数据,action发送给谁,留空发送给自己

复制代码
<form id="form1" name="form1" method="post" action="">

    用户名:<input type="text" name="username" maxlength="2000"><br>

    内容:

    <textarea id="content" rows="10" cols="70" name="content" style="border:1px solid #E5E5E5;">
    </textarea>
    <script type="text/javascript">
        UE.getEditor("content");

        //实例化编辑器传参,id为将要被替换的容器。
    </script>


    <input type="submit" name="submit" id="submit" value="提交">

</form>

<?php

$u=@$_POST['username'];
$c=@$_POST['content'];
echo $u;
echo $c;
复制代码

 

 

 

数据库通讯

复制代码
<form id="form1" name="form1" method="post" action="">

    用户名:<input type="text" name="username" maxlength="2000"><br>

    内容:

    <textarea id="content" rows="10" cols="70" name="content" style="border:1px solid #E5E5E5;">
    </textarea>
    <script type="text/javascript">
        UE.getEditor("content");

        //实例化编辑器传参,id为将要被替换的容器。
    </script>


    <input type="submit" name="submit" id="submit" value="提交">

</form>

<?php


$dbip='localhost';
$dbuser='root';
$dbpass='root';
$dbname='demo01';
$con=mysqli_connect($dbip,$dbuser,$dbpass,$dbname);
// 检测连接,如果连接成功输出ok
if (!$con) {
    die('连接错误' . mysqli_connect_error());
}else{
    echo'ok';
}


$u=@$_POST['username'];
$c=@$_POST['content'];
复制代码

 

 

 连接成功后执行写入sql语句

复制代码
<form id="form1" name="form1" method="post" action="">

    用户名:<input type="text" name="username" maxlength="2000"><br>

    内容:

    <textarea id="content" rows="10" cols="70" name="content" style="border:1px solid #E5E5E5;">
    </textarea>
    <script type="text/javascript">
        UE.getEditor("content");

        //实例化编辑器传参,id为将要被替换的容器。
    </script>


    <input type="submit" name="submit" id="submit" value="提交">

</form>

<?php


$dbip='localhost';
$dbuser='root';
$dbpass='root';
$dbname='demo01';
$con=mysqli_connect($dbip,$dbuser,$dbpass,$dbname);
// 检测连接
if (!$con)
{
    die('连接错误' . mysqli_connect_error());
}else{
    $u=@$_POST['username'];
    $c=@$_POST['content'];
    $i=@$_SERVER['REMOTE_ADDR'];
    $ua=@$_SERVER['HTTP_USER_AGENT'];
    $sql="insert into gbook(`username`, `content`,`ipaddr`,`uagent`) value('$u', '$c','$i','$ua');";
    echo $sql;
    mysqli_query($con,$sql );
}

?>
复制代码

 

 

 

 

 

 

 

 

 
 

➢ 数据接收输出-html混编&超全局变量

参考:

https://www.w3school.com.cn/php/php_superglobals.asp

https://www.php.net/manual/zh/language.variables.superglobals.php

$GLOBALS:这种全局变量用于在 PHP 脚本中的任意位置访问全局变量

$_SERVER:这种超全局变量保存关于报头、路径和脚本位置的信息。

$_REQUEST$_REQUEST 用于收集 HTML 表单提交的数据。

$_POST:广泛用于收集提交method="post"HTML表单后的表单数据。

$_GET:收集URL中的发送的数据。也可用于收集提交HTML表单数据(method="get") $_FILES:文件上传且处理包含通过HTTP POST方法上传给当前脚本的文件内容。

$_ENV:是一个包含服务器端环境变量的数组。

$_COOKIE:是一个关联数组,包含通过cookie传递给当前脚本的内容。

$_SESSION:是一个关联数组,包含当前脚本中的所有session内容。

 

新建config,php文件

<?php
$dbip='localhost';
$dbuser='root';
$dbpass='root';
$dbname='demo01';
$con=mysqli_connect($dbip,$dbuser,$dbpass,$dbname);

 

 

留言板文件

复制代码
<?php
include '../config.php';

$sql1 = "select * from gbook";
$data = mysqli_query($con, $sql1);
while ($row = mysqli_fetch_row($data))
{
    echo '<hr>';
    echo '用户名:' . $row[0] . '<br>';
    echo '内容:' . $row[1] . '<br>';
    echo 'IP地址:' . $row[2] . '<br>';
    echo 'UA浏览器:' . $row[3] . '<br>';

}
复制代码

 

 

 

 

 

 

 

 

 

➢ 第三方插件引用-js传参&函数对象调用

 

引用:<script src='../xxx.js'></script>

函数对象调用:

var obj = {

value : 0,

increment : function (inc) {

this.value += typeof inc === 'number' ? inc :1;

//设置inc且为数字时 value=inc 反之 value=1

}

}

obj.increment();

console.log(obj.value); //1

obj.increment(2);

console.log(obj.value); //2

 

posted @   白芳草  阅读(49)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示