[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    а можно еще
    $ip=$_SERVER['REMOTE_ADDR'];
    сделать чтоб не пустоту записывало =)
     
  2. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    Да через базу! База элементарная!
    Кстати я ссылки не учел, вот скрипт с сылками
    PHP:
    <?   $time time ("формат времени");   mysql_query ("INSERT INTO таблица (time,ssilka, host) values ('$time','$_SERVER[SCRIPT_NAME]', '$ip') ");   ?>
     
  3. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    Если с базой устроет могу дать sql запрос на ее создание
     
    1 person likes this.
  4. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    да мне без бд надо.
    ещё раз повторюсь: неужен такой скрипт который запишит Ip и время перехода по ссылке в текстовый файл
    чтото на подобие : Статистика кликов рекламы wmlink.ru , и других подобных сайтов

    чтото вроде этого только считает не общую статистику, а перехода по ссылке
    PHP:
    <?php
    $ip
    =getenv("REMOTE_ADDR");
    $datetime=date("m/d/y G.i:s"time());
    $os=getenv("HTTP_USER_AGENT");
    $host=getenv("REMOTE_HOST");
    $page=getenv("HTTP_REFERER");
    $fp=fopen("visitors.txt""a+");
    fputs($fp"<b>Дата:</b> $datetime <b>ip:</b> $ip <b>версия браузера:</b> $os <b>host:</b> $host <b>страница:</b> $page<br>\r\n");
    fclose($fp);
    ?>[QUOTE]
     
    #4364 heretic1990, 28 Jul 2008
    Last edited: 28 Jul 2008
  5. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    всем хай:)

    такая проблемка возникла, на сайте есть rss-лента, в ней отображаются новости с картинками, картинки бывают с другого сайта так и со своего, в базе адрес до картинки хранится относительный и при генерации ленты, чтобы при просмотре отбражались картинки нужно сделать так:

    $rimg = str_replace("img", "http://sait.net/img", $rimg);

    img - это папка на моем сайте с картинками, тоисть, если в адресе другого сайта есть слово img, то это херня =0

    поэтому нужно делать такую замену только тогда, когда в адресе картинки есть - http://

    хелп ме :)
     
  6. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
     
  7. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    Помойму должен работать:
    PHP:
    <?   $ip=(isset($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:0;  $time=time('формат');  $vse"$ip|$time";  $fp=fopen("test.txt");  fwrite($fp,$vse);   ?>
     
  8. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    не небудет работать
    $fp=fopen("test.txt"); режим не указан
     
  9. Jer1cho

    Jer1cho Member

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    65
    Reputations:
    10
    PHP:
    <?php
    if(eregi('http://'$rimg))
    {
        
    $rimg str_replace("img""http://sait.net/img"$rimg);
    }
    else
    {
        ........
    }
    ?>
    http://php.net/eregi
     
  10. agrofyl2

    agrofyl2 New Member

    Joined:
    25 Apr 2008
    Messages:
    54
    Likes Received:
    4
    Reputations:
    0
    heretic1990 есть скрипт у меня самописный для статистики моего сайта.
    Переделал для статистики кликов:

    Файл статистики.
    PHP:
    <?php
    $a
    =htmlspecialchars(stripslashes($_GET['ref']));
    $sav_f='Z:\home\localhost\www\statistic.txt';
    $fo=fopen($sav_f"a");
    $data=strftime('%d.%m.%y %H:%M:%S').'^^'.$_SERVER['REMOTE_ADDR'].'^^'.$_SERVER['HTTP_REFERER'].'^^'.$_SERVER['HTTP_USER_AGENT'].'^^'.$_SERVER['QUERY_STRING'].'^^'.$a."\n";
    fwrite($fo$data);
    ?>
    Файл для чтения статистики.
    PHP:
    <?php
    $fs
    ='statistic.txt';
    $stat_line=explode("\n"fread(fopen($fs'r'), filesize($fs)));
    echo 
    '<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /><title>Статистика скачивания файлов</title><style type="text/css"><!--.style2 {font-size: 80%}--></style></head><body><h2 align="center">Статистика посещений сайта</h2>
    <h4 align="center">Посетителей '
    .(count($stat_line)).'</h4>
    <table align="center" width="930" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="119" height="20" align="center" valign="middle" class="style2">Дата</td>
        <td width="121" align="center" valign="middle" class="style2">IP - адрес </td>
        <td width="230" align="center" valign="middle" class="style2">Referer</td>
        <td width="215" align="center" valign="middle" class="style2">Браузер</td>
        <td width="156" align="center" valign="middle" class="style2">Строка запроса</td>
        <td width="156" align="center" valign="middle" class="style2">Номер реферала</td>
      </tr>
    '
    ;
    foreach(
    $stat_line as $line) {
    $one=explode('^^'$line);
    echo 
    '<tr>';
    foreach(
    $one as $on) echo '<td width="119" height="20" align="center" valign="middle" class="style2">'.$on.'</td>';
    echo  
    '</tr>';}
    echo 
    '</table></body></html>';
    exit();
    ?>

    Реф. ссылка, если сам не догадался - http://site/script.php?refer=999

    П.С. Это только запись статистики, подсчитаешь уж сам.
     
  11. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    Ах да пардон
    PHP:
    <?   $ip=(isset($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:0;  $time=time('формат');  $vse"$ip|$time";  $fp=fopen("test.txt","a");  fwrite($fp,$vse);   ?>
     
  12. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    agrofyl2
    я в PHP новичёк, как это реализовать, можно поконкретней
    P.S. не сочтите за дауна :)
     
  13. agrofyl2

    agrofyl2 New Member

    Joined:
    25 Apr 2008
    Messages:
    54
    Likes Received:
    4
    Reputations:
    0
    heretic1990, я не понял, что нужно реализовать:

    Даеш. ссылу, они кликают.

    Сосчитать можно: взять реф. номера(или что там тебе нужно, IP), сосчитать с помощью array_count_values(прочитай в док-ции), вывести. Типа:
    по такой реф. ссыле(или IP) проследовало столько-то человек,
    по такой - то - столько то.

    А тут уж сам думай.
    П.С.:
    Извини - времени на бесплатное написание скриптов другим у меня нет, пишу для себя. Если помог - хорошо, нет -дописывай сам)))

    ППС:
    ссылка script.php?ref=номер пользователя(или имя),
    , название задается в $_GET['ref'] если помнишь.
     
    #4373 agrofyl2, 28 Jul 2008
    Last edited: 28 Jul 2008
    1 person likes this.
  14. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    heretic1990
    А если проще, присвой каждой своей ссылке индивидуальный идентификатор и будет тебе счастье(формат индентификатора agrofyl2] четко назвал)
     
  15. superboys

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

    Joined:
    1 Feb 2008
    Messages:
    61
    Likes Received:
    3
    Reputations:
    1
    Это опять я...

    Привет всем это опять я, мне разъяснили как обычные значения отсюда тянуть http://www.evolutions.ru/api/api_inf.php?Uname=pozitiv а как тянуть эту строку Thing::1146402::5::ko_a1::Кольцо черного рыцаря::3830.90::64::32::32::32::32::0::10::10::10::385::68::133::146::121::146::121::121::121::121::121::19::385::art::39::0::0 и чтоб главное чтоб не всё бралось а только нужное мне, возможно можно реализовать чтоб это преобразовывалось в массив и я мог тянуть нужные значения помогите.
    З.Ы. значения везде разные нужно чтоб я только указывал номер типа Thing::номерыещи(любой::номер слота(я должен указать).
    А дальше чтоб подсчитывал строки и тянул нужную
     
  16. Whirt

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

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    PHP:
    $str "Thing::1146402::5::ko_a1::Кольцо черного рыцаря::3830.90::64::32::32::32::32::0::10::10::10 ::385::68::133::146::121::146::121::121::121::121: :121::19::385::art::39::0::0";
    $thing explode("::"$str);
    echo 
    $thing[0]; //Thing
    echo $thing[1];//1146402
    echo $thing[5];//Кольцо черного рыцаря
    Ну ты понял :)
     
  17. superboys

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

    Joined:
    1 Feb 2008
    Messages:
    61
    Likes Received:
    3
    Reputations:
    1
    Ну это на то чтобы только на этого юзера а если я поменяю и там таких строк не будет?
     
  18. Whirt

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

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    Не правильно ты понял. Загружай любую строку туда, и разделитель укажи в коде. В данном примере - это ::. И все будет отображаться.
     
  19. superboys

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

    Joined:
    1 Feb 2008
    Messages:
    61
    Likes Received:
    3
    Reputations:
    1
    Ох. Дай обьясню я подключаю файл к серверу и ввожу никнэйм юзера прога рвёт оттуда значения которые я указал мне надо указать thing и определённую строку для подсчёта, а не вводить туда один и тот же результат понял?
     
  20. Zircool

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

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Добрый день.. Вот написал тут сканер сайтов на уязвимость MySQL скрипт достаточно простой...
    PHP:
    <html>
     <head>
      <style>
       body
       {
        padding:10px;
        background:#2A2E33;
        font-family:tahoma, verdana, arial;
        font-size:11px;
        text-align:center;
        color:#B9B9BD;
       }
       a:link, a:hover, a:visited
       {
        color:#B9B9BD;
        text-decoration: none;
       }
       input
       {
        vertical-align:middle;
        margin:1px 0;
        padding-right:10px;
        border:1px solid #336600;
        padding:2px;
        background:#363940;
        color:#B9B9BD;
       }
    textarea
       {
        vertical-align:middle;
        margin:1px 0;
        padding-right:10px;
        border:1px solid #336600;
        padding:2px;
        background:#363940;
        color:#B9B9BD;
       }
       form
       {
        padding:10px;
        border:1px solid #666;
        width:400px;
        margin:0 auto;
       }
      </style>
      <title>MySQL scanner</title>
     </head>
     <body>
    <?php
    // By Zircool



    error_reporting (0);

    if(
    set_time_limit(0))
    {
        
    set_time_limit(0);
        
    ignore_user_abort(1);
        
    $limit true;
    }


    Error_Reporting(E_ALL & ~E_NOTICE);
    print(
    '<form method="POST">');
    print(
    " Скрипт сканирует сайты на наличие в них уязвимости MySQL injection ");
    print(
    '</br>' );
    print(
    '</br>' );
    print(
    '<textarea style="overflow:hidden;" rows="15" cols="45" name="sites"></textarea>'."<br />\r\n");
    print(
    '</br>' );
    print(
    '<input type="submit" name="sub" value="   Go!  " />'."<br />\r\n");
    print(
    '</form>');
    print(
    '</br>' );



    if(isset(
    $_POST['sub']))
    {

        
    $result="";
        
    $sites=$_POST['sites'];
        
    $sites=explode("\r\n"trim($sites));
        foreach(
    $sites as $site)
        {

        
    $url=$site."'";

        
    $ch curl_init();

        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_HEADERTRUE);
        
    curl_setopt($chCURLOPT_NOBODYFALSE);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
    curl_setopt($chCURLOPT_USERAGENT"MSIE 7.0");
        
    curl_setopt($chCURLOPT_TIMEOUT60);
        
    $text curl_exec($ch);
         
    curl_close($ch);

        
    $host=parse_url($url);
        
    $host=$host['host'];
        echo 
    "Выполняеся проверка сайта &nbsp; ".$host."<br>";


        
    $substr_count substr_count($text,"SQL");

           if (
    $substr_count 0)
           {

            echo (
    "<font color=#FF8040>".$site."</font><br>");
           }


         
    Sleep(2);

        }








    }

    ?>
    </body>
    </html>
    Припчип такой в поле textarea загружаешь список сайтов где вкончем занадо значение переменной и пошла поехали... Вот только проблема, загружаю список сайтов и начинаю проверку, скрипт проверяет все рсайты лишь потом выводит результат, как можно сделать что бы скрипт проверял 1 сайт из списка и выводил результат, затем другой и т.д.
     
Thread Status:
Not open for further replies.