Как убрать шифрование ссылок в коде?

Тема в разделе "Как сделать...", создана пользователем Twix007, 29 дек 2015.

  1. Twix007

    Twix007

    Регистр.:
    11 окт 2009
    Сообщения:
    216
    Симпатии:
    51
    Есть счётчик просмторов страниц, но он шифрует page_id (пример: 6708b2afbfeebf6d5f2f5caf91d08a51).
    Как сделать оригинальные ссылки в page_id и решить проблему:
    Код:
     PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in counter.php on line 56
    Сам счётчик:
    Код:
    CREATE TABLE `counts` (
      `page_id` varchar(32) NOT NULL default '',
      `all` int(11) NOT NULL default '0',
      `today` int(11) NOT NULL default '0',
      `date` int(11) NOT NULL default '0'
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    Код:
    <?php
    
    /* проверка, есть ли запись в MySQL */
    /* таблице с таким id или ее нет */
    function searchID($id)
    {
    $result = mysql_query ("SELECT * FROM `counts` WHERE `page_id` LIKE '".$id."'");
    $num_rows = mysql_num_rows($result);
    if ($num_rows>0)
    {
        return True;
    }
    else
    {
        return False;
    }
    }
    /* Читает запись из MySQL таблицы */
    /* возвращает ассоциированный массив */
    function MySQLRead($id)
    {
    $id = addslashes($id);
    $result = mysql_query ("SELECT * FROM `counts` WHERE `page_id` LIKE '".$id."'");
    return (array)mysql_fetch_assoc($result);
    }
    /* Обновление времени для конкретной записи */
    function UpdateTime($id, $time)
    {
    $id = addslashes($id);
    $time = addslashes($time);
    $result = mysql_query ("UPDATE `counts` SET `date` = '".$time."' WHERE `page_id` = '".$id."'");
    return $result;
    }
    /* Обновление счетчиков для записи с указанным id */
    function UpdateCounders($id, $all, $today)
    {
    $id = addslashes($id);
    $time = addslashes($time);
    $result = mysql_query ("UPDATE `counts` SET `all` = '".$all."',`today` = '".$today."' WHERE `page_id` = '".$id."'");
    return $result;
    }
    /* Запись всех значений "По умолчанию" */
    function Default_Write($id)
    {
    $id = addslashes($id);
    $result = mysql_query ("INSERT INTO `counts` ( `page_id` , `all` , `today` , `date` ) VALUES ('".$id."' , 1 , 1 , '".(time()+60*60*24)."');");
    return $result;
    }
    $unical_page_id_gid = md5($_SERVER['REQUEST_URI']); // получение md5() хэша из url страницы
    $link = mysql_connect($INFO['EZSQL_DB_HOST'], $INFO['EZSQL_DB_USER'], $INFO['EZSQL_DB_PASSWORD']); // Соединение с MySQL
    mysql_select_db ($INFO['EZSQL_DB_NAME']); // Выбор базы данных
    if (!searchID($unical_page_id_gid)) // существует ли запись с таким id
    {
        Default_Write($unical_page_id_gid); // запись всех значений по умолчанию
            define("count", "1");
    }
    else // если не существует
    {
    $tmp = MySQLRead($unical_page_id_gid); // считаем значения
    $all = $tmp['all'] + 1;
    $today = $tmp['today'] +1;
    if (time()>=$tmp['date']) // если сутки с момента записи прошли
    {
        UpdateTime($unical_page_id_gid, (time()+60*60*24)); // обновим дату
        UpdateCounders($unical_page_id_gid, $all, 1); // обновим счетчики
    }
    else // если еще нет
    {
        /* обновим счетчики */
        UpdateCounders($unical_page_id_gid, $all, $today);
    }
    /* устанавливаем константу с текущими значениями счетчиков */
    define("count", "$all");
    }
    mysql_close($link); // Разрываем соединение с MySQL
    ?>
     
  2. Druid__

    Druid__ Писатель

    Регистр.:
    7 авг 2013
    Сообщения:
    6
    Симпатии:
    1
    Если я правильно понял проблему и тебе нужна информация о незакодированных URL в записях о счетчиках страниц, то:

    1. нужно добавить столбец url в таблицу counts
    2. организовать проход по всем url сайта (например, взяв из sitemap) и, находя в таблице counts запись по хешу этой страницы, записывать туда оригинальный URL страницы.
    3. если нужен еще и короткий циферный ID для страниц, то просто добавить автоинкриментируемое поле типа int.

    P.S.: поправка к коментарию:
    Код:
    else // если не существует
    это ветка "если существует", без НЕ
     
  3. javx

    javx

    Регистр.:
    28 авг 2015
    Сообщения:
    528
    Симпатии:
    248
    $unical_page_id_gid = md5($_SERVER['REQUEST_URI']); наверное здесь, не нужно шифровать в md5 но тогда длину измени побольше(чем сейчас 32 символа)
     
    Twix007 нравится это.
  4. Twix007

    Twix007

    Регистр.:
    11 окт 2009
    Сообщения:
    216
    Симпатии:
    51
    есть ли возможность дешифровать ссылки, которые уже зашифрованные?
     
  5. javx

    javx

    Регистр.:
    28 авг 2015
    Сообщения:
    528
    Симпатии:
    248
    Нет. md5 можно только подобрать перебором значений. Т.е. ты отправляешь значение в md5() смотришь что получилось, и сравниваешь с имеющимся хешем. Только так ты поймешь что зашифровано в хеше.
     
    Twix007 нравится это.