0x06.HelloPHP

发布时间 2023-12-04 18:20:45作者: Tra3r

PHP基础

  • 格式

    最后一句可以不加分号

<?php
  echo "hello"
?>

可以不加结束标签,但是最后一句要加分号

<?php
  echo "hello";

  • 关于双引号和单引号
    1. 双引号可以转译字符,如\n\r等,而单引号会直接输出
    2. 双引号在里面想再包裹双引号,应该把里面的双引号转译或者使用单引号
    3. 双引号中,变量能直接输出。单引号会输出$a
  • 如果需要直接转译,可以这样输出
$b="hello\nworld"
echo -e $b

自写文件上传

<!--创建一个提交表单-->
<!--<form name="form名称" action="请求地址"  method="请求类型" enctype ="multipart/form-data">-->
<!--    <input type="file" name="">-->
<!--    <input type="text" name="">-->
<!--    <input type="submit" value="提交">-->
<!--</form>-->

<form action="" method="post" id="upload-form" enctype="multipart/form-data">
    <input type="file" name="upload">
    <input type="submit" value="Upload">
</form>
客户端提交表单之后,我们会获得一个$_FILES数据
$_FILES['myfile']['name']	获取文件名字
$_FILES['myfile']['type']	获取文件类型
$_FILES['myfile']['size']	获取文件大小
$_FILES['myfile']['tmp_name']	获取临时文件名
$_FILES['myfile']['error']	获取上传文件的错误代码

利用move_uploaded_file(file,newloc)将上传的文件,移动到upload文件夹中


编辑器文件上传

项目下载地址:https://github.com/fex-team/ueditor#ueditor下载editor php utf-8

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Ueditor测试</title>
    <script src="./ueditor/ueditor.config.js">/*引入配置文件*/</script>
    <script src="./ueditor/ueditor.all.js">/*引入源码文件*/</script>
</head>
<body>
	<textarea id="content" rows="10" cols="70" style="border:1px solid #E5E5E5;">55222</textarea>
	<script type="text/javascript">
    	UE.getEditor("content");//实例化编辑器  传参,id为将要被替换的容器。
	</script>
</html>

代码

SQL注入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简单导航栏</title>
    <style>
        /* 添加一些基本的样式,可根据需要进行调整 */
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        nav {
            background-color: #333;
            padding: 10px;
            text-align: center;
        }

        nav a {
            color: white;
            text-decoration: none;
            padding: 10px 20px;
            margin: 0 5px;
            display: inline-block;
        }

        nav a:hover {
            background-color: #555;
        }
    </style>
</head>
<body>

<nav>
    <a href="#">首页</a>
    <a href="#">关于我们</a>
    <a href="#">服务</a>
    <a href="#">联系我们</a>
</nav>

<?php
// 数据库连接配置
$servername = "localhost";
$username = "yourusername";
$password = "yourpassword";
$dbname = "yourdbname";

// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);//输出一条消息并终止脚本执行的函数
}

echo "<p>数据库连接成功</p>";

//执行查询语句
//整个用户可控的变量id
$id = $_GET["id"];
if(!$id){
    echo "id值为空"."<br />";
    exit;
}
// 在这里可以执行数据库查询等操作
$sql = "SELECT * FROM users where id=".$id;
// 执行查询
$result = $conn->query($sql);
// 检查查询是否成功
if ($result === false) {
    die("查询失败: " . $conn->error);
}
// 处理查询结果
if ($result->num_rows > 0) {
    // 输出数据
    while ($row = $result->fetch_assoc()) {
        echo "用户名: " . $row["username"]. " - 密码: " . $row["password"]. "<br>";
    }
} else {
    echo "0 结果";
}



// 关闭数据库连接
$conn->close();
?>

</body>
</html>

普通文件上传

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<h1>文件上传</h1>
<form action="" method="post" id="upload-form" enctype="multipart/form-data">
    <input type="file" name="upload">
    <input type="submit" value="Upload">
</form>

<?php
//$name=$_FILES['upload']['name'];//获取文件名字
//$type=$_FILES['upload']['type'];//获取文件名字
//$size=$_FILES['upload']['size'];//获取文件大小
//$temp=$_FILES['upload']['tmp_name'];//获取临时文件名
//$error=$_FILES['upload']['error'];//获取上传文件的错误代码
//
//echo $name."<br>";
//echo $type."<br>";
//echo $size."<br>";
//echo $temp."<br>";
//echo $error."<br>";
//
//if($type=='image/png'){
//    if(!move_uploaded_file($temp,'./upload/'.$name)) {
//        echo "文件移动失败";
//    }else{
//        echo "文件上传成功";
//        echo './upload/'.$name;
//    }
//}else{
//    echo "文件类型不正确";
//}


if(isset($_FILES['upload'])) {//用于检查是否存在upload字段
    $name = $_FILES['upload']['name'];
    $type = $_FILES['upload']['type'];
    $size = $_FILES['upload']['size'];
    $temp = $_FILES['upload']['tmp_name'];
    $error = $_FILES['upload']['error'];

    echo $name . "<br>";
    echo $type . "<br>";
    echo $size . "<br>";
    echo $temp . "<br>";
    echo $error . "<br>";

    if ($error === UPLOAD_ERR_OK) {//检查文件上传有没有出现错误
        $allowedTypes = ['image/jpeg', 'image/png', 'image/gif']; // 添加其他允许的文件类型

        if (in_array($type, $allowedTypes)) {
            $uploadDir = './upload/';

            if (!file_exists($uploadDir)) {
                mkdir($uploadDir, 0777, true);
            }

            $uniqueName = uniqid() . '_' . $name; // 生成唯一的文件名
            $destination = $uploadDir . $uniqueName;

            if (move_uploaded_file($temp, $destination)) {
                echo "文件上传成功";
                echo $destination;
            } else {
                echo "文件移动失败";
            }
        } else {
            echo "文件类型不正确";
        }
    } else {
        echo "文件上传失败,错误代码:" . $error;
    }
}

?>

</body>
</html>