gpt4 book ai didi

PHP - 显示数据库数据的登录表单

转载 作者:搜寻专家 更新时间:2023-10-30 23:39:03 24 4
gpt4 key购买 nike

我正在做一个项目。有 4 个文件:loginMHSmanageLoginMHS(可选)、inputPerwaliandb

db 中,程序将连接到数据库。这是代码:

<?php
$link = mysqli_connect("localhost", "root", NULL, "perwalian");

if (mysqli_connect_errno()) {
die("Connect Error : " . mysqli_connect_error());
}
?>

loginMHS 中,用户应该输入他们的 NRP (varchar) 和密码。这是代码:

<?php
session_start();
?>

<form action="manageLoginMHS.php?act=login" method="POST">
NRP: <input type="text" name="unrp"/><br />
Password: <input type="password" name="upass"/><br />
<input type="submit" value="LOGIN"/>
</form>

我将 manageLoginMHS 用作辅助文件。来自 loginMHS 的 NRP 和 varchar 将被检查。如果用户不输入 NRP,程序会显示消息“输入 perwalian belum dapat diakses saat ini”。我真的需要这个文件吗?或者,我只能使用 2 个文件(loginMHSinputPerwalian)?

<?php
require './db.php';
session_start();
$act = $_GET['act'];

switch ($act) {
case "login":
$nrp = $_POST['unrp'];
$pass = $_POST['upass'];

$sql = "select * from mahasiswa where nrp = '" . $nrp . "'";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);

if(isset($_POST['unrp'])){
if(empty($nrp)){
echo "<br /> Input perwalian belum dapat diakses saat ini"
. "<br />";
}
else {
header('Location: inputPerwalian.php');
}
}

if(mysqli_num_rows($result) > 0) {
if($pass == $row['password'] && $nrp == $row['nrp']) {
$_SESSION['login'] = TRUE;
header("Location: inputPerwalian.php");
}
else {
echo "Invalid Password";
}
}
else {
echo "User not found";
}
break;
default:
die("Unknown");
}
?>

然后程序将显示来自数据库的 inputPerwalian 中的数据,这些数据具有相同的 NRP 和 varchar。这是代码:

<?php
session_start();

if (isset($_SESSION['login'])) {
require './db.php';

//echo $_POST['unrp'];

//$nrp = $_POST['unrp'];
//$pass = $_POST['upass'];

$sql2 = "select nrp, nama, jatah_sks, foto_profil from mahasiswa"
. " where nrp=".$nrp; //this line is the error
$result2 = mysqli_query($link, $sql2);
if (!$result2) {
die("SQL Error " . $sql2);
}
while ($row2 = mysqli_fetch_array($result2)) {
echo "NRP: " . $row2['nrp'] . "<br />";
echo "Nama: " . $row2['nama'] . "<br />";
echo "SKS Maks: " . $row2['jatah_sks'] . "<br />";
echo "Sisa SKS: " . "<br /><br />";
}
}
?>

我有这些错误:

Notice: Undefined variable: nrp in C:\xampp\htdocs\ProjectUAS\inputPerwalian.php on line 37
SQL Error select nrp, nama, jatah_sks, foto_profil from mahasiswa where nrp=

因此,程序不会显示我之前选择的数据库中的数据。

我应该怎么做才能修复这些错误?请解释你的答案。谢谢。

最佳答案

使用 2 个文件(如果您希望数据库连接在一个单独的文件中,则为 3 个)会更容易做到这一点

您可以像这样合并您的 LoginMHS 和 ManageLoginMHS 页面:

<?php
session_start();

require './db.php';

if (isset($_POST['act']))
{
$act = $_POST['act'];

switch($act)
{
case "login":
$nrp = $_POST['unrp'];
$pass = $_POST['upass'];

$sql = "select * from mahasiswa where nrp = '" . $nrp . "'";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);

if(isset($_POST['unrp'])){
if(empty($nrp)){
echo "<br /> Input perwalian belum dapat diakses saat ini"
. "<br />";
}
else {
header('Location: inputPerwalian.php');
}
}

if(mysqli_num_rows($result) > 0) {
if($pass == $row['password'] && $nrp == $row['nrp']) {
$_SESSION['login'] = TRUE;
$_SESSION['nrp'] = $nrp;
header("Location: inputPerwalian.php");
}
else {
echo "Invalid Password";
}
}
else {
echo "User not found";
}
break;
default:
die("Unknown");
}
}
}
?>

<form action="" method="POST">
<input type="hidden" name="act" value="login" />
NRP: <input type="text" name="unrp"/><br />
Password: <input type="password" name="upass"/><br />
<input type="submit" value="LOGIN"/>
</form>

这将所有登录合并到一个表单中。它将 nrp 设置在您可以从任何其他页面读取的 session 变量中,因此您的 inputPerwalian 页面可以像这样检查它:$nrp = $_SESSION['nrp'];

关于PHP - 显示数据库数据的登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37472392/

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