我的网站上有一个user_data()
函数,用于在登录时从数据库中获取用户数据。
我没有看到我输入的代码有问题,但是,它仍然会返回以下错误:
注意:第4行 testing / index.php 中的未定义索引:fname
以下是我的初始化脚本( init.php ),其中我设置了$user_data
变量 - 用于配置文件页面等页面:
require_once '_DB/conn.php';
// FUNCTIONS
require_once '_func/class.php';
if(logged_in() === true){
$s_user = $_SESSION['user_id']; // the session is equal to the logged in users username.
$user_data = user_data($conn, $s_user, 'id', 'fname', 'lname', 'password', 'email', 'reg_date', 'bio', 'profile', 'type', 'active', 'group');
}
这是 class.php 脚本,它位于 _func / 目录(我的核心文件夹内)中:
function user_data($conn, $s_user){
$data = array();
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if($func_num_args > 1){
unset($func_get_args[0]);
$fields = '`' . implode('`, `', $func_get_args) . '`';
$data = mysqli_fetch_assoc(mysqli_query($conn, "SELECT '$fields' FROM users WHERE username = '$s_user' "));
return $data;
}
}
这是 index.php 脚本,它位于我的根目录中。在这里,我试着回应出第一个名字:
<?php
include 'core/init.php';
echo $user_data['fname']; // echo out first name
?>
但是,它仍然表明它们是错误的。什么时候不应该。
感谢所有帮助:)
编辑:仍然无法找到解决方案..:/如果有人可以帮助我,我们将不胜感激!
感谢
答案 0 :(得分:-1)
在此行中删除$ fields的单引号。因为如果您在单引号中使用select子句作为字符串,$ fields是可变的。
$data = mysqli_fetch_assoc(mysqli_query($conn, "SELECT $fields FROM users WHERE username = '$s_user' "));
希望它能奏效。