Member 13847672 Ответов: 1

Как подключить базу данных в функции?


Я пытаюсь сделать страницу входа в систему с помощью функции. Но, получил следующую ошибку-
Notice: Undefined variable: conn in F:\xampp\htdocs\bcci\admin_panel\class\adminLogin.php on line 7


Что я уже пробовал:

Это и есть adminlogin.php страница.
<?php
	include('includes/dbconfig.php');
 
	function adminLogin($username, $userpass, $userstatus) {
		
		$sql = "SELECT * FROM admin	WHERE username='$username'";
		$result = $conn->query($sql);
		$row = $result->fetch_assoc();
		if($row['userpass'] == $userpass && $row['userstatus'] == $userstatus){
			$_SESSION['username'] =  $username;
			header('Location:home.php');
		}else{
			$error_msg = '
							<div class="alert alert-danger alert-dismissible" role="alert">
							  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
							  Warning! User name and Password does not match.
							</div>
						';
		}
	}
?>


Это и есть dbconfig.php страница.
<?php
// this will avoid mysql_connect() deprecation error.
 //error_reporting( ~E_DEPRECATED & ~E_NOTICE );
$dbhost = "localhost";

$dbuser = "root";

$dbpass = "";
$dbname = "xyz";
$conn= mysqli_connect($dbhost,$dbuser,$dbpass) or die('cannot connect to the server'); 
mysqli_select_db($conn, $dbname) or die('database selection problem');
session_start();
?>

Richard Deeming

if($row['userpass'] == $userpass && ... 

Вы храните пароли в виде обычного текста. Не делай этого!
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

PHP даже имеет встроенные функции, которые помогут вам сделать все правильно:
PHP: password_hash[^]
РНР: функцию password_verify[^]

1 Ответов

Рейтинг:
2

W∴ Balboos, GHB

$Conn определяется в вашей функции и не входит в область действия вашей процедуры входа администратора.

Одним из решений было бы передать значение обратно вызывающему абоненту и использовать его.