За последние 24 часа нас посетили 20615 программистов и 1100 роботов. Сейчас ищут 416 программистов ...

Помогите с переменной session_is_registered

Тема в разделе "Сделайте за меня", создана пользователем krylovdimitrii, 29 июл 2016.

  1. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Здравствуйте
    В PHP я ноль
    Мене нужно заменить функцию session_is_registered чтобы работала в PHP 5.3+.
    Вот часть кода:

    PHP:
    1. <?php
    2. require( "path.php" );
    3. require( PATH."include/include.php" );
    4. if ( !session_is_registered( $adminId ) )
    5. {
    6.     header( "Location:index.php?info=17" );
    7. }
    8. $adminId = $_SESSION['adminId'];
    9. $res = executequery( "SELECT COUNT(ID) AS C FROM ".PREFIX."PRODUCT_TEMP WHERE DATE_ADDED>='".$_SESSION['lastLogin']."'" );
    10. $r = getrow( $res );
    11. $addedB4LL = $r['C'];
    12. $res = executequery( "SELECT COUNT(ID) AS C FROM ".PREFIX."PRODUCT_TEMP" );
    13. $r = getrow( $res );
    14. $addedAll = $r['C'];
    15. $clickPB4LL = 0;
    ....
    Ошибка тут:
    if ( !session_is_registered( $adminId ) )
    {

    Чем это можно заменить или куда вообще копать подскажите пожалуйта
     
    #1 krylovdimitrii, 29 июл 2016
    Последнее редактирование модератором: 29 июл 2016
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  3. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    пишу
    session_start( );
    if (isset($_SESSION['adminId']))
    {
    header( "Location:index.php?info=17" );
    Не проходит
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  5. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Подскажи пожалуйста как это встроить в код
    Пробовал заменить
    if (isset($_SESSION['adminId']))
    {
    header( "Location:index.php?info=17" );
    на
    var_dump(isset($_SESSION['adminId']));
    белый экран и пишет bool(true)
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    перед isset поставь восклицательный знак, нужно чтобы не авторизованные перенаправлялись на другой адрес?
     
  7. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Это я хочу зайти в админ панель, но не пускает
    прописал
    if (!isset($_SESSION['adminId']))
    {
    header( "Location:index.php?info=17" );
    Белый экран
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Если белый экран, то я давал ссылку, там написано как включить отображение ошибок, может они есть и ещё можно настроить, чтобы в лог записывались ошибки.
    Код вроде рабочий, что там не так по нему не видно. Может проблема где-то в другом месте.
    Пользуйся отладкой, у тебя больше шансов найти проблему имея доступ к коду.
     
  9. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Попробую настроить лог
    Спасибо за помощь!
     
  10. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Подставил в начало кода
    ini_set('display_errors',1);
    error_reporting(E_ALL);
    И получил ошибки:
    Notice: Undefined index: uId in C:\OpenServer\domains\pricecomparisonscript5.ru\include\include.php on line 57
    Notice: Undefined index: uId in C:\OpenServer\domains\pricecomparisonscript5.ru\include\include.php on line 58
    Это тут:
    Код (Text):
    1. define("INFO_23", "Task Completed Successfully.<br>However you must run product re-profiling as it may have affected product price profile.<br>Click <a href='".SCRIPT_ROOT."admin/product_price_profiling.php?uId=".$_GET["uId"]."' target=_blank class='link'>here</a> to perform profiling now.");
    2.  
    3. define("INFO_24", "Delete Task Completed Successfully.<br>However you must run product re-profiling as it may have affected product price profile.<br>Click <a href='".SCRIPT_ROOT."admin/product_price_profiling.php?uId=".$_GET["uId"]."&del=Y' target=_blank class='link'>here</a> to perform profiling now.");
    Видимо проблема тут
     
  11. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Можно обернуть этот код в
    PHP:
    1. if( isset( $_GET["uId"] ) ) {
    2. // тут два define
    3. }
     
  12. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Не пойму как )
     
    #12 krylovdimitrii, 29 июл 2016
    Последнее редактирование: 29 июл 2016
  13. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Если так
    Код (Text):
    1. if( isset( $_GET["uId"] ) ) {
    2.         define("INFO_23", "Task Completed Successfully.<br>However you must run product re-profiling as it may have affected product price profile.<br>Click <a href='".SCRIPT_ROOT."admin/product_price_profiling.php?uId=".$_GET["uId"]."' target=_blank class='link'>here</a> to perform profiling now.");
    3.         define("INFO_24", "Delete Task Completed Successfully.<br>However you must run product re-profiling as it may have affected product price profile.<br>Click <a href='".SCRIPT_ROOT."admin/product_price_profiling.php?uId=".$_GET["uId"]."&del=Y' target=_blank class='link'>here</a> to perform profiling now.");
    4.         }
    то белый экран, но ошибки пропали
     
  14. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Отлично, осталась сделать отладку и проследить за ходом программы по шагам, чтобы найти причину, почему белый экран.
     
  15. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Там где-то было session_register(), тот код тоже переписать надо
     
  16. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Ну там сейчас

    Код (Text):
    1. require( "path.php" );
    2. require( PATH."include/include.php" );
    3. session_start( );
    4.  
    5. if ( !isset($_SESSION['adminId']) )
    6. {
    7.     header( "Location:index.php?info=17" );
    8. }
    --- Добавлено ---
    Сейчас пытаюсь PhpStorm настроить
     
  17. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Настроил PhpStorm, переписал ещё несколько устаревших функций, но при в вводе логина и пароля в админ панели попадаю на белый экран и там уже ничего PhpStorm не пишет :(, хотя проверку прохожу
    Код (Text):
    1. Dump $_SESSION
    2. $_SESSION['adminId'] =
    3. string 'admin' (length=5)
    4. $_SESSION['lastLogin'] =
    5. string '2016-07-29 15:18:16' (length=19)
    6. $_SESSION['lang'] =
    7. int 1000
    8. $_SESSION['langFolder'] =
    9. string 'eng' (length=3)
    10. $_SESSION['currencySymbol'] =
    11. string '$' (length=1)
    12. $_SESSION['currencyRate'] =
    13. int 1
     
  18. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Вот что показал debugger:
    Код (Text):
    1. require( "path.php" );
    2. require( PATH."include/include.php" );
    3. session_start( );
    4. if ( !isset($_SESSION['adminId']) )
    5. {
    6.     header( "Location:index.php?info=17" );
    7. }
    8.  
    9. $adminId = $_SESSION['adminId'];
    10. $res = executequery( "SELECT COUNT(ID) AS C FROM ".PREFIX."PRODUCT_TEMP WHERE DATE_ADDED>='".$_SESSION['lastLogin']."'" );
    11. $r = getrow( $res );
    12. $addedB4LL = $r['C'];
    13. $res = executequery( "SELECT COUNT(ID) AS C FROM ".PREFIX."PRODUCT_TEMP" );
    14. $r = getrow( $res );
    15. $addedAll = $r['C'];
    16. $clickPB4LL = 0;
    17. if ( IS_MERCHANTBID_INSTALLED != 0 )
    18. {
    19.     $res = executequery( "SELECT COUNT(ID) AS C FROM ".PREFIX."BID_PAYMENT WHERE ISVALID='N' AND PAYMENT_DATETIME >= '".$_SESSION['lastLogin']."'" );
    20.     $r = getrow( $res );
    21.     $clickPB4LL = $r['C'];
    22. }
    23. else
    24. {
    25.     $res = executequery( "SELECT COUNT(ID) AS C FROM ".PREFIX."CLICKTHROUGHS_PAYMENT WHERE ISVALID='N' AND PAYMENT_DATETIME>='".$_SESSION['lastLogin']."'" );
    26.     $r = getrow( $res );
    27.     $clickPB4LL = $r['C'];
    Дальше не прохожу (белый экран)
    Подскажите, что тут пишут :)
    Я так понимаю проблема в последних строках
    Скрин:
    https://drive.google.com/open?id=0B5m4gsTayX-lcHI2QXZ1enlFaUk
     
  19. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Код дальше выполняется, в дебагере это видно?
     
  20. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    Я ошибся, код который написал выше нормально выполняется, а остановка происходит на следующей строке:

    Код (Text):
    1.     $r = getrow( $res );
    2.     $clickPB4LL = $r['C'];
    3. }
    4. include( "header.php" ); // после этой строки код не выполняется!
    5. echo "\t\t<center>\r\n\r\n\t\t\t";
    6. if ( isset( $_GET['info'] ) )
    7. {
    8.     echo getinfo( $_GET['info'] );
    9. }
    10. echo "\r\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" width=\"500\" align=\"center\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td width=\"95%\" background=\"images/bg_main_top.gif\" class=\"th\">Management Area</td>\r\n\t\t\t\t\t<td width=\"47\" class=\"th\"><img src=\"images/arrow_main.gif\" width=\"47\" height=\"30\" border=\"0\" alt=\"\"></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t\t<table cellpadding=\"3\" cellspacing=\"1\" width=\"500\" align=\"center\" class=\"table\">\r\n";
    11. $licenseInfo = ioncube_file_info( );
    12. if ( $licenseInfo['FILE_EXPIRY'] != "" && date( "Y-m-d", $licenseInfo['FILE_EXPIRY'] ) <= adddays( date( "Y-m-d" ), 10 ) )
    13. {
    Вот код файла "header.php"
    Код (Text):
    1. // Build TABS
    2.         $resTabCat    = executeQuery("SELECT ID, FILENAME, TITLE FROM ".PREFIX."CATEGORY WHERE ISVALID='Y' AND HOMEPAGE_DISPLAY = 'Y' AND PARENT_ID = 0 ORDER BY HOMEPAGE_DISPLAY, SORT_ORDER, TITLE");
    3.         $cntTabCat    = 0;
    4.    
    5.         // Build Search dropdown
    6.         $categoryDropdownOptions = "\n";
    7.         $resSrhCat    = executeQuery("SELECT ID, TITLE FROM ".PREFIX."CATEGORY WHERE PARENT_ID = 0 AND ISVALID='Y' ORDER BY SORT_ORDER, TITLE");
    8.         while ( $rowSrhCat = getRow($resSrhCat) )
    9.             $categoryDropdownOptions .= '<option value="'.$rowSrhCat["ID"].'">'.$rowSrhCat["TITLE"].'</option>'."\n";
    10.    
    11.         // Build Left Categories
    12.         $arrLeftCat = getTableRecArray('CATEGORY', 'ID, FILENAME, TITLE', "PARENT_ID = 0 AND ISVALID = 'Y'", 'SORT_ORDER, TITLE', 'CATEGORY', 'PARENT_ID', 'ID', 'ID, TITLE, FILENAME', "ISVALID = 'Y'", 'SORT_ORDER, TITLE');
    13.                
    14. //*************************************************************************************************
    15.    
    16.         // Call template
    17.         include(PATH.'templates/header.tpl.php');
    18.    
    19. //*************************************************************************************************
    20.    
    21.         // Free Resources
    22.         free($resTabCat);
    23.         free($resSrhCat);
    24.         free($resLeftCat);
     
  21. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Возможно отладчик не перепрыгивает в тот файл. Можно тест с include сделать, отдельно на простом коде.
     
  22. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    ты имеешь ввиду прописать код из header.php прям тут?

    Я так понимаю из этого файла код должен получить какие то данные, но от туда ничего не идёт
    Если удалить эту строку
    include( "header.php" );
    то появляется кусок панели с заголовком админки и куча ошибок.
     
  23. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @krylovdimitrii по нормальному должен был открыться файл header.php и ты дальше должен был увидеть как там работает программа
     
  24. krylovdimitrii

    krylovdimitrii Новичок

    С нами с:
    29 июл 2016
    Сообщения:
    17
    Симпатии:
    0
    А не может быть проблема с БД, или это только с кодом проблема?
     
  25. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Если с базой, то просто бы при отладке получил не верные данные из неё или ошибки и это было бы понятно.