gpt4 book ai didi

php - 登录和注册页面 php 的问题

转载 作者:行者123 更新时间:2023-11-29 11:55:51 25 4
gpt4 key购买 nike

在来这里之前我已经彻底研究了我的主题,但似乎无法弄清楚我的问题。

我有一个 HTML 页面:

<form role="form" action="register.php" method="POST">
<div class="form-group">
<label>First Name:</label>
<input type="text" name="first_name">
</div>
<div class="form-group">
<label>Last Name:</label>
<input type="text" name="last_name">
</div>
<div class="form-group">
<label>Student ID:</label>
<input type="number" name="student_id">
</div>
<div class="form-group">
<label>Email address:</label>
<input type="email" name="email">
</div>
<button type="submit" name="register" value="register">Register</button>
</form>
<form role="form" action="login.php" method="POST">
<div class="form-group">
<label>Email address:</label>
<input type="email" name="email">
</div>
<button type="submit" name="login" value="login">Login</button>
</form>

这个功能和我用 php 编写的登录页面完美地沟通,它检查提交的电子邮件地址是否已存在于 MySQL 数据库中。然后它会将用户指向个人资料页面并且代码自行退出。

我的问题是我的注册页面,我使用与登录页面相同的 MySQL SELECT 函数来检查提交的学生 ID 或电子邮件是否已存在于数据库中,如果存在,将返回到供用户重试的表单:

<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$student_id = $_POST['student_id'];
$email = $_POST['email'];
if (isset($_POST['register'])) {
register($conn, $first_name, $last_name, $student_id, $email);
}
function register($conn, $first_name, $last_name, $student_id, $email) {
$Ssql = "SELECT student_id FROM AidenLocke where student_id = '$student_id'";
$Sresult = mysqli_query($conn, $sql);
if (mysqli_num_rows($Sresult) > 0) {
header('Location: form.html');
} else {
$sql = "INSERT INTO AidenLocke (first_name, last_name, email, student_id)
VALUES ('$first_name', '$last_name', '$email', '$student_id')";

if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br />" . $conn->error;
}
header('Location: profile.php');
}
}

(出于安全原因,我删除了数据库信息,但没有连接问题)

我的主要问题是第二个 if 语句的 else 部分,我的代码不会检查学生 ID 是否已经存在,并且无论我在表单中输入什么信息,都会在数据库中创建一个新条目。

我很困惑,希望有人能给我一个有效的答案,谢谢!

最佳答案

当您查询数据库时,您的变量似乎有一个拼写错误:

$Ssql = "SELECT student_id FROM AidenLocke where student_id = '$student_id'";
^^^^
$Sresult = mysqli_query($conn, $sql);
^^^

也就是说,您使用的是 $sql 而不是 $Ssql

关于php - 登录和注册页面 php 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com