> 백엔드 개발 > PHP 튜토리얼 > PHP는 지식질문답변 웹사이트에 질문 작성자 및 답변자 인증 기능을 구현합니다.

PHP는 지식질문답변 웹사이트에 질문 작성자 및 답변자 인증 기능을 구현합니다.

PHPz
풀어 주다: 2023-07-02 12:44:01
원래의
935명이 탐색했습니다.

PHP는 지식 질문답변 웹사이트에 질문 작성자 및 답변자 인증 기능을 구현합니다.

현대 소셜 네트워크에서 지식 질문답변 웹사이트의 인기는 나날이 높아지고 있습니다. 웹사이트의 신뢰성과 사용자 경험을 향상시키기 위해서는 질문 작성자와 답변자를 인증하는 것이 중요한 기능입니다. 이 글에서는 지식질문답변 사이트에서 PHP를 사용하여 질문 작성자 및 답변자 인증 기능을 구현하는 방법을 소개합니다.

먼저 사용자 데이터베이스를 생성하고 사용자 정보를 저장하기 위한 해당 필드를 추가해야 합니다. 이 예에서는 id, 사용자 이름, 이메일, 비밀번호, is_author_verified 및 is_answerer_verified 필드를 사용하여 "users"라는 테이블을 생성했다고 가정합니다.

다음으로 사용자 등록 및 로그인 페이지를 만들어야 합니다. 등록 페이지에서는 사용자가 새 계정을 생성할 수 있으며, 로그인 페이지에서는 등록된 사용자가 로그인하는 데 사용됩니다. 다음은 간단한 등록 페이지 예입니다.

<!DOCTYPE html>
<html>
<head>
    <title>注册</title>
</head>
<body>
    <h2>注册</h2>
    <form method="post" action="register.php">
        <input type="text" name="username" placeholder="用户名" required /><br><br>
        <input type="email" name="email" placeholder="邮箱" required /><br><br>
        <input type="password" name="password" placeholder="密码" required /><br><br>
        <input type="submit" value="注册" />
    </form>
</body>
</html>
로그인 후 복사

등록 페이지에서 양식을 제출한 후 데이터는 "register.php"라는 백엔드 처리 스크립트로 전송됩니다. 다음은 간단한 예입니다.

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

// 获取表单数据
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

// 加密密码
$hashed_password = password_hash($password, PASSWORD_DEFAULT);

// SQL 插入语句
$sql = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$hashed_password')";

// 执行插入操作
$conn->query($sql);

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

// 返回登录页面
header("Location: login.php");
exit();
?>
로그인 후 복사

실제 개발에서는 사용자 입력을 검증하고 SQL 주입을 방지해야 한다는 점에 유의해야 합니다.

다음은 로그인 페이지의 예입니다.

<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
</head>
<body>
    <h2>登录</h2>
    <form method="post" action="login.php">
        <input type="email" name="email" placeholder="邮箱" required /><br><br>
        <input type="password" name="password" placeholder="密码" required /><br><br>
        <input type="submit" value="登录" />
    </form>
</body>
</html>
로그인 후 복사

로그인 페이지 양식은 "login.php"라는 백엔드 처리 스크립트에 데이터를 제출합니다. 다음은 간단한 예입니다.

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

// 获取表单数据
$email = $_POST['email'];
$password = $_POST['password'];

// 查询匹配的用户
$sql = "SELECT * FROM users WHERE email='$email'";
$result = $conn->query($sql);

// 验证密码
$user = $result->fetch_assoc();
if ($user && password_verify($password, $user['password'])) {
    // 登录成功,将用户信息保存在 session 中
    session_start();
    $_SESSION['user_id'] = $user['id'];
    $_SESSION['username'] = $user['username'];
    $_SESSION['email'] = $user['email'];
    $_SESSION['is_author_verified'] = $user['is_author_verified'];
    $_SESSION['is_answerer_verified'] = $user['is_answerer_verified'];

    // 跳转到首页或其他页面
    header("Location: index.php");
    exit();
} else {
    // 登录失败,返回登录页
    header("Location: login.php");
    exit();
}
?>
로그인 후 복사

로그인 성공 후 후속 페이지 액세스 및 인증 제어를 위해 세션에 사용자 정보를 저장합니다.

질문 작성자 및 응답자 인증 기능을 구현하기 위해 사용자 프로필 페이지에 해당 옵션을 추가할 수 있습니다. 다음은 간단한 프로필 페이지 예입니다.

<!DOCTYPE html>
<html>
<head>
    <title>个人资料</title>
</head>
<body>
    <h2>个人资料</h2>
    <p>用户名:<?php echo $_SESSION['username']; ?></p>
    <p>邮箱:<?php echo $_SESSION['email']; ?></p>
    <form method="post" action="verify.php">
        <input type="checkbox" name="is_author" <?php if($_SESSION['is_author_verified']) echo 'checked'; ?>> 作者<br>
        <input type="checkbox" name="is_answerer" <?php if($_SESSION['is_answerer_verified']) echo 'checked'; ?>> 回答者<br>
        <input type="submit" value="保存" />
    </form>
</body>
</html>
로그인 후 복사

프로필 페이지에는 사용자의 사용자 이름과 이메일이 표시되고 확인란을 사용하여 사용자가 작성자 또는 응답자로 인증할지 여부를 선택할 수 있습니다. 양식이 제출되면 데이터는 "verify.php"라는 백엔드 처리 스크립트로 전송됩니다. 다음은 간단한 예입니다.

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

// 获取表单数据
$is_author = isset($_POST['is_author']) ? 1 : 0;
$is_answerer = isset($_POST['is_answerer']) ? 1 : 0;

// 更新用户认证信息
$user_id = $_SESSION['user_id'];
$sql = "UPDATE users SET is_author_verified=$is_author, is_answerer_verified=$is_answerer WHERE id=$user_id";
$conn->query($sql);

// 更新 session
$_SESSION['is_author_verified'] = $is_author;
$_SESSION['is_answerer_verified'] = $is_answerer;

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

// 返回个人资料页面
header("Location: profile.php");
exit();
?>
로그인 후 복사

위 코드는 PHP를 사용하여 지식 질문 및 답변 웹사이트에서 질문 작성자 및 답변자 인증 기능을 구현하는 방법을 보여줍니다. 등록, 로그인, 프로필 페이지 및 인증 제어를 통해 퀴즈 사이트의 신뢰성과 사용자 경험을 향상시킬 수 있습니다. 물론 실제 필요에 따라 더 많은 기능과 보안 메커니즘을 추가할 수 있습니다.

위 내용은 PHP는 지식질문답변 웹사이트에 질문 작성자 및 답변자 인증 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿