如何利用PHP源码实现签到功能?

php,,`,,这段代码通过使用会话($_SESSION`)来跟踪用户的签到状态。当用户访问页面时,它会检查今天的日期是否与上次签到的日期相同。如果不同,则将今天设置为新的签到日期并显示”签到成功!”;如果相同,则显示”今天已经签到过了!”。,,这只是一个简单的示例,实际应用中可能需要更多的功能和逻辑。还需要确保适当的安全性措施,例如防止重复提交和保护敏感数据。

1、创建一个名为config.php的文件,用于存储数据库连接信息:

如何利用PHP源码实现签到功能?

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn>connect_error) {
    die("连接失败: " . $conn>connect_error);
}
?>

2、创建一个名为register.php的文件,用于用户注册:

<?php
include 'config.php';
if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
    if ($conn>query($sql) === TRUE) {
        echo "注册成功";
    } else {
        echo "Error: " . $sql . "<br>" . $conn>error;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>用户注册</title>
</head>
<body>
    <form method="post" action="">
        用户名: <input type="text" name="username"><br>
        密码: <input type="password" name="password"><br>
        <input type="submit" name="submit" value="注册">
    </form>
</body>
</html>

3、创建一个名为login.php的文件,用于用户登录:

<?php
session_start();
include 'config.php';
if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = $conn>query($sql);
    if ($result>num_rows > 0) {
        $_SESSION['username'] = $username;
        header("Location: index.php");
    } else {
        echo "用户名或密码错误";
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
    <form method="post" action="">
        用户名: <input type="text" name="username"><br>
        密码: <input type="password" name="password"><br>
        <input type="submit" name="submit" value="登录">
    </form>
</body>
</html>

4、创建一个名为index.php的文件,用于显示签到页面:

<?php
session_start();
include 'config.php';
if (!isset($_SESSION['username'])) {
    header("Location: login.php");
}
if (isset($_POST['signin'])) {
    $date = date("Ymd");
    $username = $_SESSION['username'];
    $sql = "INSERT INTO signin (username, date) VALUES ('$username', '$date')";
    if ($conn>query($sql) === TRUE) {
        echo "签到成功";
    } else {
        echo "Error: " . $sql . "<br>" . $conn>error;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>签到</title>
</head>
<body>
    <h1>欢迎 <?php echo $_SESSION['username']; ?></h1>
    <form method="post" action="">
        <input type="submit" name="signin" value="签到">
    </form>
    <a href="logout.php">退出登录</a>
    <a href="records.php">查看签到记录</a>
</body>
</html>

5、创建一个名为logout.php的文件,用于退出登录:

如何利用PHP源码实现签到功能?

<?php
session_start();
session_destroy();
header("Location: login.php");
?>

6、创建一个名为records.php的文件,用于查看签到记录:

<?php
session_start();
include 'config.php';
if (!isset($_SESSION['username'])) {
    header("Location: login.php");
}
$username = $_SESSION['username'];
$sql = "SELECT * FROM signin WHERE username='$username'";
$result = $conn>query($sql);
?>
<!DOCTYPE html>
<html>
<head>
    <title>签到记录</title>
</head>
<body>
    <h1>签到记录</h1>
    <table border="1">
        <tr>
            <th>用户名</th>
            <th>日期</th>
        </tr>
        <?php while ($row = $result>fetch_assoc()): ?>
            <tr>
                <td><?php echo $row['username']; ?></td>
                <td><?php echo $row['date']; ?></td>
            </tr>
        <?php endwhile; ?>
    </table>
    <a href="index.php">返回首页</a>
</body>
</html>

注意:这个示例代码没有包含数据表的创建,你需要在MySQL数据库中创建相应的数据表,可以使用以下SQL语句创建:

CREATE TABLE users (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(30) NOT NULL,
    password VARCHAR(30) NOT NULL
);
CREATE TABLE signin (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(30) NOT NULL,
    date DATE NOT NULL
);

小伙伴们,上文介绍了“php签到 源码”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1136822.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-03 09:35
下一篇 2024-10-03 09:36

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入