Небольшие статьи [html, Css, Js, Php]

Discussion in 'PHP' started by banned, 16 Apr 2008.

?
  1. Да, очень

    50.0%
  2. Нормально

    40.0%
  3. Нет, это не нужно

    10.0%
  1. [dword]

    [dword] Elder - Старейшина

    Joined:
    11 Apr 2007
    Messages:
    109
    Likes Received:
    74
    Reputations:
    40
    ; - забыли в Вашем примере :)

    В 9.64 работает ;)
    Пример:
    HTML:
    <a href="http://forum.antichat.ru" title="Форум АНТИЧАТ   Forum ANTICHAT">ссылка</a>
     
    #61 [dword], 14 Oct 2009
    Last edited: 14 Oct 2009
    1. mff

      mff Elder - Старейшина

      Joined:
      12 Mar 2008
      Messages:
      2,074
      Likes Received:
      701
      Reputations:
      227
      [dword], поправил первый пост, я имел в виду вертикальную табуляцию

      ; забыл, ага. Еще заметил что в FF тоже не работает.
       
      1. FeraS

        FeraS Elder - Старейшина

        Joined:
        19 Jan 2007
        Messages:
        555
        Likes Received:
        420
        Reputations:
        76
        Тень для текста с помощью 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 — не работает.
         
        1 person likes this.
        1. mff

          mff Elder - Старейшина

          Joined:
          12 Mar 2008
          Messages:
          2,074
          Likes Received:
          701
          Reputations:
          227
          Кроссбраузерное добавление страницы в закладки

          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 работает)

          :cool:
           
          3 people like this.
          1. LStr1ke

            LStr1ke Elder - Старейшина

            Joined:
            29 Jul 2009
            Messages:
            801
            Likes Received:
            145
            Reputations:
            73
            DonkeyDick
            В теле страницы все равно остается куча не нужного кода. А за <xml и <noscript> ждите бан. вашему сайту..
            Это партнерство. Ты бесплатно используешь их хостинг, они привлекают потенциальных клиентов...
            Единственное верное решение - потратить 50 рублей себе на хостинг =\
             
            1. Se7en

              Se7en New Member

              Joined:
              5 Apr 2009
              Messages:
              6
              Likes Received:
              0
              Reputations:
              0
              Вообще бред, можно подумать, что каждый сайт, использующий эти теги, неизбежно отправляется в баню! Сколько раз юзал <noscript> и всё было в порядке, никакого бана не последовало.

              DonkeyDick,
              LStr1ke,

              Статические баннеры можно скрывать параметром opacity:

              Code:
              img {
              opacity: 1.0;
              filter:progid:DXImageTransform.Microsoft.Alpha (opacity=100); 
              }
               
              #66 Se7en, 31 Oct 2009
              Last edited: 31 Oct 2009
              1. N2kroot

                N2kroot New Member

                Joined:
                25 Oct 2009
                Messages:
                75
                Likes Received:
                3
                Reputations:
                0
                Статья: Мини-комментатор на 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) очищаем от вредных знаков...
                Респект АНТИЧАТу за обильный материал,на основе которого это было сделано...
                 
                #67 N2kroot, 15 Nov 2009
                Last edited: 15 Nov 2009
                1 person likes this.
                1. WNZRS

                  WNZRS Member

                  Joined:
                  3 Sep 2009
                  Messages:
                  294
                  Likes Received:
                  52
                  Reputations:
                  1
                  Защита паролей

                  Следующий скрипт захэширует пароль так, что его будет очень сложно расшифровать (пробрутить), причём без соли...
                  PHP:
                  <?php
                      $pass 
                  '123456';
                      
                  $md5 md5($_GET['p']);
                      
                  $md5 base_convert($md51610);
                      
                  $md5 strrev($md5);
                      
                  $md5 base_convert($md51016);
                      
                  $md5 md5($md5);
                      echo 
                  "Password's hash: ".$md5;
                  ?>
                  Стандартный md5 пароля 123456 вернёт e10adc3949ba59abbe56e057f20f883e
                  после всех операций в скрипте, хэш получится совсем другой (d23f62509ec1c377a9744174e325ee63).
                  Для усиления ещё можно использовать арифметические операции.
                   
                  1. N2kroot

                    N2kroot New Member

                    Joined:
                    25 Oct 2009
                    Messages:
                    75
                    Likes Received:
                    3
                    Reputations:
                    0
                    Это не статья, напиши ещё: как разшифровать и сделай полу ввода =)
                     
                    1. N2kroot

                      N2kroot New Member

                      Joined:
                      25 Oct 2009
                      Messages:
                      75
                      Likes Received:
                      3
                      Reputations:
                      0
                      Что за файлики инклудятся? Потерял пока писал? Или как :D
                       
                      1. N2kroot

                        N2kroot New Member

                        Joined:
                        25 Oct 2009
                        Messages:
                        75
                        Likes Received:
                        3
                        Reputations:
                        0
                        CW таблица PHP

                        Да, как раз для кс я переделал распростанённый код таблицы на HTML под CSS+PHP...
                        К сожалению я жадный ии админку не вылажу,так как тогда следующие мои статьи можно будет легко взломать --- админка предусмотрена под 3-10 юзеров разных прав,но незащищена от простого <script> и прочего...

                        Залил картинки тут: Images.rar

                        В общем вот мои коды:
                        CSS стили
                        PHP:
                        body {
                            
                        margin11px 0 0 0;
                            
                        padding0;
                            
                        background#000000 url(images/img1.gif) repeat-x;
                            
                        fontnormal small ArialHelveticasans-serif;
                            
                        color#999999;
                        }

                        h1h2h3h4h5h6 {
                            
                        margin0;
                            
                        padding0;
                            
                        text-transformuppercase;
                            
                        letter-spacing.2em;
                            
                        color#000000;
                        }

                        pulolblockquote {
                            
                        margin-top0;
                            
                        line-height160%;
                        }

                        {
                            
                        text-decorationnone;
                            
                        color#9ED738;
                        }

                        a:hover {
                            
                        text-decorationunderline;
                        }

                        /* Header */

                        #header {
                            
                        width720px;
                            
                        height161px;
                            
                        margin0 auto;
                            
                        backgroundurl(images/img2.jpgno-repeat;
                        }

                        #header * {
                            
                        text-decorationnone;
                            
                        text-aligncenter;
                            
                        color#000000;
                        }

                        #header h1 {
                            
                        padding-top55px;
                            
                        font-size3em;
                        }

                        #header h2 {
                            
                        font-size1.2em;
                        }

                        /* Menu */

                        #menu {
                            
                        width720px;
                            
                        height55px;
                            
                        margin0 auto;
                        }

                        #menu ul {
                            
                        margin0;
                            
                        padding0;
                            list-
                        stylenone;
                            
                        line-heightnormal;
                        }

                        #menu li {
                            
                        displayinline;
                        }

                        #menu a {
                            
                        displayblock;
                            
                        floatleft;
                            
                        width142px;
                            
                        height21px;
                            
                        padding7px 1px 0 1px;
                            
                        backgroundurl(images/img3.gifno-repeat center center;
                            
                        text-aligncenter;
                            
                        text-decorationnone;
                            
                        text-transformuppercase;
                            
                        letter-spacing.2em;
                            
                        font-sizex-small;
                            
                        font-weightbold;
                            
                        color#CCCCCC;
                        }

                        #menu a:hover, #menu .active a {
                            
                        background-imageurl(images/img4.gif);
                            
                        color#FFFFFF;
                        }

                        /* Content */

                        #content {
                            
                        width720px;
                            
                        margin0 auto;
                        }

                        #colOne {
                            
                        floatleft;
                            
                        width160px;
                        }

                        #colTwo {
                            
                        floatleft;
                            
                        width360px;
                            
                        padding0 20px;
                        }

                        #colThree {
                            
                        floatleft;
                            
                        width160px;
                        }

                        /* Content Elements */

                        #content h2 {
                            
                        height21px;
                            
                        margin-bottom20px;
                            
                        padding9px 0 0 10px;
                            
                        backgroundurl(images/img6.gif);
                            
                        letter-spacingnormal;
                            
                        font-size.9em;
                        }

                        #content h3 {
                            
                        text-transformuppercase;
                            
                        letter-spacingnormal;
                            
                        font-sizex-small;
                            
                        color#FFFFFF;
                        }

                        #content ul {
                            
                        margin-left0;
                            
                        padding-left0;
                            list-
                        stylesquare inside;
                        }

                        /* Footer */

                        #footer {
                            
                        height70px;
                            
                        padding7px 0 0 0;
                            
                        backgroundurl(images/img5.gifrepeat-x;
                        }

                        #footer * {
                            
                        color#000000;
                        }

                        #footer p {
                            
                        text-aligncenter;
                            
                        font-sizesmaller;
                        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: Нету защиты у бд...Полностью мой код(кроме таблицы,конечноже :) )
                        Прошу критику и прочее писать, мне интересно :D
                        P.S. Кому помог +
                         
                        #71 N2kroot, 5 Jan 2010
                        Last edited: 5 Jan 2010
                        1. mff

                          mff Elder - Старейшина

                          Joined:
                          12 Mar 2008
                          Messages:
                          2,074
                          Likes Received:
                          701
                          Reputations:
                          227
                          Конкатенация в JS

                          В отличие от некоторых других языков, оператор "+" делает конкатенацию, если хотя бы один операнд - строка, причем, не обязательно первый.
                          HTML:
                          alert(+"123"+num);
                          Но как же быть, если нужно сделать конкатенацию имен переменных? Пример:
                          HTML:
                          window["p_"+num+"_pos"]=2;
                          HTML:
                          document.getElementById("panel_"+num).style.display="block";
                           
                          1. Dr.Brain

                            Dr.Brain Banned

                            Joined:
                            4 Sep 2009
                            Messages:
                            6
                            Likes Received:
                            16
                            Reputations:
                            0
                            Экранный анализатор на PHP

                            [​IMG]

                            Сегодня я раскажу как с помощю 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>';
                            ?>
                            
                             
                            1. MDxaker

                              MDxaker Banned

                              Joined:
                              17 Mar 2009
                              Messages:
                              56
                              Likes Received:
                              15
                              Reputations:
                              0
                              [​IMG]

                              Статья посвященная созданию 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.---
                              Бот почему-то сам выходит из онлайна, надо его заново запускать
                              Нужно изменить тайм-лимит на исполнение скрипта.

                              Пишет ошибку при выполнении скрипта
                              Куча причин возможно.
                              Может быть аська и пароль бота не правильны или хостинг лажет, а может и в скрипте проблемма

                              Не входит в он-лайн
                              Пароль с асей могут быть не правильные. Или хостинг не позволяет

                              Очень долго отвечает бот
                              Хостинг возможно тупит, или Ваш бот очень загружен
                               
                              1. MDxaker

                                MDxaker Banned

                                Joined:
                                17 Mar 2009
                                Messages:
                                56
                                Likes Received:
                                15
                                Reputations:
                                0
                                [​IMG]

                                Сегодня я постараюсь расказать о том как сделать динамический индикатор выполнения задачи или просто progress bar!
                                Эта тема не претендует на звание статьи, но то что она девствительно нужна многим PHP программистам - это правда, потому прошу выделить ей отдельный топик.

                                Статья моя, и все вопросы касающиеся ее прошу задавать сдесь!

                                Я раскажу о том как сделать progress bar, который будет прослеживать любую задачу скрипта и динамически уведомлять юзера.
                                Постараюсь пошагово разьяснить все аспекты и помочь Вам в разборе скрипта.

                                А теперь о progress bar'e:
                                Начнем!


                                Progress bar - Легкая версия

                                Создадим простую, текстовую версию прогресс бара:

                                Выводим на экран сообщение что предупредит пользователя о загрузке скрипта
                                ВЫ можете вписать свое сообщение, все на свой вкус..

                                Теперь реализуем цикл, который будет определять заданую задачу и выводить точку
                                Если вы захотите использовать данный прогресс бар, Вам нужно будет заменить цикл while(true) на реальную проверку выполнения конкретной задачи.
                                Например существования файла или процес загрузки...
                                Вы можете реализовать нужный цикл с даным условием)

                                Progress bar - PHP + CSS версия

                                Создадим более сложную и более красивую версию:

                                Для начала создадим функцию, что будет создавать исходный вид полосы
                                Теперь выведем начальный XHTML, что будет перезаписан позже
                                Удостоверимся что результат выводится
                                Создадим функцию, которой передадим % в виде числа, а она просто будет генерировать правильный div
                                И закончим скрипт инициализацией функции progressbar() и имитацией деятельности (Обновляя последовательно результат)

                                Вот и все. Вы можете легко доделать скрипт под себя и свои сайты..

                                С уважением, MDxaker from Antichat!
                                 
                                #75 MDxaker, 4 May 2010
                                Last edited: 4 May 2010
                                1. MDxaker

                                  MDxaker Banned

                                  Joined:
                                  17 Mar 2009
                                  Messages:
                                  56
                                  Likes Received:
                                  15
                                  Reputations:
                                  0
                                  [​IMG]

                                  Сейчас я раскажу о том, как сделать "выделялку" части сайта, на которой находится юзер
                                  Эта тема не претендует на звание статьи, потому прошу не писать глупые комменты о том что толку 0 и т.п.!
                                  Запомните, толк всегда есть, даже если статья посвящена тому как нужно выгребать говно!

                                  Статья моя, и все вопросы касающиеся ее прошу задавать сдесь!

                                  Бредословие:

                                  Навигация с выделеным цветом

                                  Создадим функцию, что будет выделять цветом ту секцию в которой будет находится юзверь:

                                  Теперь сделаем массив, содержащий имена всех секций и URL

                                  И применяем код СSS

                                  И вызываем функцию

                                  Повторяю, что это не статья, а пособие с примерами как можно решить проблемму с которой сталкиваются не мало PHP программистов.
                                  Я просто описал способ достижения цели которым сам пользуюсь и отписал про это сдесь чтобы и вы могли оценить!
                                  //by m0Hze, переместил. Надеюсь больше отдельных тем, для имбо-скриптов не будет.
                                   
                                  #76 MDxaker, 4 May 2010
                                  Last edited by a moderator: 4 May 2010
                                  1. realcoder

                                    realcoder Member

                                    Joined:
                                    9 Dec 2010
                                    Messages:
                                    226
                                    Likes Received:
                                    11
                                    Reputations:
                                    4
                                    Делаем капчу на своем сайте для защиты от ботов

                                    Сейчас я покажу, как сделать на своем сайте защиту от ботов в виде 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>";
                                    }
                                    ?>
                                    Вот и все. Можете убедиться в этом!
                                     
                                    #77 realcoder, 25 Feb 2011
                                    Last edited: 25 Feb 2011
                                    1. realcoder

                                      realcoder Member

                                      Joined:
                                      9 Dec 2010
                                      Messages:
                                      226
                                      Likes Received:
                                      11
                                      Reputations:
                                      4
                                      Узнаем страну посетителя сайта по 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;
                                      }
                                       
                                      1. Fepsis

                                        Fepsis Elder - Старейшина

                                        Joined:
                                        17 Sep 2008
                                        Messages:
                                        791
                                        Likes Received:
                                        391
                                        Reputations:
                                        72
                                        Оффтоп
                                        realcoder, вообще капча делается для защиты от ботов, твою же любой уважающий себя бот обойдёт.. Во-первых значение поля "captcha" легко парсится из исходника страницы, во-вторых, тут даже парсить ничего не придётся, просто бот передаёт pr=ololo и captcha=ololo и твой скрипт его пропускает
                                        PHP:
                                        if($_POST["captcha"]==$_POST["pr"]) 

                                        echo 
                                        "<h1>Captcha OK!</h1>"
                                        }
                                         
                                        1. mff

                                          mff Elder - Старейшина

                                          Joined:
                                          12 Mar 2008
                                          Messages:
                                          2,074
                                          Likes Received:
                                          701
                                          Reputations:
                                          227
                                          Верстаем таблицу дивами (слоями)

                                          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>