D.S.Denton
Expert-
Posts
993 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Calendar
Store
Everything posted by D.S.Denton
-
***Denton McLeod давно юзает шестизнак (вроде)... проблем никаких, кроме одного случая когда у девушки отец словил трояна, но опять же восстановить никаких проблем не составляет. http://crazy-uins.ru - ему доверять можно точно
-
это я стормозил не дописал что надо будет перенумеровывать еще последующие строки :oops:
-
начнем-с скрипт-копилку для новичков делать? кому не лень, присоединяйтесь. комментарии в коде желательны. во-первых скрипты тут будут малость сырые - чтоб место для фантазии оставалось. во-вторых маленькие, каждый для одной задачи. в-третьих без использования БД, либо две версии, т.к. надо разбираться со всем постепенно. банальный скрипт, позволяющий в потенциале многое, но в первую очередь разобраться в базовых средствах 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)^ и потом блочить таких мегакрякеров по ипе, выдавая им что-нибудь вкусное типа "добро пожаловать в админ-панель". или просто нецензурно посылать, зависит от воображения
-
эта строчка совсем не лишняя, угу. а код вообще страшный, лучше взять другой скрипт
-
лично не проверял, но два хостера, независимо друг от друга (df.ru - тут у нас сервера fictionbook и the-game стоят и jino.ru - а тут мои сайты) рекомендуют на виртуальном хостинге использовать RewriteRule, а не AddType, если надо в адресной строке показывать .html, а фактическое имя файла не важно владельцу ресурса
-
вариант решения вопроса с видео... http://www.jeroenwijering.com/?item=JW_FLV_Media_Player - плеер (и мп3 понимает) http://www.zamzar.com/ - онлайн-конвертер. теоретически нет ничего сложного через сокеты полностью имитировать поведение браузера, отдавая ему POST-запросом загруженный файл и затем сохранять у себя .flv, полученный по мейлу
-
если в 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>
-
зависит от настроек сервера. по идее нет, но будет достаточно изменить расширение на .php или прописать в настройках (вариант - .htaccess) AddType для .html если же принципиально чтоб пользователи видели .html, не подозревая о истинном расширении, можно переименовать в .php и воспользоваться mod_rewrite для переписывания, это будет менее муторно серверу, чем предыдущий вариант
-
в таком случае намного проще делать не авто-инкремент средствами БД, а поле айди заполнять из скрипта. скрипт же проверяет количество строк в таблице и при добавлении новой увеличивает это значение на единицу, записывая его в качестве айди
-
ну засунул в public_html файл test.htm теперь он соответственно доступен по адресу http://site.com/test.htm
-
form,input {display:inline; margin:0; padding:0;}
-
их набрать проще
-
Vindex10, ТЗ в зависимости от того что имел в виду человек. если он говорит "а пошли вы все" - это его ИМХО, т.е. Точка Зрения. если же он описывает тактико-технические характеристики новой ядреной боеголовки - Техническое Задание (впрочем слова могут быть точно такими же)
-
При входе на сайт один раз показать НЕ главную страницу
D.S.Denton replied to WebWin's question in PHP
хммм... возникла еще мысль, без php. логотип пишем в один слой. содержимое страницы в другой, скрытый. при загрузке страницы скриптом в head, проверяем опять же куку. дальше аналогично, показываем если не стоит и ставим таймаут на скрытие после x секунд. если стоит - ставим сразу (в смысле таймаут 0) слою с логотипом display = 'none', а основному 'block' преимущество - будет работать везде, если у клиента включен js. недостаток - при медленном конекте лого будет виден всегда, независимо первый заход или нет. а также кушать трафик -
читать инструкцию у хостера куда надо было его загружать. если загружен правильно (обычно это директория с именем www, html, docs, public или как-то типа того), он уже доступен
-
неа... можно сделать вообще отсутствие такого варианта. т.е. не выбраны оба варианта "есть" и "нет", соответственно если человек не выбрал ни один из них, переменной с именем nal_telefona в POST (или там GET?) передано не будет. и обработчик может просто проверять это дело как-то типа этого: <?php ... if (!isset($_POST['nal_telefona'])) {$nal_telefona = 0;} ... ?>
-
<if val=> </if>; <poly name=> </poly>; <key> </key>;
D.S.Denton replied to Maciania's question in HTML Coding
где-то выше оно задано. либо путем присваивания переменной напрямую данных из запроса, либо каким-то еще образом, связанным с полученным GPCS запросом судя по таким конструкциям вообще, авторы этого шаблонизатора не могли обойтись без БД. значит выше где-то есть запрос к базе типа $db->query(...), в результате которого и имеется айди -
При входе на сайт один раз показать НЕ главную страницу
D.S.Denton replied to WebWin's question in PHP
идея - переименовываем index.php в main.php и preindex.php в index.php. в index.php делаем проверку куки. если кука есть, переадресовываем через header на main.php. если куки нет, ставим ее и показываем логотип итд, задавая также в коде -
<if val=> </if>; <poly name=> </poly>; <key> </key>;
D.S.Denton replied to Maciania's question in HTML Coding
чисто интуитивно исходя из моего фигового знания английского: - скорее всего "если значение (value) равно чему-то, выполняется блок до - "поли" стандартная приставка "много". по аналогии монолог - разговор одного человека, диалог - двоих, полилог - многих/нескольких. то бишь одно значение из множества, плюс имя опции типа как в select'е у каждого option есть значение - что-то ключевое. сложно догадаться, не видя откуда взято -
очевидно раз чего-то нет это надо написать. или формулировать вопросы правильно
-
color: #8c8c8c8c - ***Dento McLeod долго пытался понять что бы это значило... мм... а если на пальцах пояснить что надо?
-
флешмоб? ну я присоединяюсь...
-
в программке справа в менюшке "файл - правка - ..." есть такая вещь по имени "помощь". оно же доступно по нажатию F1. мы в конце концов не можем знать наизусть работу с каждой программой. общий принцип - копировать файлы в фтп-директорию аналогично тому как это делается на своей машине
-
http://forum.htmlbook.ru/help.php
-
в любом случае надо использовать полную форму: disabled="disabled"