当前位置: 首页 > news >正文

PHP进阶:前后端交互、cookie验证、sql与php

单词:construct 构造        destruct 摧毁        empty  空的        trim 修剪        strip 清除        slash 斜线        special 特殊        char 字符         query 询问

构造方法(魔术方法)

构造方法是一种特殊的函数,用于在创建对象时初始化对象属性。在 PHP 中,构造方法通过 __construct() 实现。以下是一个示例:

class Person{var $name;var $age;var $sex;function __construct($name='老王',$age=18,$sex='女'){$this->name =$name;$this->age =$age;$this->sex =$sex;}
}$ren = new Person("张三",18,"男");

超级全局变量

超级全局变量用于接收前端表单传递的数据。例如,使用 $_GET$_POST 和 $_REQUEST 接收 GET 和 POST 请求的参数。

前端表单示例:

<form action="super_var.php" method="get"><input type="text" name="uname" placeholder="请输入用户名"><br><input type="password" name="pwd" placeholder="请输入密码"><br><input type="submit" value="登录">
</form>

后端接收数据示例:

/isset判断是否存在key为‘uname’和‘pwd’的值
if(isset($_POST['uname'])&&isset($_POST['pwd'])){$name = $_POST['uname'];$pwd = $_POST['pwd'];//empty判断值是否为NULL,为NULL返回值为1if(empty($name)||empty($pwd)){echo "<script>alert('用户名或密码不能为空');history.back();</script>";exit;}//只能包含字母和数字长度大于6小于12的正则表达式,preg_match匹配正则$reg = "/^[a-zA-Z0-9]{6,12}+$/";if(!preg_match($reg,$name)){echo "<script>alert('用户名或密码只能包含字母和数字');history.back();</script>";exit;}echo "<script>alert('登录成功!')</script>";
}

数据清洗

数据清洗是处理用户输入的重要步骤。以下是一些常用的数据清洗函数:

  • trim():去除字符串首尾的空格。
  • stripslashes():去除字符串中的反斜杠。
  • htmlspecialchars():将特殊字符转换为 HTML 实体。
$str = ' NTD 2404 ';
echo '|'.trim($str).'|'; // 输出:|NTD 2404|$str = '\n\N\T\D 2404';
echo stripslashes($str); // 输出:nNTD 2404$str = "<script>alert('hello');</script>";
echo htmlspecialchars($str); // 输出:安全的 HTML 代码

Cookie 和 Session

Cookie 和 Session 用于保存会话状态。

Cookie

Cookie 用于在不同页面间保存用户信息。设置 Cookie:

setcookie('cookie_name','cookie_key',time()+x);

获取 Cookie:

$_COOKIE['cookie_name']

删除 Cookie:

setcookie('cookie_name','',time()-x);

Session

Session 将用户信息存储在服务器上。使用 Session:

session_start();//开启session
$_SESSION['uname'] =$name;//传递参数
$_SESSION['pwd'] =$pwd;

关闭 Session:

unset($_SESSION['uname']);
unset($_SESSION['pwd']);//清空文件中的内容
session_destroy();//销毁session

Session 文件通常存储在 PHPstuby/tmp/tmp 目录下

文件名:sess_8bglllpijuhagji8earq3uo1j1(下划线前为固定值,后缀为sessionID)

PHP与SQL联动

PHP 连接 MySQL | 菜鸟教程 (runoob.com)

//链接数据库
$conn = new mysqli('127.0.0.1','root','root');
if($conn->connect_error){//判断是否链接成功die("连接失败".$conn->connect_error);
}//使用数据库
$conn -> query('use user');//增
$sql = 'insert into persion(name,age) values("王同学",20)';
$conn -> query($sql);//执行成功返回一个boolean值ture//改
$sql = 'update persion set age=30 where name="王同学"';
$conn -> query($sql);//删
$sql = "delete from persion where age<=20";
$conn -> query($sql);//查    fetch_assoc获取结果一次一行
$sql = "select * from persion";
$res = $conn -> query($sql);
while($row = $res->fetch_assoc()){echo "姓名:".$row['name']."年龄:".$row['age']."<br>";
}

查数据时:$res为查询结果集

object(mysqli_result)#2 (5)  { ["current_field"]=> int(0) ["field_count"]=> int(3) ["lengths"]=> NULL ["num_rows"]=> int(5) ["type"]=> int(0) }

  • current_field:当前字段的索引。
  • field_count:结果集中的字段数量。
  • lengths:一个数组,包含了结果集中每个字段的数据长度。
  • num_rows:结果集中的行数。
  • type:结果集的类型。

sql预处理

$sql = "insert into persion(name,age) values (?, ?)";
//生成预处理对象
$stmt = $conn->prepare($sql);
$stmt ->bind_param("si", $name, $age);
$name = "张三";
$age = 18;
$stmt->execute();
$stmt->close();

http://www.lryc.cn/news/407102.html

相关文章:

  • 优思学院|ANOVA方差分析是什么?如何用EXCEL进行计算?
  • Mindspore框架循环神经网络RNN模型实现情感分类|(三)RNN模型构建
  • 深度解读大语言模型中的Transformer架构
  • 安装好anaconda,打开jupyter notebook,新建 报500错
  • C++20之设计模式:状态模式
  • 数据库安全综合治理方案(可编辑54页PPT)
  • 人工智能:大语言模型提示注入攻击安全风险分析报告下载
  • 【购买源码时有许多需要注意的坑】
  • CAS的三大问题和解决方案
  • EDA和统计分析有什么区别
  • CentOS 7 修改DNS
  • PHP基础语法-Part2
  • 数据结构门槛-顺序表
  • 软件测试面试准备工作
  • Java面试八股之后Spring、spring mvc和spring boot的区别
  • linux对齐TOF和RGB摄像头画面
  • 配置linux客户端免密登录服务端linux主机的root用户
  • SpringMVC实现文件上传
  • 计算机实验室排课查询小程序的设计
  • 分享几种电商平台商品数据的批量自动抓取方式
  • mysql面试(五)
  • 微软全球蓝屏带来的思考及未来战争走向
  • 以FastGPT为例提升Rag知识库应用中的检索召回命中率
  • ffmpeg更改视频的帧率
  • 设计模式13-单件模式
  • 怎么给PDF文件加密码?关于PDF文件加密的四种方法推荐
  • GoFly快速开发框架基于Go语言和Vue3开发后台管理附件管理插件包
  • matlab实验:实验六MATLAB 数值计算与符号运算
  • 基于STM32设计的老人摔倒检测系统(4G+华为云IOT)(193)
  • PyTorch和TensorFlow概念及对比