У мя вот такой вопросик (мож кто-то уже сталкивался): Значится, есть домен (на вскидку mamba.ru), на нём находится скрипт myclass.php (в корне) в нём следующее: Код (Text): <?php class myclass { function getTime() { return date( "H:i:s" ); } } ?> И есть другой домен (на вскидку moy.ru) на котором есть скрипт index.php в котором: Код (Text): <?php require_once( 'http://mamba.ru/myclass.php' ); //это строка проходит без проблем $my = new myclass; //с этой и строкой ниже начинаются проблемы, пишет что класс не обнаружен echo $my->getTime(); ?> Вопрос такой: как можно решить данную проблему? может есть другие способы использования сторонних классов? ЗЫ: заранее спасибо! 8)
ZZZubec, во первых, смени аватару. во вторых, сделать можно. Главное, понимать, что при запросе через http удаленный сервер сначала исполнит твой php код в контексте удаленного сервера, а потом вернет результат работы. Т.е. тебе надо сделать php скрипт, ктоторый будет возвращать(!) php-код класса, или еще чего нибудь.
я пробовал и так, на экране появляется код класса в тектовом виде в строке: PHP: <?php require_once( 'http://mamba.ru/myclass.php' ); //это строка проходит без проблем ?> После этой строчки в окне браузера выходит текст: class myclass { function getTime() { return date( "H:i:s" ); } } Класс необнаруживается всё равно...
вот он: вот смотри, если myclass.php сделать таким: PHP: class myclass { function getTime() { return date( "H:i:s" ); } } т.е. убрать начало <?php и конец ?> то как раз получается что, я написал в предыдущем сообщении ЗЫ: если есть денвер под рукой, то это легко проверить. создаем два домена в папке home: domen1\www, domen2\www. в domen1\www закидываем файл myclass.php, а в domen2\www кидаем index.php.
Не! Он должен полностью вернуть PHP код. Всесте с тегами открытия/закрытия. Например, code.php: PHP: <?='<?php';?> class myclass { function getTime() { return date( "H:i:s" ); } } <?='?>';?>
ZZZubec Хех это тоже не то. Во втором случае ты получаешь текстовый файл, "немного похожий" на PHP код. При его подключении в другом файле этот текст просто выводится на экран, так как в нем нет PHP тегов. Тебе нужно либо переименовать на сервере mamba.ru файл с классом из .php в .txt (чтобы он не исполнялся перед отдачей, а отдавался как есть), либо добавить в .htaccess сайта mamba.ru такую строчку: AddType text/plain .php чтобы все php файлы не исполнялись, а отдавались как текст. Будь осторожен - второй метод наносит удар по безопасности всего сервера. EDIT: Сообщения выше не видел
действительно, реально помогло, Олег спасибки! ЗЫ: ну тогда другой вопрос: можно ли не показывать код класса на глаза. Не используя кодирование (Нет, дык нет. И так помогли очень).
class.php PHP: <?php $class=' <?php class myclass { function getTime() { return date( "H:i:s" ); } } ?>'; if (isset($_GET['password'])&&($_GET['password']=='iddqd')) { echo $class; } else { echo '<?php die("Die, dirty hacker!"); ?>'; } index.php PHP: <?php require_once( 'http://mamba.ru/myclass.php?password=iddqd' ); $my = new myclass; echo $my->getTime(); ?> Где то так... не проверял.
эт понятно, я тоже так размышлял. Я немогу раскрыть все тайны своего замысла (эт конечно жаль), но часть я всё таки раскрою. Есть класс ЯДРА, которое целиком управляет всем, без него сайт пустое сборище модулей 8). Просто, пароль свободен для продажи, стоит копейки (т.е. купить может любой, а в том числе и программер способный разобраться в php коде), вот. Мы получаем следующую ситуацию, значится так: программер покупает месячный пароль (а все пароли это абонентский период) и получает в свои сети целое ЯДРО, выдергивает то что надо, обходит защиту проверки абонентского периода, и преспокойно существует в своё удовольствие. ЗЫ: надеюсь не всем понятно будет, что я написал. А только знающим людям. 8)))
ZZZubec Извините меня, но это извращение имхо Продавайте не абонентский доступ к коду, а программные пакеты. Все равно, первое, что сделает чел, получив доступ к вашему коду - это скопирует его к себе: подключать классы локально - намного быстрее и безопаснее.
ZZZubec, ты совсем не в ту сторону копаешь, совсем не в ту. Копать надо в сторону REST-интерфейсов и подобной херни. Думай сам, в общем, ведь мы не знаем всех ваших тайн...
Я тоже вчера весь день думал, вот произнесите это вслух: бинарный скрипт на PHP. Такое очучение, что где в этой вразе лишнее слово 8), и оно действительно лишнее. REST ничего не слышал об этом. Ну а для тех кто шел тем же путем, что и я, подведу итог: в данном случае (как решение) можно использовать .class Java. Но для этого придется (по крайне мери мне), переписывать всё ядро и соответственно все модули, ах да, и конечно изучать Java (просто я уже знаком, и есть маленький опыт в похожем j2me). ЗЫ: Я считаю вопрос закрытым, спасибо за активное обсуждение (ваши мысли - мои решения) 8)))!