2016-06-04 2 views
-2

У меня есть user_data() функцию на моем сайте, который, как предполагается, чтобы захватить пользователь данные из базы данных, когда они вошли в«неопределенный индекс: имя_файл». Для user_data захватить

Я не вижу проблемы с код, который я вошел, однако, он все еще возвращающий следующую ошибку:

Notice: Undefined index: fname in testing/index.php on line 4

Ниже мой инициализации скрипта (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 
?> 

Однако, он все еще заявляет, что это ошибка. Когда не должно быть.

Вся помощь ценится :)

EDIT: до сих пор не нашли решение ..:/если кто-нибудь может мне помочь, было бы весьма признателен!

спасибо

+0

[Ошибки в PHP/Синтаксис; и как их решить] (http://stackoverflow.com/questions/18050071/php-parse-syntax-errors-and-how-to-solve-them) – JimL

+0

Нужны котировки в '' username' = $ s_user' it было бы 'username = '$ s_user'' – Saty

+0

@JimL, о котором я говорил ранее, я проверил это. Кроме того, этот скрипт использовался на одном из моих других сайтов (но в MySQL (я только что обновил)), но я не пропускаю никаких ошибок. –

ответ

-1

В этой строке удалите одиночную кавычку для $ полей. Поскольку $ fields является переменной, если вы указали в окошке select select select как строку.

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

Надеюсь, что это сработает.

+0

К сожалению, это не сработало. На самом деле, это просто породило еще одну ошибку. –

+0

Какая ошибка. @CaelanGrgurovic –

+0

'mysqli_fetch_assoc() ожидает, что параметр 1 будет mysqli_result, boolean given' ... –