Jump to content

D.S.Denton

Expert
  • Posts

    993
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by D.S.Denton

  1. ***Denton McLeod давно юзает шестизнак (вроде)... проблем никаких, кроме одного случая когда у девушки отец словил трояна, но опять же восстановить никаких проблем не составляет. http://crazy-uins.ru - ему доверять можно точно
  2. это я стормозил не дописал что надо будет перенумеровывать еще последующие строки :oops:
  3. начнем-с скрипт-копилку для новичков делать? кому не лень, присоединяйтесь. комментарии в коде желательны. во-первых скрипты тут будут малость сырые - чтоб место для фантазии оставалось. во-вторых маленькие, каждый для одной задачи. в-третьих без использования БД, либо две версии, т.к. надо разбираться со всем постепенно. банальный скрипт, позволяющий в потенциале многое, но в первую очередь разобраться в базовых средствах PHP. лучше всех счетчиков из учебников - потому что картинка нам нафиг не нужна, как раз чаще счетчик с картинкой ставят для получения информации о посетителях. в крайнем случае если надо будет и к этому нетрудно прикрутить графический вывод. задача: собираем инфу по посетителям: запрошенные страницы и строка параметров, адрес, клиент, был ли пользователь раньше используем: работу с глобальным массивом $_SERVER, чтение файла в массив, перезапись файла, установку куки, генерацию уникального идентификатора, кодирование и декодирование base64 <?php // минимальный конфиг $logfile = $_SERVER['DOCUMENT_ROOT'].'/userlogger.csv'; // задаем имя файла для лога. $cookname = 'REQUEST_ID'; // имя куки $cooktime = 7; // дни жизни куки // сохраняем в переменных нужные нам вещи $request_time = date(Y.'.'.M.'.'.d.' '.G.':'.i.':'.s); // текущее время на сервере $request_UA = $_SERVER['HTTP_USER_AGENT']; // юзер-агент клиента $request_IP = $_SERVER['REMOTE_ADDR']; // айпишник $request_string = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; // строка запроса полностью if (!$request_cookie = $_COOKIE[$cookname]) {$request_cookie = '';} // кука если есть $request_id = uniqid(); // уникальный айди запроса $cookset = base64_encode($request_id); // в куку будем писать кодированный айди // читаем в массив что есть в логе и дописываем еще строку с инфой по текущему запросу $temp = file($logfile); // очень удобная функция, чтоб не использовать fopen+filesize+fclose (но удобна лишь для случая когда требуется полностью считать файл, не дополняя его) // порядок полей в лог-файле $log_write[] = $request_id; // айди запроса $log_write[] = $request_time; // время запроса $log_write[] = $request_string; // запрос $log_write[] = $request_IP; // адрес $log_write[] = $request_UA; // юзер-агент $log_write[] = base64_decode($request_cookie); // декодированное значение куки = айди предыдущего запроса этого посетителя $log_write = implode('^',$log_write); // объединяем все в строку с разделителем ^ $temp[] = $log_write; // добавляем эу строку последней в массив лога // ставим куку с айди текущего запроса @setcookie($cookname,$cookset,time() + $cooktime * 24 * 60 *60); // сохраняем лог $log = fopen($logfile,'w'); // открыли файл, стерев его foreach($temp as $tmp) {fwrite($log,trim($tmp)."n");} // каждый элемент массива записали в строку fclose($log); // закрыли лог ?> пример использования: обзываем этот файл logger.inc.php и кладем куда-нибудь. в файлах, обращение к которым требуется отслеживать, пишем <?php include_once(путь_к_этому_файлу); ?> создаем пустой лог-файл (по умолчанию это userlogger.csv в корне сайта), ставим ему права 0777 (-rwxrwxrwx) для просмотра можно качать этот файл к себе и открывать экселем... можно блокнотом... а можно написать небольшой просмотрщик (который выложу, если будет не лень). возможное расширение функциональности: + вместо файла сохранять данные в БД + отсылка отчета на мейл + фильтр, защищающий от слишком быстрого разрастания лога + картинка-счетчик на основании лога —————————————-- в его результатах очень интересно наблюдать подобные строки: 47947b4bd737b^2008.Jan.21 14:00:27^denton.msk.ru/CSShelp/?list=http%3A%2F%2Flnx.sarapica.net%2Fart%2Fufo%2Fuco%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^ 47947b4ca274b^2008.Jan.21 14:00:28^denton.msk.ru/CSShelp/?list=http%3A%2F%2Fwww.sfolly.net%2Fchat%2Fdata%2Fprivate%2Fchat%2Fasaz%2Fodofe%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^ 47947b51987cc^2008.Jan.21 14:00:33^denton.msk.ru/files/?showallfiles=http%3A%2F%2Fwww.ce-cioceoforum.com%2Ftalk%2Ft1%2Froda%2Filubov%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^ 47947b5487c46^2008.Jan.21 14:00:36^denton.msk.ru/files/?showallfiles=http%3A%2F%2Fsinzinuri.com%2Fimsi%2Fdb%2Fpic%2Fbezefi%2Fugoye%2F^69.61.61.146^Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)^ и потом блочить таких мегакрякеров по ипе, выдавая им что-нибудь вкусное типа "добро пожаловать в админ-панель". или просто нецензурно посылать, зависит от воображения
  4. эта строчка совсем не лишняя, угу. а код вообще страшный, лучше взять другой скрипт
  5. D.S.Denton

    PHP в HTML

    лично не проверял, но два хостера, независимо друг от друга (df.ru - тут у нас сервера fictionbook и the-game стоят и jino.ru - а тут мои сайты) рекомендуют на виртуальном хостинге использовать RewriteRule, а не AddType, если надо в адресной строке показывать .html, а фактическое имя файла не важно владельцу ресурса
  6. вариант решения вопроса с видео... http://www.jeroenwijering.com/?item=JW_FLV_Media_Player - плеер (и мп3 понимает) http://www.zamzar.com/ - онлайн-конвертер. теоретически нет ничего сложного через сокеты полностью имитировать поведение браузера, отдавая ему POST-запросом загруженный файл и затем сохранять у себя .flv, полученный по мейлу
  7. D.S.Denton

    PHP в HTML

    если в php-файле html-код находится вне <?php ... ?> он будет выводится как есть. плюс один нюанс (достаточно приятный) <?php $test = @$_GET['test']; ?> <html> <head> ... </head> <body> <?php if ($test = 1) { ?> <table width="100%" height="100%" border="1"><tr><td width="100%" height="100%" align="center" valign="middle"> это показывается только если к странице обратились с запросом index.php?test=1 </td></tr></table> <?php } else { ?> <div style="width:50%;height:50%;border:1px solid red;float:right;"> а это во всех остальных случаях </div> <?php } ?> </body> </html>
  8. D.S.Denton

    PHP в HTML

    зависит от настроек сервера. по идее нет, но будет достаточно изменить расширение на .php или прописать в настройках (вариант - .htaccess) AddType для .html если же принципиально чтоб пользователи видели .html, не подозревая о истинном расширении, можно переименовать в .php и воспользоваться mod_rewrite для переписывания, это будет менее муторно серверу, чем предыдущий вариант
  9. в таком случае намного проще делать не авто-инкремент средствами БД, а поле айди заполнять из скрипта. скрипт же проверяет количество строк в таблице и при добавлении новой увеличивает это значение на единицу, записывая его в качестве айди
  10. ну засунул в public_html файл test.htm теперь он соответственно доступен по адресу http://site.com/test.htm
  11. form,input {display:inline; margin:0; padding:0;}
  12. Vindex10, ТЗ в зависимости от того что имел в виду человек. если он говорит "а пошли вы все" - это его ИМХО, т.е. Точка Зрения. если же он описывает тактико-технические характеристики новой ядреной боеголовки - Техническое Задание (впрочем слова могут быть точно такими же)
  13. хммм... возникла еще мысль, без php. логотип пишем в один слой. содержимое страницы в другой, скрытый. при загрузке страницы скриптом в head, проверяем опять же куку. дальше аналогично, показываем если не стоит и ставим таймаут на скрытие после x секунд. если стоит - ставим сразу (в смысле таймаут 0) слою с логотипом display = 'none', а основному 'block' преимущество - будет работать везде, если у клиента включен js. недостаток - при медленном конекте лого будет виден всегда, независимо первый заход или нет. а также кушать трафик
  14. читать инструкцию у хостера куда надо было его загружать. если загружен правильно (обычно это директория с именем www, html, docs, public или как-то типа того), он уже доступен
  15. неа... можно сделать вообще отсутствие такого варианта. т.е. не выбраны оба варианта "есть" и "нет", соответственно если человек не выбрал ни один из них, переменной с именем nal_telefona в POST (или там GET?) передано не будет. и обработчик может просто проверять это дело как-то типа этого: <?php ... if (!isset($_POST['nal_telefona'])) {$nal_telefona = 0;} ... ?>
  16. где-то выше оно задано. либо путем присваивания переменной напрямую данных из запроса, либо каким-то еще образом, связанным с полученным GPCS запросом судя по таким конструкциям вообще, авторы этого шаблонизатора не могли обойтись без БД. значит выше где-то есть запрос к базе типа $db->query(...), в результате которого и имеется айди
  17. идея - переименовываем index.php в main.php и preindex.php в index.php. в index.php делаем проверку куки. если кука есть, переадресовываем через header на main.php. если куки нет, ставим ее и показываем логотип итд, задавая также в коде
  18. чисто интуитивно исходя из моего фигового знания английского: - скорее всего "если значение (value) равно чему-то, выполняется блок до - "поли" стандартная приставка "много". по аналогии монолог - разговор одного человека, диалог - двоих, полилог - многих/нескольких. то бишь одно значение из множества, плюс имя опции типа как в select'е у каждого option есть значение - что-то ключевое. сложно догадаться, не видя откуда взято
  19. очевидно раз чего-то нет это надо написать. или формулировать вопросы правильно
  20. color: #8c8c8c8c - ***Dento McLeod долго пытался понять что бы это значило... мм... а если на пальцах пояснить что надо?
  21. флешмоб? ну я присоединяюсь...
  22. в программке справа в менюшке "файл - правка - ..." есть такая вещь по имени "помощь". оно же доступно по нажатию F1. мы в конце концов не можем знать наизусть работу с каждой программой. общий принцип - копировать файлы в фтп-директорию аналогично тому как это делается на своей машине
  23. в любом случае надо использовать полную форму: disabled="disabled"
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy