За последние 24 часа нас посетили 18873 программиста и 1624 робота. Сейчас ищут 909 программистов ...

В функции не попадают параметры.

Тема в разделе "PHP для новичков", создана пользователем BezMizinca, 22 ноя 2015.

  1. BezMizinca

    BezMizinca Новичок

    С нами с:
    14 янв 2015
    Сообщения:
    42
    Симпатии:
    0
    После исправления этой ошибки: viewtopic.php?f=13&t=55495
    Возникла другая. Когда я логинюсь все работает $_SESSION['user'] заполняется.

    Array (user] => Array ( [id] => 9 [login] => qwerty [password] => 12TTMbeULQcAU => [url="mailto:qwerty@qwerty.ua"]qwerty@qwerty.ua[/url] [gender] => f [date_of_birthday] => 2020-11-20 [date_of_registretion] => 0000-00-00 00:00:00 [hash] => 12TTMbeULQcAU [activate] => 1 [access] => 0 ) )

    Но при переходе на любую страницу показывает такие ошибки:
    [color=#FF0000]Warning: mysqli_query() expects parameter 1 to be mysqli, null given in Z:\home\test1.ru\www\libs\default.php on line 89
    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in Z:\home\test1.ru\www\modules\allpage.php on line 10
    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\libs\default.php:89) in Z:\home\test1.ru\www\modules\allpage.php on line 12[/color]

    И $_SESSION['user'] стирается.
    Array ( [user] => )

    После обновления страницы, меня разлогинивает.

    allpage.php
    [code=php]if (isset($_SESSION['user'])){
        $res = q("
        SELECT *
        FROM `users`
        WHERE
        `id` = ".$_SESSION['user']['id']."
        LIMIT 1
        ");
        $_SESSION['user'] = mysqli_fetch_assoc($res);
        if ($_SESSION['user']['activate'] != 1 ) {
            header("Location: index.php?modules=main");
            exit();
        }
    } [/code]
    default.php
    [code=php]function q($query){
        global $link;
        $res = mysqli_query($link,$query);   //89 строка
        if($res === false ){
            $info  = debug_backtrace();
            $error = date("d.m.Y H:i:s")." ERROR QUERY: ".$query."</br>\n".mysqli_error($link)." in a file ".$info['0']['file']." on line ".$info['0']['line'];
            file_put_contents('./logs/mysql.log',strip_tags($error)."\n\n",FILE_APPEND);
            echo $error;
            exit();
        } else {
            return $res;
        }
    } [/code]

    [color=#FF0000]PHP, JavaScript, SQL и другой код пишите внутри тегов [b][code=[/b][b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а где соединение устанавливается?
     
  3. BezMizinca

    BezMizinca Новичок

    С нами с:
    14 янв 2015
    Сообщения:
    42
    Симпатии:
    0
    index.php
    Код (PHP):
    1. include_once './config.php';
    2. include_once './libs/default.php';
    3. include_once './variables.php';
    4. include_once './modules/allpage.php';
    5.  
    6. $link = mysqli_connect(Core::$DB_HOST, Core::$DB_LOGIN, Core::$DB_PASSWORD, Core::$DB_NAME);
    7. mysqli_set_charset($link, 'utf8');
    8. include './modules/'.$_GET['modules'].'/'.$_GET['page'].'.php';
    9. include './skins/'.Core::$SKIN.'/index.tpl'; 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    какая каша... ну и в ней смотри в ошибке дефолтпхп линия 89 а тут у тебя подключения дефолта строка вторая а подключение к субд - строка ниже второй. на этом ты сам себе в ногу и стреляешь.
     
  5. BezMizinca

    BezMizinca Новичок

    С нами с:
    14 янв 2015
    Сообщения:
    42
    Симпатии:
    0
    Но если я их меняю местами то у меня появляется эта ошибка viewtopic.php?f=13&t=55495
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну так не надо тупо менять местами строки. нужно уже сесть подумать и сделать логичный код. не? почему например не вынести работу с субд в отдельный файл? если ты его заинклюдил то там подключение создается и объявляется эта вот функцию ку. а если сделать класс то можно сделать вообще автозагрузку и забыть про то что можно забыть что-то заинклюдить.