PHP新手入门必读知识大全(第二卷)

简介: 教程来源 https://app-ac8abncezqpt.appmiaoda.com/ 本文系统讲解PHP核心开发技术:涵盖表单交互(GET/POST区别与安全处理)、MySQL数据库操作(PDO连接、预处理CRUD、密码哈希)、会话管理、面向对象编程及异常处理,强调XSS防护、SQL注入防范等安全实践。

四、PHP与Web页面交互
4.1 表单数据处理
PHP与Web页面的交互主要通过表单实现。表单可以使用GET或POST方法提交数据:

<!-- form.html -->
<!DOCTYPE html>
<html>
<body>
<h2>用户登录</h2>
<form action="login.php" method="post">
    <label>用户名:</label>
    <input type="text" name="username"><br>
    <label>密码:</label>
    <input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>
</body>
</html>
<?php
// login.php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = htmlspecialchars($_POST['username']);
    $password = $_POST['password'];

    echo "欢迎,{$username}!";
    // 实际应用中这里会验证用户名密码
}
?>

4.2 GET与POST的区别
GET方法:

数据附加在URL后面传输(如 login.php?username=admin)

有长度限制(约2048字符)

不适合传输敏感信息(密码等)

适用于搜索、分页等操作

POST方法:

数据在HTTP请求体中传输

无长度限制

相对更安全

适用于登录、注册、文件上传等

4.3 数据安全处理
在处理用户输入时,安全永远是第一位的。以下是一些基本的安全实践:

<?php
// 防止XSS攻击
$userInput = $_POST['comment'];
$safeInput = htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');

// 验证邮箱格式
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "邮箱格式正确";
} else {
    echo "无效的邮箱格式";
}
?>

五、PHP与MySQL数据库操作
5.1 连接数据库
PHP支持多种方式操作MySQL数据库,推荐使用PDO(PHP Data Objects)扩展,它提供了统一的接口来访问多种数据库:

<?php
$host = 'localhost';
$dbname = 'test';
$username = 'root';
$password = '';

try {
    // 创建PDO连接
    $pdo = new PDO(
        "mysql:host=$host;dbname=$dbname;charset=utf8mb4",
        $username,
        $password,
        [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
        ]
    );
    echo "数据库连接成功";
} catch (PDOException $e) {
    die("数据库连接失败:" . $e->getMessage());
}
?>

5.2 执行CRUD操作
CRUD(创建、读取、更新、删除)是数据库操作的基本功能。使用预处理语句可以有效防止SQL注入攻击:

<?php
// 查询数据(使用预处理语句)
$stmt = $pdo->prepare("SELECT * FROM users WHERE age > :age");
$stmt->execute(['age' => 18]);
$users = $stmt->fetchAll();

foreach ($users as $user) {
    echo $user['username'] . ' - ' . $user['email'] . '<br>';
}

// 插入数据
$sql = "INSERT INTO users (username, email) VALUES (:username, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
    'username' => '王五',
    'email' => 'wangwu@example.com'
]);

// 更新数据
$sql = "UPDATE users SET email = :email WHERE username = :username";
$stmt = $pdo->prepare($sql);
$stmt->execute([
    'email' => 'newemail@example.com',
    'username' => '王五'
]);

// 删除数据
$sql = "DELETE FROM users WHERE username = :username";
$stmt = $pdo->prepare($sql);
$stmt->execute(['username' => '王五']);
?>

5.3 数据库操作最佳实践
始终使用预处理语句:防止SQL注入攻击

处理异常情况:使用try-catch捕获数据库错误

关闭连接:脚本执行结束后自动关闭,但也可以手动关闭:$pdo = null;

密码安全:使用password_hash()函数存储密码哈希值

<?php
// 安全的密码处理
$password = "user123";
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// 验证密码
if (password_verify($inputPassword, $hashedPassword)) {
    echo "密码正确";
}
?>

六、PHP高级特性
6.1 会话管理
PHP通过Session和Cookie来维护用户状态。Session数据存储在服务器端,Cookie存储在客户端:

<?php
// 启动会话
session_start();

// 设置会话变量
$_SESSION['user_id'] = 123;
$_SESSION['username'] = '张三';

// 设置Cookie(有效期1小时)
setcookie('remember_me', 'token_value', time() + 3600, '/');

// 读取会话
if (isset($_SESSION['username'])) {
    echo "欢迎回来," . $_SESSION['username'];
}

// 销毁会话
session_unset();
session_destroy();
?>

6.2 面向对象编程
PHP支持面向对象编程(OOP),可以通过类和对象来组织代码:

<?php
// 定义类
class User {
    // 属性
    private $name;
    private $email;

    // 构造函数
    public function __construct($name, $email) {
        $this->name = $name;
        $this->email = $email;
    }

    // 方法
    public function introduce() {
        return "我叫{$this->name},邮箱:{$this->email}";
    }

    // 静态方法
    public static function createGuest() {
        return new self("访客", "guest@example.com");
    }
}

// 创建对象
$user1 = new User("李四", "lisi@example.com");
echo $user1->introduce();

// 调用静态方法
$guest = User::createGuest();
?>

6.3 错误处理与异常
使用异常处理机制可以更好地管理错误:

<?php
function divide($a, $b) {
    if ($b == 0) {
        throw new Exception("除数不能为零");
    }
    return $a / $b;
}

try {
    $result = divide(10, 0);
    echo "结果是:" . $result;
} catch (Exception $e) {
    echo "捕获到异常:" . $e->getMessage();
} finally {
    echo "无论是否异常都会执行";
}
?>

来源:
https://app-ac8abncezqpt.appmiaoda.com/

相关文章
|
10天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
5472 13
|
18天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
21803 117
|
14天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
8297 8

热门文章

最新文章