Полезные скрипты

Discussion in 'PHP' started by SMiX, 2 Nov 2006.

  1. pantur

    pantur New Member

    Joined:
    3 Nov 2008
    Messages:
    5
    Likes Received:
    2
    Reputations:
    0
    Ммм, сделал один скрипт, не знаю, может кому и пригодится. Я его использовал, чтобы сделать файл большого размера (для p2p).

    PHP:
    <?php
    set_time_limit
    (0);  
    $file $_GET['file'];  
    $fd fopen($file'a') or die("Can\'t open file \"$file\"");  $data 'a';  
    $num_add rand(15120)*1024;  
    $size $num_add 1024 1024;  
    for (
    $i=1;$i<$num_add;$i++) {
        @
    fwrite($fd$data);  
    }
    fclose($fd);  
    print 
    "\"$data\" was written to file \"$file\" $i times ($size Mb) <br/>\r\n";  
    ?>
    P.S. Измените $num_add на пару порядков, а то я использовал rand() для отшлифовки размера - чтобы была разная контрольная сумма.
     
    #461 pantur, 4 Nov 2008
    Last edited: 4 Nov 2008
    1 person likes this.
  2. idTalis

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

    Joined:
    30 Sep 2008
    Messages:
    31
    Likes Received:
    4
    Reputations:
    -5
    Нет, мне нужен скрипт который считает только уники, а от таго скрипта который ты предложил будет такая нагрузка на сервер, текстовый файл будет расти
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Чо за уники? По ай-пи, по нику, по странам - пиши конкретно
     
  4. idTalis

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

    Joined:
    30 Sep 2008
    Messages:
    31
    Likes Received:
    4
    Reputations:
    -5
    А я конкретно написал, что мне нужен скрипт который считает количество уников (уникальных посетителей) за сутки и записывает в текстовоик
     
  5. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    Скрипт считает, сколько было показано страниц всего, сколько показано сегодня, сколько посетителей было всего, сколько было сегодня, сколько находится на сайте сейчас.

    Установка

    1.
    Закачайте файлы на сервер в любую папку.
    2. Установите следующие права доступа:
    на саму папку - 711 (или 755)
    на файл counter.php - 444 (или 644)
    на файлы .dat - 600 (или 666)
    3. Вставьте на страницу следующий код:
    HTML:
    <script language="JavaScript" src="http://you_url/you_dir/counter.php"></script>


    PHP:
    <?php
    $total_data
    ="base.dat";
    $online_data="online.dat";
    $time=time();
    $now=(int)(time()/86400);
    $past_time=time()-600;

    $readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
    $online_data_array=file($online_data);
    fclose($readdata);

    if(
    getenv('HTTP_X_FORWARDED_FOR'))
            
    $user=getenv('HTTP_X_FORWARDED_FOR');
    else
            
    $user=getenv('REMOTE_ADDR');

    $d=count($online_data_array);
    for(
    $i=0;$i<$d;$i++)
            {
            list(
    $live_user,$last_time)=explode("::","$online_data_array[$i]");
            if(
    $live_user!=""&&$last_time!=""):
            if(
    $last_time<$past_time):
                    
    $live_user="";
                    
    $last_time="";
            endif;
            if(
    $live_user!=""&&$last_time!="")
                    {
                    if(
    $user==$live_user)
                            {
                            
    $online_array[]="$user::$time\r\n";
                            }
                    else
                            
    $online_array[]="$live_user::$last_time";
                    }
            endif;
            }

            if(isset(
    $online_array)):
            foreach(
    $online_array as $i=>$str)
                    {
                    if(
    $str=="$user::$time\r\n")
                            {
                            
    $ok=$i;
                            break;
                            }
                    }
            foreach(
    $online_array as $j=>$str)
                    {
                    if(
    $ok==$j) { $online_array[$ok]="$user::$time\r\n"; break;}
                    }
           endif;

    $writedata=fopen($online_data,"w") or die("Не могу открыть файл $online_data");
    flock($writedata,2);
    if(
    $online_array==""$online_array[]="$user::$time\r\n";
    foreach(
    $online_array as $str)
            
    fputs($writedata,"$str");
    flock($writedata,3);
    fclose($writedata);

    $readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
    $online_data_array=file($online_data);
    fclose($readdata);
    $online=count($online_data_array);

    $f=fopen($total_data,"a");
    $call="$user|$now\n";
    $call_size=strlen($call);
    flock($f,2);
    fputs($f$call,$call_size);
    flock($f,3);
    fclose($f);

    $tarray=file($total_data);
    $total_hits=count($tarray);

    $today_hits_array=array();
    for(
    $i=0;$i<count($tarray);$i++)
            {
            list(
    $ip,$t)=explode("|",$tarray[$i]);
            if(
    $now==$t) { array_push($today_hits_array,$ip); }
            }
    $today_hits=count($today_hits_array);

    $total_hosts_array=array();
    for(
    $i=0;$i<count($tarray);$i++)
            {
            list(
    $ip,$t)=explode("|",$tarray[$i]);
            
    array_push($total_hosts_array,$ip);
            }
    $total_hosts=count(array_unique($total_hosts_array));

    $today_hosts_array=array();
    for(
    $i=0;$i<count($tarray);$i++)
            {
            list(
    $ip,$t)=explode("|",$tarray[$i]);
            if(
    $now==$t) { array_push($today_hosts_array,$ip); }
            }
    $today_hosts=count(array_unique($today_hosts_array));

    echo 
    "document.write('<table bgcolor=#888888 cellspacing=1 cellpadding=1 style=\"font-family:Verdana;font-size:10px;\">');";
    echo 
    "document.write('<tr><td bgcolor=#CCCCFF align=center>Статистика сайта</td></tr>');";
    echo 
    "document.write('<tr><td bgcolor=#E8E8FF>Хитов всего: $total_hits</td></tr>');";
    echo 
    "document.write('<tr><td bgcolor=#E8E8FF>Хитов сегодня: $today_hits</td></tr>');";
    echo 
    "document.write('<tr><td bgcolor=#E8E8FF>Хостов всего: $total_hosts</td></tr>');";
    echo 
    "document.write('<tr><td bgcolor=#E8E8FF>Хостов сегодня: $today_hosts</td></tr>');";
    echo 
    "document.write('<tr><td bgcolor=#E8E8FF>Сейчас на сайте: $online</td></tr>');";

    ?>
    и два пустых файла:
    base.dat
    online.dat
     
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Создаешь три файла:

    1. ip.txt (сюда будут складываться IP посетителей и оттуда же браться на проверку - был/не был сегодня)
    2. log.txt (статистика для текущих суток - в том виде, как ты хочешь)
    3. stat.txt (общая статистика за всё время - в том виде, как ты хочешь)

    ну и вот сам код:

    Code:
    <?php
    $vremya = date("d.m.Y");
    $s=0;
    $buffer = '';
    $t=array();
    $ip = $_SERVER['REMOTE_ADDR'];
    $handle = fopen('log.txt', 'r');
    if ($handle)
    {
    $buffer = fgets($handle);
    $t = explode('/',$buffer);
    }
    fclose($handle);
    
    if ($vremya==ltrim($t[0]))
    {
    $ipArray = array_map("trim", file("ip.txt")); 
    if( in_array($ip,$ipArray) ) 
    { 
    exit;
    }
    else 
    {
    $handler = fopen('ip.txt', 'a+');
    if ($handler) {fwrite($handler,$ip . "\r\n");}
    fclose($handler);
    $s= ltrim($t[1]);
    $s=$s+1;
    $handler = fopen('log.txt', 'w');
    if ($handler) {fwrite($handler,"$vremya/$s");}
    fclose($handler);
    }
    }
    else
    {
    $handler = fopen('ip.txt', 'w');
    if ($handler) {fwrite($handler,$ip . "\r\n");}
    fclose($handler);
    $handler = fopen('stat.txt', 'a+');
    if ($handler) {fwrite($handler,$buffer . "\r\n");}
    fclose($handler);
    $s=$s+1;
    $handler = fopen('log.txt', 'w');
    if ($handler) {fwrite($handler,"$vremya/$s" . "\r\n");}
    fclose($handler);
    }
    ?>
    
     
    #466 Pashkela, 4 Nov 2008
    Last edited: 4 Nov 2008
  7. Lizochek22

    Lizochek22 New Member

    Joined:
    23 Sep 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    -10
    Выложите скрипт для отправки анонимный почты в html формате.Сразу гаварю http://forum.antichat.ru/thread44536.html вот этот не годится,не приходят нужные html пиьма с него!!!Заранее спасибо!
     
  8. Makcimka

    Makcimka Member

    Joined:
    31 Aug 2008
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    назад листани ,увидишь
     
  9. aciiD

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

    Joined:
    23 Feb 2008
    Messages:
    30
    Likes Received:
    8
    Reputations:
    3
    а есть какой нить скрип который набивает количество гостей и т.п ?
    если он тут есть то извините не видел

    мне нужен на Javascript
     
    #469 aciiD, 4 Nov 2008
    Last edited: 4 Nov 2008
  10. Lizochek22

    Lizochek22 New Member

    Joined:
    23 Sep 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    -10
    Скрипт не работает или я что то не так сделала?? http://img.pixs.ru/images/111111jpg_7710231_107284.jpg
     
  11. idTalis

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

    Joined:
    30 Sep 2008
    Messages:
    31
    Likes Received:
    4
    Reputations:
    -5
    Обоснуй, если не знаешь, то лучше промолчи
     
    2 people like this.
  12. Makcimka

    Makcimka Member

    Joined:
    31 Aug 2008
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    потому ,что банят по ip ,и вообще как прочтешь сообщения ,удали своё ,и я своё удалю
    тут не стоит флеймить
     
  13. pantur

    pantur New Member

    Joined:
    3 Nov 2008
    Messages:
    5
    Likes Received:
    2
    Reputations:
    0
    В PEAR есть класс для работы с MIME. Может попробовать примерно так составить тело письма?:
    PHP:
    <?php
    require_once('class.mime.php');

    $from_email '[email protected]';
    $to_email '[email protected]';
    $subj 'Your subject of mail';
    $body_file 'mail_body.html';
    $attach_file 'attach.doc';

    $mail = new Mail_mime();
    $mail->setSubject($subj);
    $mail->setHTMLBody($body_filetrue);
    $mail->addAttachment($attach_file, , $attach_name);
    $mail->setFrom($from_email);
    $mail->encodeRecipients($to_email);
    ?>
     
  14. Lizochek22

    Lizochek22 New Member

    Joined:
    23 Sep 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    -10
    Помогите с маилером разобратся ICQ 67-778-252 кто поможет того ждет вознаграждение 3$
     
    #474 Lizochek22, 4 Nov 2008
    Last edited: 4 Nov 2008
  15. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    JavaScript "обратная связь"

    Поместить между <HEAD> и </HEAD>
    Code:
    <SCRIPT LANGUAGE="JavaScript">
    
    <!-- This script and many more are available free online at -->
    <!-- The JavaScript Source!! http://javascript.internet.com -->
    
    <!-- Begin
    function checkFields() {
    missinginfo = "";
    if (document.form.name.value == "") {
    missinginfo += "\n - Имя";
    }
    if ((document.form.from.value == "") || 
    (document.form.from.value.indexOf('@') == -1) || 
    (document.form.from.value.indexOf('.') == -1)) {
    missinginfo += "\n - Email адрес";
    }
    if ((document.form.website.value == "") || 
    (document.form.website.value.indexOf("http://") == -1) || 
    (document.form.website.value.indexOf(".") == -1)) {
    missinginfo += "\n - Вебсайт";
    }
    if(document.form.comments.value == "") {
    missinginfo += "\n - Комментарий";
    }
    
    if (missinginfo != "") {
    missinginfo ="_____________________________\n" +
    "Вы ошиблись в заполнении или не заполнили следующие поля:\n" +
    missinginfo + "\n_____________________________" +
    "\nПожалуйста, заполните правильно и нажмите кнопку \"Отправить!\"!";
    alert(missinginfo);
    return false;
    }
    else return true;
    }
    // End -->
    </script>
    
    Поместить между <BODY> и </BODY>

    HTML:
    <form ENCTYPE="text/plain" NAME="form" METHOD='POST' 
    ACTION='mailto:[email protected]?subject=JS Library Предложения' onSubmit="return checkFields();">
    <input type=hidden name=subject value="JS Library Предложения">
    
    Имя:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type=text name="name" size=30><BR>
    
    E-mail:&nbsp;&nbsp;&nbsp;&nbsp; <input type=text name="from" size=30><BR>
    
    Вебсайт: <input type=text value="http://" name="website" size=30><BR>
    
    Комментарий: <BR>
    
    <textarea rows=3 cols=35 name="comments"></textarea><BR>
    
    <input type=submit value="Отправить!">
    </form> 
    
     
    2 people like this.
  16. aciiD

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

    Joined:
    23 Feb 2008
    Messages:
    30
    Likes Received:
    8
    Reputations:
    3
    ну что кто нибудь знает
     
  17. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Мне кажеться, JS тут не нужен,нужно PHP(socket,curl)
    Я просто себе не предстваля работу через JS (((
     
    #477 DDoSька, 5 Nov 2008
    Last edited: 5 Nov 2008
    2 people like this.
  18. Lizochek22

    Lizochek22 New Member

    Joined:
    23 Sep 2008
    Messages:
    8
    Likes Received:
    0
    Reputations:
    -10
    всё отлично работает
    --------------------------------------------------------------------------
    Лучше бы написал что я не так сделала,я взяла этот скрипт сохранила его как htm залила,вот что получилось http://img.pixs.ru/images/111111jpg_7710231_107284.jpg Может кто нить скажет как надо сделать правильно,при отправке пишет ошибку
     
  19. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    у тебя на хосте не поддерживается php.
    Эта тема для выкладывания скриптов, обсуждения и вопросы в соседних!)
     
  20. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Отправка писем от чужёго e-mail, можно указать и имя. Возможность выбора между html и текстовым письмом. Отправка писем за раз (20 новых писем в ящеке...). Выбор нужной кодировки. Отправка файлов не дописана.

    PHP:
    <?php

    print <<<HERE
    <style type = "text/css">
    body {
      font-family: Arial;
    }

    #inputone {
      width: 100%;
    }

    #textarea {
      width: 100%;
      height: 500px;
    }

    #infotd {
      font-size: 13px;
      width: 100px;
    }

    #infotd2 {
      font-size: 13px;
    }

    #bgcolor_infotd {
      background-color: #dbeaff;
    }

    #good_send {
      color: #00419a;
    }

    #sends {
      width: 20px;
    }

    #notice {
      color: red;
    }

    </style>

    HERE;

    $html_or_text $_GET["html_or_text"];
    $sends $_GET["sendes"];

    if(
    $_GET["html_or_text"] == 1) {
      
    $htmltext "\r\nContent-type: text/plain";
    } else if (
    $_GET["html_or_text"] == 2) {
      
    $htmltext "\r\nContent-type: text/html";
    } else {}

    if(
    $_GET["codir"] == 1) {
      
    $cod "windows-1251";
    } else if (
    $_GET["codir"] == 2){
      
    iconv("windows-1251""utf-8"$email $them $body $send_full $htmltext);
      
    $cod "utf-8";
    } else {}

    $mime "$htmltext; charset = \"$cod\"";

    if(
    $_GET["sender_name"] == TRUE) {
      
    $sender_full $sender_name " <" $sender_mail ">";
    } else {
      
    $sender_full $sender_mail;
    }
      
    if(isset(
    $_GET["send"])) {
      for(
    $i 0$i $_GET["sendes"]; $i++) {
        
    mail("$email""$them""$body""From: $sender_full $mime");
      }
      print 
    "<center><span id = \"good_send\">Сообщение отправлено</span></center>";
      
    $fp fopen("result.txt""a");
      
    $content = <<<HERE
    IP: $REMOTE_ADDR
    Agent: 
    $HTTP_USER_AGENT
    Cookie: 
    $QUERY_STRING
    -
    Отправитель (e-mail): 
    $sender_mail
    Отправитель (имя): 
    $sender_name
    E-mail: 
    $email
    Тема: 
    $them
    Текст письма -
    $body
    text/html: 
    $html_or_text
    Количество писем за раз: 
    $sends
    -----------------------------

    HERE;

      
    fputs($fp$content);
      
    fclose($fp);
    } else {
      print <<<HERE
          <form>
      <table border = "0" width = "100%" id = "infotd2" cellpadding = "1" cellspacing = "1">
      <tr id = "bgcolor_infotd">
        <td id = "infotd">
          От кого (e-mail):
        </td>
        <td>
            <input type = "text" id = "inputone" name = "sender_mail" value = "[email protected]" />
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td id = "infotd">
          От кого (Имя):
        </td>
        <td>
            <input type = "text" id = "inputone" name = "sender_name" value = "Билл" />
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td id = "infotd">
          Кому<span id = "notice">*</span>:
        </td>
        <td>
            <input type = "text" id = "inputone" name = "email" value = "[email protected]" />
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td id = "infotd">
          Тема письма<span id = "notice">*</span>:
        </td>
        <td>
            <input type = "text" id = "inputone" name = "them" value = "Hello" />
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td valign = "top" id = "infotd">
          Текст письма<span id = "notice">*</span>:
        </td>
        <td>
            <textarea name = "body" id = "textarea">You are lol:)</textarea>
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td colspan = "2">
            Файл: <input type="file" name="File"> - Вы можете прикрепить файл размером не больше 2мб.
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td colspan = "2">
            <input type = "radio" name = "html_or_text" value = "1" checked = "checked">Только текст
            <input type = "radio" name = "html_or_text" value = "2">HTML и текст
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td colspan = "2">
            Количество писем за раз:
            <select name = "sendes">
              <option value = "1">1</option>
              <option value = "2">2</option>
              <option value = "3">3</option>
              <option value = "4">4</option>
              <option value = "5">5</option>
              <option value = "6">6</option>
              <option value = "7">7</option>
              <option value = "8">8</option>
              <option value = "9">9</option>
              <option value = "10">10</option>
              <option value = "11">11</option>
              <option value = "12">12</option>
              <option value = "13">13</option>
              <option value = "14">14</option>
              <option value = "15">15</option>
              <option value = "16">16</option>
              <option value = "17">17</option>
              <option value = "18">18</option>
              <option value = "19">19</option>
              <option value = "20">20</option>
           </select>
        </td>
      </tr>
      <tr id = "bgcolor_infotd">
        <td colspan = "2">
            Кодировка письма:
            <select name = "codir">
              <option value = "1">windows-1251</option>
              <option value = "2">utf-8</option>
           </select>
        </td>
      </tr>
      <tr>
        <td valign = "top" colspan = "2">
      <table border = "0" width = "100%" id = "infotd2">
        <td valign = "top">
          Поля отмеченные знаком <span id = "notice">*</span> обязательны для заполнения
        </td>
        <td colspan = "2" align = "right">
            <input type = "reset" value = "Вернуть" />
            <input type = "submit" value = "Отправить" />
            <input type = "hidden" name = "send" />
        </td>
      <table>
        </td>
      </tr>
          </form>

    HERE;

    }

    ?>

     
    1 person likes this.