当前位置:首页 > JavaScript

js实现登录注册php

2026-01-31 02:35:55JavaScript

实现登录注册的前后端交互

前端部分(JavaScript)

使用JavaScript处理表单提交,通过AJAX与后端PHP交互。以下是一个简单的登录注册表单处理示例:

// 注册功能
document.getElementById('registerForm').addEventListener('submit', function(e) {
    e.preventDefault();
    const formData = new FormData(this);

    fetch('register.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if(data.success) {
            alert('注册成功');
        } else {
            alert(data.message);
        }
    });
});

// 登录功能
document.getElementById('loginForm').addEventListener('submit', function(e) {
    e.preventDefault();
    const formData = new FormData(this);

    fetch('login.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if(data.success) {
            window.location.href = 'dashboard.php';
        } else {
            alert(data.message);
        }
    });
});

后端部分(PHP)

创建两个PHP文件分别处理登录和注册逻辑。

register.php 处理注册请求:

<?php
header('Content-Type: application/json');

$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

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

// 检查用户名是否已存在
$stmt = $conn->prepare("SELECT id FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->store_result();

if($stmt->num_rows > 0) {
    echo json_encode(['success' => false, 'message' => '用户名已存在']);
    exit;
}

// 插入新用户
$stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $password);

if($stmt->execute()) {
    echo json_encode(['success' => true]);
} else {
    echo json_encode(['success' => false, 'message' => '注册失败']);
}

$conn->close();
?>

login.php 处理登录请求:

<?php
header('Content-Type: application/json');
session_start();

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

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

// 查询用户
$stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();

if($result->num_rows === 0) {
    echo json_encode(['success' => false, 'message' => '用户名不存在']);
    exit;
}

$user = $result->fetch_assoc();

if(password_verify($password, $user['password'])) {
    $_SESSION['user_id'] = $user['id'];
    echo json_encode(['success' => true]);
} else {
    echo json_encode(['success' => false, 'message' => '密码错误']);
}

$conn->close();
?>

数据库准备

创建用户表SQL语句:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

安全注意事项

使用预处理语句防止SQL注入 密码使用password_hash()函数进行哈希存储 前端验证后仍需后端验证 HTTPS协议传输敏感数据 考虑添加CSRF防护措施

前端表单示例

HTML登录注册表单结构:

js实现登录注册php

<!-- 注册表单 -->
<form id="registerForm">
    <input type="text" name="username" placeholder="用户名" required>
    <input type="password" name="password" placeholder="密码" required>
    <button type="submit">注册</button>
</form>

<!-- 登录表单 -->
<form id="loginForm">
    <input type="text" name="username" placeholder="用户名" required>
    <input type="password" name="password" placeholder="密码" required>
    <button type="submit">登录</button>
</form>

以上实现展示了基本的登录注册功能,实际项目中可能需要添加更多功能如邮箱验证、密码重置等。

标签: jsphp
分享给朋友:

相关文章

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php实现排序

php实现排序

PHP 数组排序方法 PHP 提供了多种内置函数用于数组排序,适用于不同的排序需求。以下是常见的排序方法: 按值升序排序 sort() 函数对数组按值升序排序,重置键名(索引数组适用): $num…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php实现异步

php实现异步

PHP 实现异步的方法 PHP 本身是同步执行的脚本语言,但可以通过以下方法模拟异步操作或实现异步效果: 使用多进程(pcntl_fork) 通过 pcntl_fork 创建子进程实现异步,适用于…