问题描述
我不知道为什么会弹出这个错误。当我切换到 PDO 时会发生这种情况 注意:我还是 PDO 的新手。
警告:尝试访问 C:\xampp\htdocs\AR NEW\includes\functions.inc.PHP 中第 283 行的 bool 类型值的数组偏移
警告:尝试访问第 29 行 C:\xampp\htdocs\AR NEW\includes\nav.PHP 中 bool 类型值的数组偏移
function isAdmin(){
if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'admin' ) {
return true;
}else{
return false;
}
}
<?PHP if (isset($_SESSION['user'])) : ?>
<style>nav .logedin{display:block}nav .navbar-animate li a{
padding: 5px 0 0 45px;}
</style>
<! --This is the line 29 --!><li class="username" ><p>Welcome,<?
PHP echo
$_SESSION['user']
['username']; ?>
</p></li>
<li><a class="logout" href="index.PHP?logout='1'">logout</a></li>
<?PHP elseif($page=='about'): ?>
<li><a href="signup.PHP" class="lgin">Signup</a></li>
<?PHP else: ?>
<li><a href="index.PHP" class="lgin">Login</a></li>
<?PHP endif ?>
// register user if there are no errors in the form
if (count($errors) == 0) {
if (isset($_POST['user_type'])) {
$user_type = e($_POST['user_type']);
$query = $pdo->prepare("INSERT INTO accounts (username,email,user_type,password) VALUES(:username,:email,:user_type,:password)");
$query->execute(array(':username' =>$username,':email' =>$email,':user_type' =>$user_type,':password' =>$hashedpwd,));
$_SESSION['add'] = "Added successfully";
header('location: users.PHP');
exit(0);
}else{
$user_type = 'users';
$query = $pdo->prepare("INSERT INTO accounts (username,));
// get id of the created user
$logged_in_user_id = $pdo->lastInsertId();
$_SESSION['user'] = getUserById($logged_in_user_id); // put logged
in user in session
$_SESSION['add'] = "You are Now logged in and thank you!";
header('location: index.PHP');
exit(0);
}
}
}
这是用于登录:
// LOGIN USER
function login(){
global $pdo,$errors,$hashedpwd;
// grab form values
$email = htmlspecialchars($_POST['email']);
$password = htmlspecialchars($_POST['password']);
// make sure form is filled properly
if (empty($email)) {
array_push($errors,"Email is required");
}
if (empty($password)) {
array_push($errors,"Password is required");
}
// attempt login if no errors on form
if (count($errors) == 0) {
$query = $pdo->prepare("SELECT * FROM accounts WHERE email=:email
LIMIT 1");
$query->execute(array(':email'=>$email));
$row=$query->fetch();
if ($query->rowCount() > 0) { // check condition database if greater
than zero
$logged_in_user = $query->fetch();
if ($email==$row['email']) {
if (password_verify($password,$row['password'])) {
// check if user is admin or user
if ($logged_in_user['user_type'] == 'admin') {
$_SESSION['user'] = $logged_in_user;
$_SESSION['success'] = "You are Now logged in";
header('location: admin/admin.PHP');
exit(0);
}else {
$_SESSION['user'] = $logged_in_user;
$_SESSION['success'] = "You are Now logged in";
header('location: index.PHP');
exit(0);
}
}else{
array_push($errors,"Wrong password");
}
}else {
array_push($errors,"Wrong username/password combination");
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)