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

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

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

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    между for(...) { и }
    Переменные - $array[KEY] =
     
  2. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    PHP:
    <?php 
    $start 
    1
    $end 5
    for(
    $i=$start;$i<$end;$i++) { 
    $array[$i] = $i

    print_r($array); 
    ?>
    повторяет цикл только 4ре раза =(
    как сделать 5 ? =)
     
    1 person likes this.
  3. HAXTA4OK

    HAXTA4OK Super Moderator
    Staff Member

    Joined:
    15 Mar 2009
    Messages:
    946
    Likes Received:
    838
    Reputations:
    605
    Попробуй
    PHP:
    <?php 
    $start 
    1
    $end 6
    for(
    $i=$start;$i<$end;$i++) { 
    $array[$i] = $i

    print_r($array); 
    ?>
    если не пройдет то я заброшу пхп
     
    _________________________
  4. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    поставить 6 я сам догадался))))))

    именно при значении 5 надо)
     
  5. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Или просто изменить
    for(...) на
    PHP:
    for($i=$start;$i<=$end;$i++) { 
    теперь будет точный диапазон от $start до $end
     
  6. HAXTA4OK

    HAXTA4OK Super Moderator
    Staff Member

    Joined:
    15 Mar 2009
    Messages:
    946
    Likes Received:
    838
    Reputations:
    605
    ЫЫ не?
     
    _________________________
  7. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    PHP:
    <? 
    $p0 '0'//Параметр 0
    $p1 '1'//Параметр 1
    $p2 '2'//Параметр 2
    $start $HTTP_POST_VARS['ip']; //конечный ип 1 например "18"
    $end $HTTP_POST_VARS['ip3']; //конечный ип 2 например "40"
    $ip $HTTP_POST_VARS['lan']; //вся сеть например "192.168.1."
    $myip $HTTP_POST_VARS['myip']; //Ип адресс для обратного конекта
    $port $HTTP_POST_VARS['port']; //Порт на который будет произведен конект
    $ex $HTTP_POST_VARS['ex']; //название експлоита 0
    $ex1 $HTTP_POST_VARS['ex1']; //название експлоита 1
    $ex2 $HTTP_POST_VARS['ex2']; //название експлоита 2
    $file $HTTP_POST_VARS['file']; //Путь до файла
    $probel " ";
    $send "
    "
    ;
    $fh fopen($file"a+"); //Открытие файла


    //------------------ Первый сплоит ------------

    for($i=$start;$i<$end;$i++)
    //Строка 1
    $content $ex.$probel.$p0.$probel.$ip.$i.$probel.$port.$probel.$myip.$send;
    $ok fwrite($fh$content);
    //Строка 2
    $content $ex.$probel.$p1.$probel.$ip.$i.$probel.$port.$probel.$myip.$send;
    $ok fwrite($fh$content);
    //Строка 3
    $content $ex.$probel.$p2.$probel.$ip.$i.$probel.$port.$probel.$myip.$send.$send;
    $ok fwrite($fh$content);

    //------------------ Второй сплоит ------------

    //Строка 1
    $content $ex1.$probel.$p0.$probel.$ip.$i.$probel.$port.$probel.$myip.$send;
    $ok fwrite($fh$content);
    //Строка 2
    $content $ex1.$probel.$p1.$probel.$ip.$i.$probel.$port.$probel.$myip.$send;
    $ok fwrite($fh$content);
    //Строка 3
    $content $ex1.$probel.$p2.$probel.$ip.$i.$probel.$port.$probel.$myip.$send.$send;
    $ok fwrite($fh$content);

    //------------------ Третий сплоит ------------

    //Строка 1
    $content $ex2.$probel.$p0.$probel.$ip.$i.$probel.$port.$probel.$myip.$send;
    $ok fwrite($fh$content);
    //Строка 2
    $content $ex2.$probel.$p1.$probel.$ip.$i.$probel.$port.$probel.$myip.$send;
    $ok fwrite($fh$content);
    //Строка 3
    $content $ex2.$probel.$p2.$probel.$ip.$i.$probel.$port.$probel.$myip.$send.$send;
    $ok fwrite($fh$content);


     { 
    $array[$i] = $i


    ?>
    вывод получается не полностью

    получается только

    Code:
    
    ex.exe 0 192.168.1.4 40 192.168.1.2
    ex.exe 1 192.168.1.5 40 192.168.1.2
    ex.exe 2 192.168.1.5 40 192.168.1.2
    
    ex1.exe 0 192.168.1.5 40 192.168.1.2
    ex1.exe 1 192.168.1.5 40 192.168.1.2
    ex1.exe 2 192.168.1.5 40 192.168.1.2
    
    ex2.exe 0 192.168.1.5 40 192.168.1.2
    ex2.exe 1 192.168.1.5 40 192.168.1.2
    ex2.exe 2 192.168.1.5 40 192.168.1.2
    
    
    
    т.е. видно только последние параметры диапазона
    4ку в одной строке и 5ку в остальных

    че я опять сделал не так?)))
     
  8. Ctacok

    Ctacok Banned

    Joined:
    19 Dec 2008
    Messages:
    732
    Likes Received:
    646
    Reputations:
    251
    $start = 0
     
  9. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Ппц тока ща обратил внимание =\
    PHP:
    for($i=$start;$i<=$end;$i++) 
    После этого поставь {

    а тут убери перед $array;
    PHP:
     {  
    $array[$i] = $i;  
    }  
    и желательно дописывать "\r\n" чтобы переводил на новую строчку в файле, если необходимо конечно =\
    PHP:
    $ok fwrite($fh$content."\r\n"); 
    и всякие $probel'Ы просто убивают. PHP сквозь слезы выполнняет скрипт.
    А вообще код можно значительно сократить до пары строчек объявления переменных и 1 циклом
     
    #13009 LStr1ke, 8 Dec 2009
    Last edited: 8 Dec 2009
  10. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    я это и делаю =)
     
  11. Freakazoitt

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

    Joined:
    2 Jun 2008
    Messages:
    35
    Likes Received:
    1
    Reputations:
    0
    Вопрос как написать такой скрипт:

    В базе лежит время в секундах от эпохи unix (что-то вроде 1260186641)

    надо сравнить это время с текущим и показать результат в минутах (типа сколько ждёт)

    если больше 99 минут, заменяем словом "долго"
     
  12. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    PHP:
    <?php
    $now_date 
    '1260186641';
    $now_date_2 time();
    $a = ($now_date_2 $now_date) / 60;

    if(
    intval($a) >= 99)
    {
    echo 
    'Много, а точнее: '.intval($a).' минут(ы)<br>';
    echo 
    'Либо по нормальному разница в <b>'.date('H:i:s',$now_date_2 $now_date).'</b>';
    }
    ?>
    Вывод:
     
    #13012 b3, 8 Dec 2009
    Last edited: 8 Dec 2009
    1 person likes this.
  13. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    $content = $HTTP_POST_VARS[content]; не получает переменные как $test.$test2.$test3 а получает как "$test.$test2.$test3" можно какнить это поправить?
     
  14. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    если кому интересно нафига мне это все
    http://img710.imageshack.us/img710/6435/87892072.jpg
     
  15. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    $HTTP_POST_VARS[content];
    Замени на
    $_POST[content];
    Например
    $ex = $_POST['ex'];
     
  16. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    $content = $_POST['content'];
    таже история
    на выводе также
    $ex.$probel.$param.$ip.$i.$probel.$port.$probel.$myip
    а не их значения
     
  17. Eo0

    Eo0 Member

    Joined:
    12 Sep 2009
    Messages:
    62
    Likes Received:
    8
    Reputations:
    0
    если правильно понял что надо:
    PHP:
    $par=explode('.',str_replace('$','',$_POST['content']));
    $c=count($par);
    for(
    $i=0,$content='';$i<$c;$i++) $content.=$_POST[$par[$i]];
     
  18. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    типа того, только for($i=0,$content='';$i<$c;$i++) $content.=$_POST[$par[$i]]; мне не нужен цикл

    И не все переменные выводятся, я как понял этот скрипт что то заменяет и обрезает. Он еще и переменные режет

    получается ex.exe0140192.168.1.2

    PHP:
    <? 
    $param $HTTP_POST_VARS['param'];
    $start $HTTP_POST_VARS['ip']; //конечный ип 1 например "18"
    $end $HTTP_POST_VARS['ip3']; //конечный ип 2 например "40"
    $ip $HTTP_POST_VARS['lan']; //вся сеть например "192.168.1."
    $myip $HTTP_POST_VARS['myip']; //Ип адресс для обратного конекта
    $port $HTTP_POST_VARS['port']; //Порт на который будет произведен конект
    $ex $HTTP_POST_VARS['ex']; //название експлоита 0
    $ex1 $HTTP_POST_VARS['ex1']; //название експлоита 1
    $ex2 $HTTP_POST_VARS['ex2']; //название експлоита 2
    $file $HTTP_POST_VARS['file']; //Путь до файла
    $probel " ";
    $send "
    "
    ;
    $fh fopen($file"a+"); //Открытие файла



    $content $_POST['content'];


    for(
    $i=$start;$i<=$end;$i++)
     { 
    $ip $ip.$i;
    $ok fwrite($fh$content.$send);

    $array[$i] = $i


    ?>
    вот полностью код к которому надо это приспособить =)
     
    #13018 Vinsik, 8 Dec 2009
    Last edited: 8 Dec 2009
  19. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Я тебя абсолютно не понимаю =\
    Предположим ты передаешь скрипту content = "21.Паша.Врач";
    и хочешь чтобы 21, Паша, Врач Заносились в соответсвующие переменные.
    Вот код:
    PHP:
    $content "21.Паша.Врач"//$_POST['content']
    $vars explode(".",$content);
    $vozrast $vars[0];
    $name $vars[1];
    $job $vars[2];
    echo 
    $name." : ".$vozrast." : ".$job;
    Естественно, ты передаешь параметры с разделителем - . (точка) и там же передаешь IP адрес, где присутвует точка и поэтому все режется =\
    Или спользуй другой разделитель, или объъясни конкретно, чего ты хочешь. У тебя был нормальный рабочий вариант, нужно лишь было чутка доработать, а ты зачем начал принимать входящие данные (как я понял) одной строкой =\
     
  20. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    да вариант рабочий и так есть, я просто делаю как бы онлайн сервис
    который будет генерировать список ип адрессов по диапазону и сразу приписывать запросы к ним, это удобно когда хочешь например завалить целую сеть, и я хочу чтоб пользователь сам мог выберать как формировать запрос
    $ex.$probel.$param.$ip.$i.$probel.$port.$probel.$myip
    $ex.$probel.$ip.$i.$probel.$port

    как человеку нужно
    для этого и нужны всякие пробелы =)
    и на главной странице конечно же есть
    <input type="text" name="content" value="$ex.$probel.$param.$ip.$i.$probel.$port.$probel.$myip" />
     
Thread Status:
Not open for further replies.