"未定义索引:fname"用于user_data抓取

时间:2016-06-04 05:53:54

标签: php syntax-error

我的网站上有一个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
?>

但是,它仍然表明它们是错误的。什么时候不应该。

感谢所有帮助:)

编辑:仍然无法找到解决方案..:/如果有人可以帮助我,我们将不胜感激!

感谢

1 个答案:

答案 0 :(得分:-1)

在此行中删除$ fields的单引号。因为如果您在单引号中使用select子句作为字符串,$ fields是可变的。

 $data = mysqli_fetch_assoc(mysqli_query($conn, "SELECT $fields FROM users WHERE username = '$s_user' "));

希望它能奏效。