2024年7月

玩MC的人应该都知道,这两天官方开了一个MCC 15周年活动。那么众所周知,这里的任务有很多,完成之后可以拿一件超级好看的披风。那么详细的任务列表请看下图:

MCC 15周年任务表.png

反正不整理不知道,一整理吓一跳:这15个任务几乎不可能完成!最终还是选某鱼上让别人帮我完成这些任务吧。

经过了127天,本站最终成功加入了“十年之约”博客组织(在十年之约官网查看)!在此,我也承诺:

即日起,本站除维护,备案,迁移等临时需要关站的情形外,我的博客十年不关闭,并保持更新!(2024年7月21日 - 2034年7月20日)。

十年之后,当我再次看到这篇文章的时候,会在哪里呢?办公室?工地?还是...博士生宿舍?

今天,看到网站归档页面显示:

月份发文数
2024/723
2024/623
2024/521
2024/49
2024/34
总计80

哈哈,之前刚开始搞这个网站的时候,是从没想到这个网站会改变我自己的。假如我不搞这个网站,可能我每天就刷刷快手,虽然快乐,但没什么意义。搞了网站,写上代码,虽然CPU会烧,但是它充实,它有意义啊。

昨天上午到今天上午搞的虚拟备案系统,虽然中途想过放弃,但是当我部署完成的时候,也是成就感满满的。

搞网站的意义可能就在于此吧。

窗外的打雷声突然消失了,知了再次叫起。网站开设126天了,我与各位同在。

今天,基本将虚拟备案系统搭建完成了。在此,再次向晚夜的个人博客致谢!

该网站也搞了一个虚拟备案系统,叫晚备,可以在此处体验。

回归正题:今年第一个光临上海的... 台风,也是正在赶来的路上。

可以看到,今年第3号台风“格美”要到了。台风可以减少夏季干旱,但是带来的雨也是真的多!

希望这场台风可以把大专的录取通知书吹过来吧...

继萌ICP备案之后,一直想搞一个自己的备案系统。今天,终于完成了!

地址:https://icp.mcenahle.net

警告:以下代码经晚夜的个人博客和本人查证,存在一处严重漏洞,不建议继续使用。转到 https://blog.mcenahle.com/2024/07/19/85.html 以下载修复版。

搭建方法:

一、数据库和表

CREATE DATABASE record_system;

USE record_system;

CREATE TABLE records (
    id INT AUTO_INCREMENT PRIMARY KEY,
    site_name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    url VARCHAR(255) NOT NULL,
    site_description TEXT,
    status VARCHAR(50) DEFAULT 'pending',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE admin_users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(255) NOT NULL
);
    INSERT INTO admin_users (username, password) VALUES ('admin', 'admin123');

注意,上面的“admin”和“admin123”是后期登录管理系统的用户名和密码。

二、申请备案页面(record_form.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>申请备案</title>
</head>
<body>
    <h1>申请备案</h1>
    <form action="submit_record.php" method="post">
        <label for="site_name">网站名:</label>
        <input type="text" id="site_name" name="site_name" required><br><br>
        <label for="email">邮箱:</label>
        <input type="email" id="email" name="email" required><br><br>
        <label for="url">网址:</label>
        <input type="url" id="url" name="url" required><br><br>
        <label for="site_description">网站描述:</label>
        <textarea id="site_description" name="site_description" required></textarea><br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

三、处理表单提交(submit_record.php)

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "record_system";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$site_name = $_POST['site_name'];
$email = $_POST['email'];
$url = $_POST['url'];
$site_description = $_POST['site_description'];

$sql = "INSERT INTO records (site_name, email, url, site_description)
VALUES ('$site_name', '$email', '$url', '$site_description')";

if ($conn->query($sql) === TRUE) {
    echo "备案申请提交成功!";
} else {
    echo "提交失败: " . $conn->error;
}

$conn->close();
?>

四、管理员登录页面(admin_login.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>管理员登录</title>
</head>
<body>
    <h1>管理员登录</h1>
    <form action="admin_login.php" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required><br><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required><br><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

五、处理管理员登录请求(admin_login.php)

<?php
session_start();

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "record_system";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "SELECT * FROM admin_users WHERE username='$username' AND password='$password'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $_SESSION['loggedin'] = true;
    header("Location: admin_dashboard.php");
} else {
    echo "用户名或密码错误";
}

$conn->close();
?>

六、管理后台页面(admin_dashboard.php)

<?php
session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
    header("Location: admin_login.html");
    exit;
}

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "record_system";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "SELECT * FROM records";
$result = $conn->query($sql);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>管理后台</title>
</head>
<body>
    <h1>管理后台</h1>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>网站名</th>
            <th>邮箱</th>
            <th>网址</th>
            <th>网站描述</th>
            <th>状态</th>
            <th>创建时间</th>
            <th>操作</th>
        </tr>
        <?php
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['site_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
                echo "<td>" . $row['url'] . "</td>";
                echo "<td>" . $row['site_description'] . "</td>";
                echo "<td>" . $row['status'] . "</td>";
                echo "<td>" . $row['created_at'] . "</td>";
                echo "<td><a href='update_status.php?id=" . $row['id'] . "'>更新状态</a></td>";
                echo "</tr>";
            }
        } else {
            echo "<tr><td colspan='8'>暂无数据</td></tr>";
        }
        ?>
    </table>
</body>
</html>

<?php
$conn->close();
?>

七、更新备案状态(update_status.php)

<?php
session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
    header("Location: admin_login.html");
    exit;
}

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "record_system";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$id = $_GET['id'];

$sql = "UPDATE records SET status='approved' WHERE id='$id'";

if ($conn->query($sql) === TRUE) {
    echo "备案状态更新成功!";
} else {
    echo "更新失败: " . $conn->error;
}

$conn->close();
?>

八、查询备案页面(query_record.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询备案</title>
</head>
<body>
    <h1>查询备案</h1>
    <form action="query_record.php" method="get">
        <label for="email">邮箱:</label>
        <input type="email" id="email" name="email" required><br><br>
        <input type="submit" value="查询">
    </form>
</body>
</html>

九、处理查询请求(query_record.php)

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "record_system";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$email = $_GET['email'];

$sql = "SELECT * FROM records WHERE email='$email'";
$result = $conn->query($sql);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询结果</title>
</head>
<body>
    <h1>查询结果</h1>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>网站名</th>
            <th>网址</th>
            <th>网站描述</th>
            <th>状态</th>
            <th>创建时间</th>
        </tr>
        <?php
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['site_name'] . "</td>";
                echo "<td>" . $row['url'] . "</td>";
                echo "<td>" . $row['site_description'] . "</td>";
                echo "<td>" . $row['status'] . "</td>";
                echo "<td>" . $row['created_at'] . "</td>";
                echo "</tr>";
            }
        } else {
            echo "<tr><td colspan='6'>暂无数据</td></tr>";
        }
        ?>
    </table>
</body>
</html>

<?php
$conn->close();
?>