gpt4 book ai didi

php - 将我的php登录屏幕连接到我的SQL DB

转载 作者:行者123 更新时间:2023-11-29 20:56:12 24 4
gpt4 key购买 nike

我自己实际上并没有做太多的php,但是我正在为UI创建一个php登录屏幕,我正在构建该数据库以将数据从mysql数据库中提取到表中。我有连接到db的表并且正常工作,但在登录屏幕时遇到了麻烦。

目前我要实现的是使login.php页面接受正确的凭据并将用户定向到index.php页面。

index.php页面确实包含

include('session.php');    //include login session


例如,我不断收到以下两个错误


注意:未定义索引:有效
致命错误:调用未定义的函数session_register()


这是我的login.php页面的代码

<?php

include("config.php");
session_start();
$error=''; // Variable To Store Error Message

if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form

$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);

$sql = "SELECT user_id FROM admin_tbl WHERE username = '$myusername' and password = '$mypassword'";
$result = mysqli_query($db,$sql) or die("Error: ".mysqli_error($db));

$row = mysqli_fetch_array($result,MYSQLI_ASSOC);

$active = $row['active'];

$count = mysqli_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($count == 1) {
// Register $myusername, $mypassword and redirect to file "index.php"
session_register("username");
session_register("password");
$_SESSION['login_user'] = $myusername;

header("location: index.php");
}else {
$error = "Your Username Name or Password is invalid";
}
}
?>


这也是我的config.php的详细信息

$mysql_hostname = "localhost";  //your mysql host name
$mysql_user = "adminTest"; //your mysql user name
$mysql_password = "badgerBadger"; //your mysql password
$mysql_database = "mushroom"; //your mysql database

$db = new mysqli($mysql_hostname, $mysql_user, $mysql_password, $mysql_database);
//mysql_select_db($mysql_database, $bd) or die("Error on database connection");
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}


这是我的session.php文件的代码

<?php

include('config.php');
session_start();

$user_check = $_SESSION['login_user'];
$ses_sql = mysqli_query($db,"SELECT * FROM admin_tbl WHERE username = '$myusername' and password = '$mypassword'");
$login_session =$row['first'];
$row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);

$login_session = $row['username'];

if(!isset($_SESSION['login_user'])){
header("location:login.php");
}

?>


任何帮助将不胜感激,在此先感谢:)



变化



更新了代码,以消除与表查询有关的拼写错误,并解决了随后引起的其他一些问题。

更新了login.php代码以进行正确的调用

新错误#######


session.php中未定义的变量用户名
session.php中未定义的可变密码
session.php第22行中的未定义变量行


奇怪的是,正在解析变量并重定向到index.php页面。我尝试做的是将这些变量的值设置为blank或$ myusername“”;例如。这确实消除了用户名和密码的错误,但是它仍然抱怨session.php文件中的第24行= $ login_session = $ row ['first'];当它实际上是有效字段时,抱怨它是非法字段字符串。

TABLENAME admin_tbl ###以下字段


用户身份
t_date
第一
持续
用户名
密码
电子邮件
活性

最佳答案

Nick, here is your correct code. 
1. Notice: Undefined index: active - error because of you are try to fetch only user_id from your database.so you have to use "SELECT * FROM " or "SELECT user_id,active FROM "
2. Fatal error: Call to undefined function session_register() - you can login and create session without use of session_register() no need of session register
session_start();
include("config.php");
$error=''; // Variable To Store Error Message
$active = '';
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form

$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT * FROM admin_tbl WHERE username = '$myusername' and password = '$mypassword'";
//$sql = "SELECT user_id,active FROM admin_tbl WHERE username = '$myusername' and password = '$mypassword'";
$result = mysqli_query($db,$sql) or die("Error: ".mysqli_error($db));

$row = mysqli_fetch_array($result,MYSQLI_ASSOC);

$active = $row['active'];

$count = mysqli_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($count == 1) {
// Register $myusername, $mypassword and redirect to file "index.php"
//session_register("username");
//session_register("password");
$_SESSION['login_user'] = $myusername;

header("location: index.php");
}else {
$error = "Your Username Name or Password is invalid";
}
}

关于php - 将我的php登录屏幕连接到我的SQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37610698/

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