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

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

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

    olegator Member

    Joined:
    10 Feb 2009
    Messages:
    17
    Likes Received:
    38
    Reputations:
    0
    Я все го лишь пару неделю назад начал учить. Для вас наверное это очень просто? ))
    Kusto, я думаю что мой код можно уменьшить , верно?
     
  2. FlaktW

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

    Joined:
    19 Aug 2009
    Messages:
    500
    Likes Received:
    33
    Reputations:
    12
    Всем привет! Нужен скрипт для брута хэшей MD5 на PHP. Нашел в инете вот такой.
    Но проблема в том, что хеши он загружает функцией file() из файла password, а нужно, чтобы с формы (любое количество хэшей) при нажатие на кнопку, как на сайте http://hash.insidepro.com/index.php?lang=rus. Сам пробовал изменить, нечего не получается. Если можно помогите исправить скрипт!

    PHP:
    <form method=get>
      <input size=1 type=text name=name value=<?=$_GET['name']; ?>>
      <input type=submit value='Проверить'>
    </form><br>


    <?php
      
    // Устанавливаем неограниченное время выполнения скрипта
      
    set_time_limit(0);

      
    // Читаем пароли из файла password
      
    $temp file("password");
      
    // Замеряем время, затраченное на подбор пароля
      
    $begin time();
      
    $i 0;
      foreach(
    $temp as $password)
      {
        
    $pass['pass'][$i] = trim($password);
        
    $pass['answer'][$i] = "";
        
    $i++;
      }
      
    decrypt_md5("");
      
    $end time();
      echo 
    "на подбор затрачено ".($end $begin)." секунд<br>";
      foreach(
    $pass['answer'] as $password)
      {
        echo 
    $password."<br>";
      }

      
    // Функция посимвольного перебора пароля
      // $pass - расшифровываемый пароль
      // $answer - текущий ответ, при первом вызове - пустая строка
      
    function decrypt_md5($answer)
      {
        global 
    $pass;
        
    $arr = array('a','b','c','d','e','f',
                     
    'g','h','i','j','k','l',
                     
    'm','n','o','p','q','r','s',
                     
    't','u','v','w','x','y','z');
        
    // Будем считать, что пароль не превышает
        // 4 символов
        
    $max_number $_GET['name'];
        if(
    strlen($answer) > $max_number) return;
        
    // Если все пароли обнаружены - выходим
        // из рекурсивного спуска
        
    $ret true;
        for(
    $i 0$i count($pass['pass']); $i++)
        {
          if(empty(
    $pass['answer'][$i]))
          {
            
    $ret false;
            break;
          }
        }
        if(
    $ret) return;

        for(
    $j 0$j count($arr); $j++)
        {
          
    $temp $answer.$arr[$j];
          
    // Проверяем, не найден ли какой-нибудь пароль
          
    for($i 0$i count($pass['pass']); $i++)
          {
            if(
    md5($temp) == $pass['pass'][$i])
            {
              
    $pass['answer'][$i] = $temp;
            }
          }
          
    // Рекурсивно вызываем функцию для увеличения
          // длины подбираемого пароля
          
    decrypt_md5($temp);
        }
      }
    ?>
     
    #15722 FlaktW, 28 Jun 2010
    Last edited: 28 Jun 2010
  3. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    скажем так- сам найди отличия)))
    PHP:
     <form method="POST">
    <center>
    usser:<input type="text" name="user"><br>
    pass:<input type="text" name="password"><br>

    <input type=submit value="поехали">
    </center>
    <?php  
      
    $user 
    $_POST['user'];   
    $pass $_POST['password'];
       if (isset (
    $user) and ($pass)){
     if ( (
    $user =="blabla") and ($pass == "labla")) 
    echo 
    "Верно";  
     else  
    echo 
    "Неверно";  

    }
    ?> 
     
    1 person likes this.
  4. olegator

    olegator Member

    Joined:
    10 Feb 2009
    Messages:
    17
    Likes Received:
    38
    Reputations:
    0
    Отлично!! )) Все верно, спасибо Kusto
     
  5. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    Есть список:
    Code:
    1+r1+p
    1+r1+p1
    1+r1+p2
    1+r2+j1
    1+r2+j2
    1+r2+j3
    Надо из него както пыхой получить:
    Code:
    <ul>
      <li><a href="#0">1</a>
          <ul>
            <li><a href="#">r 1</a>
                <ul>
                  <li><a href="#">p</a></li>
                  <li><a href="#">p1</a></li>
                  <li><a href="#">p2</a></li>
                </ul>
            </li>
            <li><a href="#">r2</a>
                <ul>
                  <li><a href="#">j</a></li>
                  <li><a href="#">j1</a></li>
                  <li><a href="#">j2</a></li>
                </ul>
            </li>
          </ul>
      </li>
    </ul>

    Както так наверно
    PHP:
    <?php

    $a 
    = <<<A
    1+r1+p
    1+r1+p1
    1+r1+p2
    1+r2+j1
    1+r2+j2
    1+r2+j3
    A;

    $e .= '<ul>';
    $m1 explode("\n"$a);

    foreach(
    $m1 as $v) {
    $m2 explode("+"$v);
    // .......
    }

    }

    $e .= '</ul>'

    echo $e;

    ?>
    Помогите мне кто-нибудь пожалуйста
     
  6. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    я бы по другому к этому подошол))) организовал бы цикл чтоб дергал по одной строчке из списка, пока он не закончиться, ну например while(!feof($spisok))

    затем бы с помощью explode(); разделял бы строку с разделителем +, ну а дальше- дело техники выводить с переменными думаю труда не составит)))
     
  7. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    И как же ты представляешь себе? вывод ведь надо учитывать какие ветви уже созданы и впихивать в них а не дописывать в конце
     
  8. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    значит я досихпор не понял ТЗ
     
    1 person likes this.
  9. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    Вот допустим список
    1+2+1
    1+1+1
    1+2+2

    Мы распарсили и создаём хтмл:
    И после 1 строки у нас:
    После обработки второй :
    Но на 3 строке у нас так что ветка 1+2+... уже есть и нам <li><a href="#">2</a></li> надо впихнуть:
     
    #15729 Vlad&slav, 28 Jun 2010
    Last edited: 28 Jun 2010
    1 person likes this.
  10. Gaus

    Gaus Member

    Joined:
    8 Feb 2009
    Messages:
    136
    Likes Received:
    36
    Reputations:
    3
    Подскажите, как при отсылке запроса через курл (пхп) передавать свои куки?
     
  11. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    curl_setopt($ch, CURLOPT_COOKIE, 'куки');
     
    1 person likes this.
  12. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Есть 2 unix даты, как узнать сколько часов прошло между первой и второй датай?
    При чем это надо сделать так чтобы разница между 10:59:59 и 11:00:00 считалась одним прошедшим часом
     
  13. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    принцип такой
    date("G",$unix1) - date("G",$unix2);
    если нужно учесть дни, месяцы и годы - сам додумаешься )
     
  14. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    А если сутки сменились? То придется проверять дни, потом месяцы, годы
    Такой способ не подходит

    Я нашел другой выход, это подсчитать сколько часов прошло с начала unix эры
     
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    НTL
    PHP:
    $unix1 1277761925;
    $unix2 1277762325;

    $result abs(ceil($unix1 3600) - ceil($unix2 3600));
    echo 
    "\n Chasov: ".$result
     
    _________________________
    2 people like this.
  16. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    спс, но я ее переделал до:
    PHP:
    $d1=3599;
    $d2=3600;
    echo 
    floor($d2 3600)-floor($d1 3600);
    т.к. при деление нужно было отбросить дробные числа (Округлить в меньшую сторону)
     
  17. Alekzzzander

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

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    было бы все столь просто, я бы не спрашивал, они налезают друг на друга. ксс и так берется через регулярку, вопрос ещё открыт, и какой ф-цией выводить все одной кодировкой?
    у каждого из 3 скриптов свой ксс, надо что бы они каждый свой использовали, а выходит что у них смесь их...
     
    #15737 Alekzzzander, 29 Jun 2010
    Last edited: 29 Jun 2010
  18. Axel G

    Axel G New Member

    Joined:
    28 Jan 2009
    Messages:
    86
    Likes Received:
    3
    Reputations:
    3
    Парни, как сделать проверку на уникальность??
    PHP:
    $name rand(1,999999999);
    ----------------------------------------------------------------------------------------------
    Параллельно, как сохранить анимацию в гиф?? Пробую так, сохраняется статик =(
    PHP:
    $path 'images/';
    $img imagecreatefromgif($image);
    $ext '.gif';
    imagegif($img$path.$name.$ext);
    UPD: нашел в гугле это получается сейчас на дворе 2010 год, и уже 6 лет библиотека GD не поддерживает анимацию??
     
    #15738 Axel G, 29 Jun 2010
    Last edited: 30 Jun 2010
  19. namak

    namak Member

    Joined:
    29 Jan 2009
    Messages:
    66
    Likes Received:
    8
    Reputations:
    0
    PHP:
    <form action="kol2.php" method="post"> 
    <?php 
    $i
    =0
    while (
    $i++<10) { 
    print( 
    $i." <input type=text name=".$kom[$i]."><br> "); }
     
    ?> 
    <input type=submit value="Далее">
    как мне теперь получить этот массив?
     
  20. Engineer

    Engineer Member

    Joined:
    22 May 2009
    Messages:
    70
    Likes Received:
    5
    Reputations:
    0
    У тебя получился типа двумерный массив $_POST['/*имя массива kom*/'] [/*элемент */]
     
Thread Status:
Not open for further replies.