За последние 24 часа нас посетили 20938 программистов и 1108 роботов. Сейчас ищут 419 программистов ...

Сокрытия кода

Тема в разделе "Решения, алгоритмы", создана пользователем davefree, 2 июн 2009.

  1. davefree

    davefree Активный пользователь

    С нами с:
    2 июн 2009
    Сообщения:
    6
    Симпатии:
    0
    Есть вопрос, необходима разработать некий модуль авторизации доступный всем хостам и сторонним проектам.

    другими словами как закрыть PHP код... либо вакинуть глобальные функции.

    Пример(основная) userinfo.php:

    PHP:
    1.  
    2. <?
    3. echo '<?
    4.  function cc($c){
    5.     $c.="ok";
    6.    return $c;
    7.  }
    8.  ?>';
    9. ?>
    10.  
    Пример(Вызов в других проектах) ****.php:
    PHP:
    1.  
    2. <?
    3.  include('http://*******/userinfo.php');
    4.  $d="Все ";
    5.  echo cc($d);
    6. ?>
    7.  
    если я буду использовать в userinfo.php подключения к БД то доступны будут пароли...
    как вот как закрыть код в userinfo.php не теряя функционал.... :roll:
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Храните или код, или конфиг в БД.
    Подключаетесь к удаленной СУБД, выбираете РНР код, с помощью eval выполняете и всё.
     
  3. davefree

    davefree Активный пользователь

    С нами с:
    2 июн 2009
    Сообщения:
    6
    Симпатии:
    0
    Дело в том что userinfo.php будет так же функция

    PHP:
    1.  
    2. function db_conect(&$db_link)
    3. {
    4.     global $hostdatabase,
    5.              $logindatabase,
    6.              $shemdatabase,
    7.              $pwddatabase;
    8.     $db_link = mysql_connect($hostdatabase, $logindatabase, $pwddatabase);
    9.     if (!$db_link) {return 1; break;}
    10.     mysql_query("SET NAMES cp1251;",$db_link);
    11.     mysql_query("use $shemdatabase;",$db_link);
    12. }
    где &$db_link ссылка на подключение к бд, пользователь в своих скриптах сможет использовать свои запросы к бд на чтение)
    это необходимо чтобы на каждого пользователя не давать права на чтения к некоторым таблицам и не разрабатывать лишние алгоритмы для обработки полученных данных...
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Переписываем:

    PHP:
    1. <?
    2.  
    3.  
    4. function db_connect(&$db_link)
    5. {
    6.     global $dbhost,
    7.            $dbuser,
    8.            $dbpass,
    9.            $dbname;
    10.    
    11.     $db_link = @mysql_connect($dbhost, $dbuser, $dbpass);
    12.    
    13.     if($db_link) {
    14.         mysql_select_db($dbname);
    15.         mysql_query('SET NAMES cp1251');
    16.        
    17.         return true;
    18.     }
    19.    
    20.     return false;
    21. }
    Во-вторых, после вашего объяснения стала ещё больше не ясна задача.
    Каждый пользователь вызывает скрипт .. почему пароли должны быть доступны?
    Толи меня совсем уже плющит, толи вы объясняете что-то не то ..
     
  5. davefree

    davefree Активный пользователь

    С нами с:
    2 июн 2009
    Сообщения:
    6
    Симпатии:
    0

    [​IMG]
    чтото подобное)!
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    OpenID, passport и т.д.

    авторизируешься у себя, а потом перекидываешь на нужные урлы/проеекты/хоты
     
  7. davefree

    davefree Активный пользователь

    С нами с:
    2 июн 2009
    Сообщения:
    6
    Симпатии:
    0
    да типо того, но авторизацию выполняют каждый сам, передавая моему скрепту только имя пароль, а я в ответ передаю да нет..... но на етом не все, другим разработчикам иногда требуется доступ к таплице пользователей там есть инва о подразделениях и их личных данных.... так вот нужно каким то образом организовать доступ к етой таблице, не газдовая прав самого mysql и не использовать многомерные массивы, xml...
     
  8. davefree

    davefree Активный пользователь

    С нами с:
    2 июн 2009
    Сообщения:
    6
    Симпатии:
    0
    либо как написать свою собственную внутреннию функцию (пример mysql_connect(), abs() и тому подобные)
     
  9. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    на сайте а лежит файл авторизации, который принимает данные (пароль, логин, ключ и т.д.) и возвращает результат в виде xml, json и т.д.

    со стороннего сайта просто обращаемся к скрипту curl-ом или другим способом

    Что то мне подсказывает, что есть способы более правильные, но я их не знаю
     
  10. davefree

    davefree Активный пользователь

    С нами с:
    2 июн 2009
    Сообщения:
    6
    Симпатии:
    0
    вот в этом все и дело, где етот правильный способ, а в место xml, json можно выкидывать массив многомерный....
     
  11. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    json чем не многомерный массив?
    и чем вам данный способ не нравится?
     
  12. Sect0R

    Sect0R Активный пользователь

    С нами с:
    18 апр 2010
    Сообщения:
    1
    Симпатии:
    0
    Ребята, в чём проблема?
    Когда ты вызываешь файл userinfo.php выполняется код userinfo.php , а чем тебе плохо сделать так:

    Код (Text):
    1. Вызываешь userinfo.php с параметрами _get   он получает логин и пароль и проверяет его по базе, причём данные базы спрашивает у db.config.php , а в db.config.php ставишь проверку if ( !defined('_CHK') ) exit; , ну и в userinfo.php соотв. пишешь define('_CHK', 1 );
    вот и всё. только не include надо , а file_get_contents и возвращать userinfo.php 1 или 0, т.е. зашли или нет.
    а чтобы была сквоздная авторизация думай в сторону того что при вызове <img src=""> сессия присваивается.
     
  13. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Sect0R
    разрешены только личные фото
     
  14. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    davefree
    Отдайте другим разработчикам сервис, к примеру SOAP или REST.
    Решения для SOAP есть как в самом PHP, так и в PEAR.
    Для REST можно использовать Recess: http://github.com/recess/