安全开发--php留言板

数据导入

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

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

创建数据库

php连接数据库

常用
mysqli_connect()	打开一个到MySQL的新的连接。
mysqli_select_db()	更改连接的默认数据库。
mysqli_query()	执行某个针对数据库的查询。
mysqli_fetch_row()	从结果集中取得一行,并作为枚举数组返回。
mysqli_close()	关闭先前打开的数据库连接。

html,php混编

html在php中运行

<?php
   echo '<script>alert('x');</script>'
?>

超全局变量

$GLOBALS:这种全局变量用于在 PHP 脚本中的任意位置访问全局变量
$_SERVER:这种超全局变量保存关于报头、路径和脚本位置的信息。
$_REQUEST:$_REQUEST 用于收集 HTML 表单提交的数据。
$_POST:广泛用于收集提交method="post" 的HTML表单后的表单数据。
$_GET:收集URL中的发送的数据。也可用于收集提交HTML表单数据(method="get") $_FILES:文件上传且处理包含通过HTTP POST方法上传给当前脚本的文件内容。
$_ENV:是一个包含服务器端环境变量的数组。
$_COOKIE:是一个关联数组,包含通过cookie传递给当前脚本的内容。
$_SESSION:是一个关联数组,包含当前脚本中的所有session内容。

第三方插件引用-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

mysql命令

查:select * from 表名 where 列名='条件';
增:insert into 表名(`列名1`, `列名2`) value('列1值1', '列2值2');
删:delete from 表名 where 列名 = '条件';
改:update 表名 set 列名 = 数据 where 列名 = '条件';

get和post请求的差别

参考:https://blog.csdn.net/qq_43588129/article/details/115218995

          https://blog.csdn.net/m0_71808387/article/details/136835007

测试代码

整块代码编写

<form id="form1" name="form1" method="post" action="" >
    用户名:<input type="text" name="username"><br>
    内容:<textarea name="content" style="border"> </textarea><br>
    <input type="submit" name="submit" id="submit" value="提交"> </form>
<?php
$dbip = "localhost";
$dbuser = "root";
$dbpass = "root";
$dbname = "zx";
$ok = "ok";
$con = mysqli_connect($dbip, $dbuser, $dbpass, $dbname);

if (!$con) {
    die("连接错误:" . mysqli_connect_error());
} else {
    $u = @$_POST['username'];
    if (isset($u)) {     
        // 检查用户名是否为空
        if (trim($u) == '') {
            echo "<script>alert('用户名不能为空!');</script>";
        } else {
            $c = @$_POST['content'];
            $i = @$_SERVER['REMOTE_ADDR'];
            $ui = @$_SERVER['HTTP_USER_AGENT'];
            $sql = "INSERT INTO gbook(`username`, `content`, `ipaddr`, `uagent`) VALUES ('$u', '$c', '$i', '$ui')";
            
            if (mysqli_query($con, $sql)) {
                echo "<script>alert('留言成功!')</script>";
                $sql = "SELECT * FROM gbook";
                $data = mysqli_query($con, $sql);
                
                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>';
                }  
            } else {
                echo "<script>alert('留言失败!')</script>";
            }
        }
    }
}
?>

拆开文件编写

 admin.php

<script src="/ueditor/ueditor.config.js">/*引入配置文件*/</script>
<script src="/ueditor/ueditor.all.js">/*引入源码文件*/</script>

<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
include 'config.php';

function add_gbook($con){
    if (!$con) {
        die("连接错误:" . mysqli_connect_error());
    } else {
        $u = @$_POST['username'];
        if (isset($u)) {     
            // 检查用户名是否为空
            if (trim($u) == '') {
                echo "<script>alert('用户名不能为空!');</script>";
            } else {
                $c = @$_POST['content'];
                $i = @$_SERVER['REMOTE_ADDR'];
                $ui = @$_SERVER['HTTP_USER_AGENT'];
                $sql = "INSERT INTO gbook(`username`, `content`, `ipaddr`, `uagent`) VALUES ('$u', '$c', '$i', '$ui')";
                
                if (mysqli_query($con, $sql)) {
                    echo "<script>alert('留言成功!')</script>";
                }
            }
        }
    }        
}

function show_gbook($con,$del){
    $sqll = "SELECT * FROM gbook";
    $data = mysqli_query($con, $sqll);                
    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>';
            if($del == 'del'){
                echo "<a href='gbook.php?del=$row[0]'>删除</a>";
            }
    }  
}    

add_gbook($con);
show_gbook($con,'x');
    

config.php

<?php
$dbip = "localhost";
$dbuser = "root";
$dbpass = "root";
$dbname = "zx";
$ok = "ok";
$con = mysqli_connect($dbip, $dbuser, $dbpass, $dbname);
?>

gbook.php

<?php
include 'config.php';
include 'admin.php';
show_gbook($con,'del');
// $sqll = "SELECT * FROM gbook";
// $data = mysqli_query($con, $sqll);                
// 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>';
//     echo "<a href='gbook.php?del=$row[0]'>删除</a>";
// }
$delstr=@$_GET['del'];
if(isset($delstr)){
    $sql2="delete from gbook where username = '$delstr';";
    if(mysqli_query($con,$sql2)){
        echo "<script>alert('删除成功!')</script>";
    }
}  
?>

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值