; - забыли в Вашем примере В 9.64 работает Пример: HTML: <a href="http://forum.antichat.ru" title="Форум АНТИЧАТ Forum ANTICHAT">ссылка</a>
[dword], поправил первый пост, я имел в виду вертикальную табуляцию ; забыл, ага. Еще заметил что в FF тоже не работает.
Тень для текста с помощью CSS Может кто-то и не знает, но красиво оформить текст с помощью добавления к нему тени можно и без использования всяких JS-скриптов. Для этого существует свойство text-shadow. Пример использования: Code: h2 { color: #FF0000; text-shadow: 2px 2px 4px #0000FF; } HTML: <h2>Текст с тенью</h2> Теперь наш заголовок второго уровня будет красный с синей тенью. Циферки в свойстве означают: Первые две цифры (2px 2px) — смещение тени на n пикселей по горизонтали и вертикали соответственно. Т.е. в нашем примере тень будет смещена на 2 пикселя вправо и вниз. Можно указывать и отрицательные значения, тогда тень будет смещаться влево вверх. Третья цифра (4px) — ширина тени. Ну и последним в свойстве указывается цвет тени, в нашем случае это синий. Вот, впринципе и все. Единственная проблема — совместимость с браузерами. В Opera 10, Firefox 3.5.3, Chrome 3.0.195 — все ок работает; в InternetExplorer 8 — не работает.
Кроссбраузерное добавление страницы в закладки JS HTML: function add_favorite(a) { title=document.title; url=document.location; try { // Internet Explorer window.external.AddFavorite(url, title); } catch (e) { try { // Mozilla window.sidebar.addPanel(title, url, ""); } catch (e) { // Opera if (typeof(opera)=="object") { a.rel="sidebar"; a.title=title; a.url=url; return true; } else { // Unknown alert('Нажмите Ctrl+D чтобы добавить страницу в закладки.'); } } } return false; } HTML HTML: <a href="#" onclick="javascript: return add_favorite(this);">Добавить в Избранное</a> Результаты проверки: Opera 10.00 - работает Internet Explorer 7 - работает Mozilla Firefox 3.0.14 - работает Google Chrome 3.0.195.27 - alert (Ctrl+D работает) Apple Safari 4.0 (530.17) - alert (Ctrl+D работает)
DonkeyDick В теле страницы все равно остается куча не нужного кода. А за <xml и <noscript> ждите бан. вашему сайту.. Это партнерство. Ты бесплатно используешь их хостинг, они привлекают потенциальных клиентов... Единственное верное решение - потратить 50 рублей себе на хостинг =\
Вообще бред, можно подумать, что каждый сайт, использующий эти теги, неизбежно отправляется в баню! Сколько раз юзал <noscript> и всё было в порядке, никакого бана не последовало. DonkeyDick, LStr1ke, Статические баннеры можно скрывать параметром opacity: Code: img { opacity: 1.0; filter:progid:DXImageTransform.Microsoft.Alpha (opacity=100); }
Статья: Мини-комментатор на Php в одном файле,использующий в качестве бд файлы. Я недавно начал изучать PHP и сразу захотелось создать что-нибудь,да не просто 1+1=2 ,а довольно полезное... Итак: Всё в трёх файлах,ниже --- и форма и вывод: PHP: <html><?php include('config.php'); #вывели данные $fh = file("mess.txt"); for ($i = count($fh); $i>0; $i--) echo ($fh[$i-1]."<br>"); ?> <form name="form1" method="post" action="vid.php"> <INPUT TYPE="text" NAME="mess"><BR> <INPUT TYPE="submit" value="Отправить"><BR> <b>Текст</b>-[b]Текст[/b]<BR> <i>ТЕКСТ</i>-[i]Текст[/i]<BR> </form> <?php $today = date("H:i:s"); echo ("Щас :<b> $today</b>") ?> </html> <?php #теперь запись if(isset($_POST['mess'])) { $mess = $_POST['mess']; } else { echo ("Сообщение пусто"); } if ($mess == '') { echo (",или заданы неверные символы!"); } else { $m = $_POST['mess']; $fh = fopen("mess.txt","a"); $today = date("H:i:s"); $mess = trim($mess); fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT>$m<BR>"); fclose($fh); } ?> Добавочный файл : config.php PHP: <?php $m = str_replace("[b]","<b>",$m); $m = str_replace("[/b]","</b>",$m); $m = str_replace("[/i]","</i>",$m); $m = str_replace("[i]","<i>",$m); ?> В примере я использовал форму для отправки кс серваков,поскольку все их не запомнить,а в избранном и так их море,тут можно написать ип,хар-ку... Ник отправителя = Ip через прокси его(как уж знаю так и сделал ) Текст : через trim($text) очищаем от вредных знаков... Респект АНТИЧАТу за обильный материал,на основе которого это было сделано...
Защита паролей Следующий скрипт захэширует пароль так, что его будет очень сложно расшифровать (пробрутить), причём без соли... PHP: <?php $pass = '123456'; $md5 = md5($_GET['p']); $md5 = base_convert($md5, 16, 10); $md5 = strrev($md5); $md5 = base_convert($md5, 10, 16); $md5 = md5($md5); echo "Password's hash: ".$md5; ?> Стандартный md5 пароля 123456 вернёт e10adc3949ba59abbe56e057f20f883e после всех операций в скрипте, хэш получится совсем другой (d23f62509ec1c377a9744174e325ee63). Для усиления ещё можно использовать арифметические операции.
CW таблица PHP Да, как раз для кс я переделал распростанённый код таблицы на HTML под CSS+PHP... К сожалению я жадный ии админку не вылажу,так как тогда следующие мои статьи можно будет легко взломать --- админка предусмотрена под 3-10 юзеров разных прав,но незащищена от простого <script> и прочего... Залил картинки тут: Images.rar В общем вот мои коды: CSS стили PHP: body { margin: 11px 0 0 0; padding: 0; background: #000000 url(images/img1.gif) repeat-x; font: normal small Arial, Helvetica, sans-serif; color: #999999; } h1, h2, h3, h4, h5, h6 { margin: 0; padding: 0; text-transform: uppercase; letter-spacing: .2em; color: #000000; } p, ul, ol, blockquote { margin-top: 0; line-height: 160%; } a { text-decoration: none; color: #9ED738; } a:hover { text-decoration: underline; } /* Header */ #header { width: 720px; height: 161px; margin: 0 auto; background: url(images/img2.jpg) no-repeat; } #header * { text-decoration: none; text-align: center; color: #000000; } #header h1 { padding-top: 55px; font-size: 3em; } #header h2 { font-size: 1.2em; } /* Menu */ #menu { width: 720px; height: 55px; margin: 0 auto; } #menu ul { margin: 0; padding: 0; list-style: none; line-height: normal; } #menu li { display: inline; } #menu a { display: block; float: left; width: 142px; height: 21px; padding: 7px 1px 0 1px; background: url(images/img3.gif) no-repeat center center; text-align: center; text-decoration: none; text-transform: uppercase; letter-spacing: .2em; font-size: x-small; font-weight: bold; color: #CCCCCC; } #menu a:hover, #menu .active a { background-image: url(images/img4.gif); color: #FFFFFF; } /* Content */ #content { width: 720px; margin: 0 auto; } #colOne { float: left; width: 160px; } #colTwo { float: left; width: 360px; padding: 0 20px; } #colThree { float: left; width: 160px; } /* Content Elements */ #content h2 { height: 21px; margin-bottom: 20px; padding: 9px 0 0 10px; background: url(images/img6.gif); letter-spacing: normal; font-size: .9em; } #content h3 { text-transform: uppercase; letter-spacing: normal; font-size: x-small; color: #FFFFFF; } #content ul { margin-left: 0; padding-left: 0; list-style: square inside; } /* Footer */ #footer { height: 70px; padding: 7px 0 0 0; background: url(images/img5.gif) repeat-x; } #footer * { color: #000000; } #footer p { text-align: center; font-size: smaller; rega.php PHP: // если вы пользуетесь чем-либо..// (админка\регистрация, то оставьте Else) else{ If ($gm =="3") { echo("><BR><BR><BR><BR><BR><BR><BR><BR><BR><div id=content><div id=colOne><h2>Блок админа</h2><h3>Cw</h3><p><br>Вскоре сделаю удаление только отдельных рядов таблиц... <a href=rega.php?del=dule>Удалить все ряды...</a></p>"); if($gm==proverenniy and $del=='dule') // Если вы без админки,то удалите If и его {} {unlink("data/wcavto.txt"); unlink("data/wcavtoid.txt");} $fh = @file("/data/wcavtoid.txt"); echo("<div id=content><div id=coTwo><p><form name=form1 method=post action=rega.php><br><br><br><br><br><p>Здравствуйте,система разработана Shmel<br> Впишите данные, не обязательно брать подсказочные<BR> скрипт можно будет скачать для своих нужд,после окончания тестирования<BR></p> Команда и соперник:<INPUT TYPE=text NAME=team Value='CT vs T' size=35><BR> Карта:<INPUT TYPE=text NAME=map Value='de_' size=35><BR> Сколько на сколько?:<INPUT TYPE=text NAME=skoko Value='3 vs 3' size=35><BR> Победитель:<INPUT TYPE=text NAME=winner Value='Команда?-победитель!' size=35><BR> Побед(В раундах):<INPUT TYPE=text NAME=countW Value='' size=35><BR> Проигрышей(В раундах):<INPUT TYPE=text NAME=countD Value='' size=35><BR> <INPUT TYPE=submit value='Обновить'><BR> </form></p>"); $arr2 = file("data/wcavtoid.txt"); $i=0; foreach($arr2 as $line2){ $i++; list($avtor,$id)=explode("::",$line2); $bd['avtor'][]=$avtor; $bd['id'][]=$id; } $newid=$id+1; echo("$newid"); if ($team == '' or $map == '' or $skoko =='' or $winner =='' or $countW =='' or $countD =='') { echo ("Ахтунг Не введены главные данные"); } else { $avtor = $c_name; //если нету админки,замените на // ип человека. $team = $_POST['team']; $map = $_POST['map']; $skoko = $_POST['skoko']; $winner = $_POST['winner']; $countW = $_POST['countW']; $countD = $_POST['countD']; $fh = fopen("data/wcavto.txt","a+"); $team="<TD class=gTableBody1 noWrap>$team</TD>"; $map="<TD class=gTableBody1 noWrap>$map</TD>"; $skoko="<TD class=gTableBody1 noWrap>$skoko</TD>"; $winner="<TD class=gTableBody1 noWrap>$winner</TD>"; $countWD="<TD class=gTableBody1 noWrap><B>$countW</B>-$countD</TD></TR>\r\n"; $fh = fopen("data/wcavtoid.txt","a+"); fwrite($fh,"$avtor::$newid\r\n"); fclose($fh); $fh2 = fopen("data/wcavto.txt","a+"); fwrite($fh2,"$team::$map::$skoko::$winner::$countWD::\r\n<TR align=middle>\r\n"); fclose($fh2); } } echo ("<TABLE style=BORDER-RIGHT: #494949 0px solid; BORDER-TOP: #494949 0px solid; BORDER-LEFT: #494949 0px solid; BORDER-BOTTOM: #494949 0px solid cellSpacing=0 cellPadding=0 width=100% border=0><TBODY><TR><TD style=BORDER-RIGHT: #262626 0px solid; PADDING-RIGHT: 10px; BORDER-TOP: #262626 0px solid; PADDING-LEFT: 10px; BACKGROUND: #2c2c2c; PADDING-BOTTOM: 10px; BORDER-LEFT: #262626 0px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #262626 0px solid> <TABLE class=gTable cellSpacing=0 cellPadding=0 width=100% border=1><TBODY> <TR align=middle> <TD class=gTableSubTop>Команда - противник</TD> <TD class=gTableSubTop>Карта</TD> <TD class=gTableSubTop>Количество</TD> <TD class=gTableSubTop>Победитель</TD> <TD class=gTableSubTop>Счёт</TD></TR> <TR align=middle>"); $arr = file("data/wcavto.txt"); $i=0; foreach($arr as $line){ $i++; list($team,$map,$skoko,$winner,$countWD,$tableend)=explode("::",$line); $bd['team'][]=$team; $bd['map'][]=$map; $bd['skoko'][]=$skoko; $bd['winner'][]=$winner; $bd['countWD'][]=$countWD; $bd['tableend'][]=$tableend; } for($i=count($arr)-1; $i>=0; $i--) { $see=$bd['team'][$i]; $see.=$bd['map'][$i]; $see.=$bd['skoko'][$i]; $see.=$bd['winner'][$i]; $see.=$bd['countWD'][$i]; $see.=$bd['tableend'][$i]; echo($see); } // просто ссылки include("templates/index_end.htm"); } ?> файлы wcavto.txt и wcavtoid.txt: wcavto.txt : PHP: <TD class=gTableBody1 noWrap>CT vs T</TD>::<TD class=gTableBody1 noWrap>de_VooDoo</TD>::<TD class=gTableBody1 noWrap>3 vs 3</TD>::<TD class=gTableBody1 noWrap>CT WIN!</TD>::<TD class=gTableBody1 noWrap><B>1</B>-0</TD></TR> :: <TR align=middle> wcavtoid.txt: PHP: Ness::1 Минус только 1: Нету защиты у бд...Полностью мой код(кроме таблицы,конечноже ) Прошу критику и прочее писать, мне интересно P.S. Кому помог +
Конкатенация в JS В отличие от некоторых других языков, оператор "+" делает конкатенацию, если хотя бы один операнд - строка, причем, не обязательно первый. HTML: alert(+"123"+num); Но как же быть, если нужно сделать конкатенацию имен переменных? Пример: HTML: window["p_"+num+"_pos"]=2; HTML: document.getElementById("panel_"+num).style.display="block";
Экранный анализатор на PHP Сегодня я раскажу как с помощю PHP, реализовать экранный анализатор! Экранный анализатор - программа или скрипт, которая просматривает Web-страницу, извлекая при этом нужные данные. Сейчас мы расмотрим простейший анализатор, который извлечет ссылки и отсортирует их по катеогориям! И так, первым делом мы создадим форму что передаст нашему скрипту ссылку! Code: <?php echo '<form method=get> Ваша ссылка: <input name="url" type="text" value="http://"> </form>'; Теперь перейдём непосредственно к получению и обработке ссылки Code: if (isset($_REQUEST["url"])) { // проверяем наличие ссылки $url = $_REQUEST["url"]; // получаем данные от формы if (!preg_match('|^https{0,1}://|', $url)) { // С помощю регулярного выражения, проверяем ссылку print "URL $url не является валидным!"; exit(0); } } Самое время получить ссылки! Я буду использовать простую функцию file_get_contents(), потому-что в нашем случае использовать socket или curl безсмысленно! Code: $page = file_get_contents($url); // Получаем страницу preg_match_all('|<a\s[^>]*href="([^"]+)"|i', $page, $match); // С помощю регулярки, вытягиваем все гиперссылки! Теперь все гиперссылки находятся в массиве $match[1], а match[0] содержит все совпадения! Можна инициализировать массивы, которые будем использовать для хранения и сортировки ссылок! Code: $all = array(); $js = array(); $full = array(); $local = array(); Получив все что нужно, начнём сортировку! Code: foreach ($match[1] as $link) { if ($all[$link]) { // Все ссылки continue; } $all[$link] = true; if (preg_match('/^javascript:/', $link)) { // Регуляркой достаем JS ссылки $js[] = $link; } elseif (preg_match('/^https{0,1}:/i',$link)) { // Достаем полные ссылки $full[] = $link; } else { $local[] = $link; // Остатки } } Мы все сделали, осталось лишь вывести результат! Code: print '<table border=0> <tr><td>Всего ссылок:</td><td>'; print strval(count($match[1])) . "</td></tr>"; print '<tr><td>Уникальных ссылок:</td><td>'; print strval(count($all)) . "</td></tr>"; print '<tr><td>Локальных ссылок:</td><td>'; print strval(count($local)) . "</td></tr>"; print '<tr><td>Полных ссылок:</td><td>'; print strval(count($full)) . "</td></tr>"; print '<tr><td>JavaScript ссылок:</td><td>'; print strval(count($js)) . "</td></tr>"; print '</table>'; ?> Вот и все! В результате у нас получился вот такой скрипт: Code: <?php echo '<form method=get> Ваша ссылка: <input name="url" type="text" value="http://"> </form>'; $url = $_REQUEST["url"]; if (!preg_match('|^https{0,1}://|', $url)) { print "URL $url не является валидным!"; exit(0); } $page = file_get_contents($url); preg_match_all('|<a\s[^>]*href="([^"]+)"|i', $page, $match); $all = array(); $js = array(); $full = array(); $local = array(); foreach ($match[1] as $link) { if ($all[$link]) { continue; } $all[$link] = true; if (preg_match('/^javascript:/', $link)) { $js[] = $link; } elseif (preg_match('/^https{0,1}:/i',$link)) { $full[] = $link; } else { $local[] = $link; } } print '<table border=0> <tr><td>Всего ссылок:</td><td>'; print strval(count($match[1])) . "</td></tr>"; print '<tr><td>Уникальных ссылок:</td><td>'; print strval(count($all)) . "</td></tr>"; print '<tr><td>Локальных ссылок:</td><td>'; print strval(count($local)) . "</td></tr>"; print '<tr><td>Полных ссылок:</td><td>'; print strval(count($full)) . "</td></tr>"; print '<tr><td>JavaScript ссылок:</td><td>'; print strval(count($js)) . "</td></tr>"; print '</table>'; ?>
Статья посвященная созданию ICQ бота на PHP языке! Автор статьи я! Потому все связаные с ней вопросы ко мне! Арсенал: 1) Хостинг или дедик 2) Знание PHP 3) Клас ICQ 4) ICQ номер бота 5) Руки ---Шаг первый--- Начнем с того что найдем клас для создания бота. Этот клас сам разберется со всеми проблемами протокола ICQ и позволит нам подлючится к ICQ за несколько комманд. Я выбрал mlCQ library v0.4 (Скачать все PHP скрипты сможете вконце темы) Называем его lib.php и на время забываем. ---Шаг второй--- Создадим файл конфига conf.php! В нем будут хранится разного рода настройки скрипта и бота. Например ICQ и пароль бота, его статус и будет ли скрипт вести логи. conf.php Сохраняем в папке с lib.php и забываем! ---Шаг третий--- Перейдем к оболочке бота и скрипте что будет управлять всем функционалом! Тут будет хранится скрипт входа в on-line, скрипт обработки и еще много чего! Начнем с того что подключим lib.php и conf.php! bot.php Теперь определим параметр ICQ birthday, логов и запустим бота Ну а сейчас займёмся списком команд Вот теперь самая сложная часть которая разместит в себе весь остаток кода! Сохраняем как bot.php, и идем на хостинг ---Шаг четвертый--- Нам нужен хостинг под бота! Я своего держу на bravohost.ru. Почему там? Там можно редактировать настройку о том сколько может исполнятся скрипт + есть cron который будет перезапускать скрипт каждые 10 мин. Если хотите делать на дедике, то устанавливайте любую сборку сервера и в настройках укажите любое нужное Время исполнения, через которое Ваш скрипт остановится (Т.е. Вам надо будет его запускать снова) Выбрали? Идем на хост и заливаем скрипты. На папку с скриптом (Если нужны логи) кладем права 777. Теперь запускаем bot.php и скрипт не должен открыватся (Т.е. Зависнуть) Добавляйте бота и общайтесь с ним. Если же ошибка, значит где-то в коде проблема или с хостингом лажа. Вот пак из скриптов, которые собраны по этой статье! Там находится клас mlCQ. Конфиг и оболочка бота! Скачать upwap.ru: Архив с скриптами ---F.A.Q.---Бот почему-то сам выходит из онлайна, надо его заново запускать Нужно изменить тайм-лимит на исполнение скрипта. Пишет ошибку при выполнении скрипта Куча причин возможно. Может быть аська и пароль бота не правильны или хостинг лажет, а может и в скрипте проблемма Не входит в он-лайн Пароль с асей могут быть не правильные. Или хостинг не позволяет Очень долго отвечает бот Хостинг возможно тупит, или Ваш бот очень загружен
Сегодня я постараюсь расказать о том как сделать динамический индикатор выполнения задачи или просто progress bar! Эта тема не претендует на звание статьи, но то что она девствительно нужна многим PHP программистам - это правда, потому прошу выделить ей отдельный топик. Статья моя, и все вопросы касающиеся ее прошу задавать сдесь! Я раскажу о том как сделать progress bar, который будет прослеживать любую задачу скрипта и динамически уведомлять юзера. Постараюсь пошагово разьяснить все аспекты и помочь Вам в разборе скрипта. А теперь о progress bar'e: Начнем! Progress bar - Легкая версия Создадим простую, текстовую версию прогресс бара: Выводим на экран сообщение что предупредит пользователя о загрузке скрипта ВЫ можете вписать свое сообщение, все на свой вкус.. Теперь реализуем цикл, который будет определять заданую задачу и выводить точку Если вы захотите использовать данный прогресс бар, Вам нужно будет заменить цикл while(true) на реальную проверку выполнения конкретной задачи. Например существования файла или процес загрузки... Вы можете реализовать нужный цикл с даным условием) Progress bar - PHP + CSS версия Создадим более сложную и более красивую версию: Для начала создадим функцию, что будет создавать исходный вид полосы Теперь выведем начальный XHTML, что будет перезаписан позже Удостоверимся что результат выводится Создадим функцию, которой передадим % в виде числа, а она просто будет генерировать правильный div И закончим скрипт инициализацией функции progressbar() и имитацией деятельности (Обновляя последовательно результат) Вот и все. Вы можете легко доделать скрипт под себя и свои сайты.. С уважением, MDxaker from Antichat!
Сейчас я раскажу о том, как сделать "выделялку" части сайта, на которой находится юзер Эта тема не претендует на звание статьи, потому прошу не писать глупые комменты о том что толку 0 и т.п.! Запомните, толк всегда есть, даже если статья посвящена тому как нужно выгребать говно! Статья моя, и все вопросы касающиеся ее прошу задавать сдесь! Бредословие: Навигация с выделеным цветом Создадим функцию, что будет выделять цветом ту секцию в которой будет находится юзверь: Теперь сделаем массив, содержащий имена всех секций и URL И применяем код СSS И вызываем функцию Повторяю, что это не статья, а пособие с примерами как можно решить проблемму с которой сталкиваются не мало PHP программистов. Я просто описал способ достижения цели которым сам пользуюсь и отписал про это сдесь чтобы и вы могли оценить! //by m0Hze, переместил. Надеюсь больше отдельных тем, для имбо-скриптов не будет.
Делаем капчу на своем сайте для защиты от ботов Сейчас я покажу, как сделать на своем сайте защиту от ботов в виде captcha теста. 1. Сначала необходимо подготовить картинки. нужны картинки с изображениями цифр от 1 до 10. Из них будет формироваться рисунок капчи. чтобы не заморачиваться можете воспользоваться моими http://zalil.ru/30568737. Распакуйте их в папку img\ 2. Нужно подготовить форму, которую необходимо защитить Я набосал простую форму, где просто преверяется капча: PHP: <HTML> <HEAD><TITLE>Form</TITLE></HEAD> <BODY> <form action="check.php" method=post> <p>Введите числа с картинки:</p> <?php $i=1; do { $num[$i] = rand(0,9); echo "<img src='img/".$num[$i].".gif' border='0' align='bottom' vspace='5px'>"; $i++; } while ($i<5); $captcha=$num[1].$num[2].$num[3].$num[4]; ?> <input name="pr" style="margin-bottom:11px" type="text" size="6" maxlength="4"> <br> <input name="captcha" type="hidden" value="<?php echo $captcha;?>"> <br> <INPUT TYPE="SUBMIT" name="submit" value="Check"> </FORM> </BODY> </HTML> 3. Напишем скрипт для проверки(check.php): PHP: <?php if($_POST["captcha"]==$_POST["pr"]) { echo "<h1>Captcha OK!</h1>"; } else { echo "<h1>Invalid Captcha!</h1>"; } ?> Вот и все. Можете убедиться в этом!
Узнаем страну посетителя сайта по IP PHP: function whois($ip) { if ($ip!="") { $sock = fsockopen ("whois.ripe.net",43,$errno,$errstr); if ($sock) { fputs ($sock, $ip."\r\n"); while (!feof($sock)) { $str.=trim(fgets ($sock,128)." <br>"); } } else { $str.="$errno($errstr)"; return; } fclose ($sock); } return $str; } $whois=whois($_SERVER['REMOTE_ADDR']); $need = "country:"; $pos = strpos($whois,$need); $search = substr($whois,$pos,18); $excount = explode(":", $search); $country = trim($excount[1]); //готово в результате в переменной $country окажется страна посетителя. к примеру можно запретить посещение ващего сайта для пользователей украины: PHP: if($country=="UK") { echo "ACCES DENIDED!!!!"; exit; }
Оффтоп realcoder, вообще капча делается для защиты от ботов, твою же любой уважающий себя бот обойдёт.. Во-первых значение поля "captcha" легко парсится из исходника страницы, во-вторых, тут даже парсить ничего не придётся, просто бот передаёт pr=ololo и captcha=ololo и твой скрипт его пропускает PHP: if($_POST["captcha"]==$_POST["pr"]) { echo "<h1>Captcha OK!</h1>"; }
Верстаем таблицу дивами (слоями) HTML: <style type="text/css"> <!-- .table { display:table; border-top:solid 1px #D3E0F4; border-right:solid 1px #D3E0F4; } .table div { display:table-row; border-left:solid 1px #D3E0F4; padding:2px; border-bottom:solid 1px #D3E0F4; padding:2px; vertical-align: top; } .table div div { display:table-cell } --> </style> HTML: <div class="table"> <!-- таблица --> <div> <!-- строка таблицы --> <div>Античат</div> <!-- ячейка таблицы --> <div>Античат</div> <div>Античат</div> </div> <div> <div>1</div> <div>2</div> <div>3</div> </div> </div>