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

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

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

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    мохзе прав
    такие слова забудь
    а проверку вывода делай примерно так
    echo "-- $session --";
     
  2. bxN5

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

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    PHP:
    $fp =  fopen '1.txt''w' );
      
    if ( 
    $fp ) {
        
        
    $size filesize $fp );
        
        
    $textfread $fp$size );

        
        
    $res=$text+1;

        
    fputs ($fp$res);
    fclose $fp ); 
    }
    Warning: filesize() [function.filesize]: stat failed for Resource id #4 in /home/mercitaxic5964/data/www/mercitaxi.com.ua/index.php on line 28

    Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/mercitaxic5964/data/www/mercitaxi.com.ua/index.php on line 30
    bool(false)
    в чем загвоздка?
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    $fp = fopen ( '1.txt', 'w' );

    w - открывает файл на запись, при этом УДАЛЯЕТ всё его содержимое, поэтому 0 байт

    чтобы уметь ПРОЧИТАТЬ файл или сведения о нём - r, или + к любой другой букве
     
  4. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    При открытии следует указать режим r+, файл откроется для чтения и записи, при этом указатель встанет в начало файла; либо же режим a+
    php.net/fopen
     
  5. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    У меня идёт подгрузка скриптов таким сценарием...
    Возможно ли поставить защиту от PHP -inj и как?

     
    1 person likes this.
  6. bug1z

    bug1z Member

    Joined:
    7 May 2009
    Messages:
    61
    Likes Received:
    18
    Reputations:
    1
    Используй функцию file_exists() дабы нельзя было ничего подключить из вне!
    (с)php.su




    далее работай мозгом :)
     
    #9946 bug1z, 14 May 2009
    Last edited: 14 May 2009
  7. art2222

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

    Joined:
    28 Apr 2008
    Messages:
    118
    Likes Received:
    57
    Reputations:
    10
    С версии 5+ она работает и с ftp.
     
    #9947 art2222, 14 May 2009
    Last edited: 14 May 2009
  8. .Sylar

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

    Joined:
    15 Jul 2008
    Messages:
    9
    Likes Received:
    17
    Reputations:
    -5
    Тут все такие умные вопросы задают, а может кто-то объяснить чем $i++ отличается от ++$i , ведь по сути это inc(i) тот же, в чём отличие тогда. Я загуглил конечно, прочитал, но к сожалению не понял =.
     
  9. Mars803

    Mars803 New Member

    Joined:
    8 May 2009
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    $i++ выдать $i как результат а затем увеличить $i на 1
    ++$i увеличить $i на 1 и выдать результат
     
    1 person likes this.
  10. Veteriuz

    Veteriuz New Member

    Joined:
    22 Apr 2009
    Messages:
    13
    Likes Received:
    3
    Reputations:
    0
    емеем
    PHP:
    <?
    $data gzfile('http://ru7.voyna-plemyon.ru/map/player.txt.gz');
    list(
    $id$name$ally$villages$points$rank) = explode(","$dat);
    if(
    $ally==3560)
    {
    echo 
    $name;
    echo 
    "<br>";
    }
    ?>
    смысл: вывод всех $name с $ally==3560 на экран. (будет около 180 значений)
    а вообще вместо вывода на экран будет запись в новый файл
    не работает :(



    ps файл http://ru7.voyna-plemyon.ru/map/player.txt.gz действителен(переодически обновляется) и сформирован, как уточнили Админы, через urlencode()


    если нужна - инфа тут


    UPD
    порылся в этой теме и нашел похожий случай. переделал под себя и .. заработало!
    но чуствую кривовато как-то работает:)

    PHP:
    <?
    set_time_limit(0);
    $log 'http://ru7.voyna-plemyon.ru/map/player.txt.gz';
    $file gzfile($log);
    $k = array();
        foreach(
    $file as $abc)  
        {
            list(
    $k['id'][], $k['namel'][], $k['ally'][], $k['villages'][], $k['points'][], 

    $k['rank'][]) = explode(',,,,,'trim($abc));
        }
    $count count($k['id']); // тут считает только по id
    for($i 0;$i $count$i++)
    {
    $str['$i'] = $k['id'][$i];
    $data $str['$i'];
    list(
    $id$name$ally$villages$points$rank) = explode(","$data);
    if(
    $ally==3560)
    {
    echo 
    urldecode($name);
    echo 
    "<br>";
    }
    }
    ?>
    проблемы на этом этапе:
    1) $k['id'][$i] присваивается значение всей строки(поэтоу затем каждую строчку ломал на части), а $k['name'][$i] ничего не присваиваться
    2) имена на русском и перебиты через urlencode. при urldecode выдает непонятную кодировку. как можно исправить?
    спасибо за внимание:)
     
    #9950 Veteriuz, 14 May 2009
    Last edited: 15 May 2009
  11. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    помогите плиз, никак не могу разобратся, мне нужно сгенерить .pdf файл

    добавил библиотеку pdflib.dll

    взял самый простой код генерации, но мне выдает ошибку что нужны метрики шрифтов, эти метрики были в архиве библиотеки pdflib, отрыл в инете как подключать эти метрики шрифтов, только ничего все равно не работает

    вот ошибка

    Fatal error: Uncaught exception 'PDFlibException' with message 'Metrics data for font 'Tahoma' not found' in C:\xampp\htdocs\pdf.php:9 Stack trace: #0 C:\xampp\htdocs\pdf.php(9): pdf_findfont() #1 {main} thrown in C:\xampp\htdocs\pdf.php on line 9

    вот код :

    PHP:

    <?php

    $pdf 
    pdf_new();

    pdf_open_file($pdf'new.pdf');
    pdf_begin_page($pdf595842);
    PDF_set_parameter($pdf,"resourcefile","pdflib.upr");
    PDF_set_parameter($pdf,"resourcefile","print_glyphs.ps");
    pdf_findfont($pdf"Tahoma""host"1); 
    pdf_setfont($pdf"Tahoma"30);
    pdf_set_value($pdf"textrendering"1);
    pdf_show_xy($pdf"A PDF document created in memory!"50750);
    pdf_end_page($pdf);
    pdf_close($pdf);

    $data pdf_get_buffer($pdf);

    header("Content-type: application/pdf");
    header("Content-disposition: inline; filename=test.pdf");
    header("Content-length: " strlen($data));

    echo 
    $data;

    ?>


    эти две строчки подключают шрифты .... вроде.. должны (файлы шрифтов находятся в одной директории с pdf.php) :

    PHP:

    PDF_set_parameter
    ($pdf,"resourcefile","pdflib.upr");
    PDF_set_parameter($pdf,"resourcefile","print_glyphs.ps");

    помогите если кто такое уже делал...
     
  12. xpkeygen

    xpkeygen New Member

    Joined:
    29 Sep 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    какие уязвимости можно проэксплуатировать в этом коде

    <html><head><title>Support Control Module (c)
    </title>
    <link href="style.css" rel="stylesheet" type="text/css"><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
    <body>
    <form name="logon" action="authorize.php" method="post">
    <div align="center">
    <img src="/support/i/logo.jpg"/>
    <table width="210" border="0" cellspacing="0" cellpadding="1" class="text">
    <tr>
    <td colspan="2" align="center" height="20">Пожалуйста, авторизируйтесь...</td>
    </tr>
    <tr>
    <td id="b">ЛОГИН:</td>
    <td><input type="text" name="login" value="" size="20"></td>
    </tr>
    <tr>
    <td id="b">ПАРОЛЬ:</td>
    <td><input type="password" name="password" value="" size="20"></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" value="ВОЙТИ" class="text" id="b"></td>
    </tr>
    <tr>
    <td colspan="2" height="1">

    </td>
    </tr>
    <tr>
    <td colspan="2" align="center" valign="bottom" height="40"><hr>
    Support Control Module (c) 2005-2006</td>
    </tr>
    </table>
    </div>
    </form>
    </body>
    </html>
     
  13. bug1z

    bug1z Member

    Joined:
    7 May 2009
    Messages:
    61
    Likes Received:
    18
    Reputations:
    1
    Эм, это вообще хтмл шаблон формы авторизации.
    Искать уязвимости надо в authorize.php
    А из этого ничего...разве что
    name="password"
    name="login"
    изредко могут совпадать с названием колонок в Бд...
     
  14. xpkeygen

    xpkeygen New Member

    Joined:
    29 Sep 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    насчет login и password, то это я проверял - не подходит. Может быть есть какие-нибудь уязвимости, если вписать какую-нибудь абракадабру в поля логин или пароль ?
     
  15. Lide

    Lide Member

    Joined:
    25 Mar 2009
    Messages:
    21
    Likes Received:
    6
    Reputations:
    0
    Решите плиззз
    Простенький алгоритм:
    Дан двумерный массив размерностью 30x30:
    К любом элементу можно обратиться типа array[X][Y],
    где XY координаты.
    В массиве может содержаться число от 1 до 3-х.

    Необходимо написать функцию, которая возвращает координаты последовательности из
    любого числа 1 или 2 (не 3), которое идет 5 раз подряд по вертикали, горизонтали
    или диагонали.

    Пример:
    [3][3][1][3][3][3]
    [3][2][1][3][3][3]
    [3][2][1][3][3][3]
    [3][3][1][3][3][3]
    [3][3][1][3][3][2]

    Функция должна вернуть:
    3,1
    3,2
    3,3
    3,4
    3,5
     
  16. bug1z

    bug1z Member

    Joined:
    7 May 2009
    Messages:
    61
    Likes Received:
    18
    Reputations:
    1
    2xpkeygen
    попробуй:

    Login: " OR 1=1%00
    Pass:

    или

    Login: ' OR 1=1%00
    Pass:

    Вариантов много, в зависимости от того, какой код в authorize.php
     
  17. KaMiKadZe

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

    Joined:
    24 Feb 2006
    Messages:
    163
    Likes Received:
    35
    Reputations:
    19
    Нужно добавить переключение по месяцам...
    Т.е должны быть "<" - на месяц назад и ">" - месяц вперед
    Уже всю голову сломал...


    PHP:


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD><TITLE>Календарь</TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

    </HEAD>
    <body>
    <?php
    include("blocks/bd.php");
    // Функция для проверки имеются ли новости по определенной дате
    function url ($date){
    $result mysql_query ("SELECT date FROM news WHERE date='$date'");
    $numrow mysql_num_rows ($result);
    return 
    $numrow;
    }
    //Вычисляем  дату
    $td "<td align='right' class='a1'>";
    $day date ('d'); // день месяца
    $month date ('m'); // месяц
    $year date ('Y'); // год пример 1970
    $end_day date ('t'); // количество дней в месяце
    $one_day date ('w'); // номер дня недели от 0 до 6
    // Присваиваем каждому месяцу название
    switch ($month){
      case 
    0:
      
    $month_s='Декабрь';
        break;
      case 
    1:
        
    $month_s='Январь';
        break;
      case 
    2:
        
    $month_s='Февраль';
        break;
      case 
    3:
        
    $month_s='Март';
        break;
      case 
    4:
        
    $month_s='Апрель';
        break;
      case 
    5:
        
    $month_s='Май';
        break;
      case 
    6:
        
    $month_s='Июнь';
        break;
      case 
    7:
        
    $month_s='Июль';
        break;
      case 
    8:
        
    $month_s='Август';
        break;
      case 
    9:
        
    $month_s='Сентябрь';
        break;
      case 
    10:
        
    $month_s='Октябрь';
        break;
      case 
    11:
        
    $month_s='Ноябрь';
        break;
    }
    //Рисуем таблицу

    $calendar "<table align='center' border='0' cellpadding='0' cellspacing='0' class='a2'>
    <tr><td>
    <table border='0' cellspacing='1' cellpadding='2' width='100%'>
    <tr>
    <td align='center' colspan='7' class='a3'>
    <font class='a4'>
    <b> 
    $month_s $year   </b></font></td>
    </tr>
    <tr>
    <td align='center' class='a5'>Пн</td>
    <td align='center' class='a5'>Вт</td>
    <td align='center' class='a5'>Ср</td>
    <td align='center' class='a5'>Чт</td>
    <td align='center' class='a5'>Пт</td>
    <td align='center' class='a5'>Сб</td>
    <td align='center' class='a5'>Вс</td>
    </tr>"
    ;

    //Цикл заполнения календаря
    for ( $i 1$i <= $end_day+$one_day$i++)
    {
      if (
    $x==0){$x=7;}
    $x--;
    $a $i$one_day;
    $date $year."-".$month."-".$a;

      
    // Делаем дни что не существуют в начале пустыми
      
    if ($one_day$i or $a<1){$calendar .= "$td</td>";}
        
    // Суббота
        
    elseif ($i==or $i==13 or $i==20 or $i==27 or $i==34){
          
    //Сегодняшний день если суббота
          
    if ($i==$day+$one_day){
            
    // Делаем числа не имеющие новостей не ссылками
            
    if (url($date) > 0)
            {
            
    $a "<font class='a4'><a href='index.php?date=$date'>$a</a></font>";
            }
            else
            {
            
    $a "<font class='a4'>$a</font>"
            }
                      }
                     
            
    // Делаем числа не имеющие новостей не ссылками
            
    if (url($date) > 0)
            {
              
    $calendar .= "$td <a href='index.php?date=$date'>$a</a> </td>\n";
            }
            else
            {
              
    $calendar .= "$td $a</td>\n";
            }
                                    }
        
    // Воскресенье + достройка таблицы
        
    elseif ($i==or $i==14 or $i==21 or $i==28 or $i==35){
            
    // Делаем числа не имеющие новостей не ссылками
            
    if (url($date) > 0)
            {
              
    $calendar .= "$td <a href='index.php?date=$date'>$a</a> </td></tr><tr>";
            }
            else
            {
              
    $calendar .= "$td $a </td></tr><tr>";
            }
         
                                      }
        
    // Сегодняшний день если воскресенье
        
    elseif ($i==$day+$one_day){
            
    // Делаем числа не имеющие новостей не ссылками
            
    if (url($date) > 0)
            {
              
    $calendar .= "<td align='right' class='a7'><font class='forums'><a href='index.php?date=$date'>$a</a></font></td>";
            }
            else
            {
              
    $calendar .= "<td align='right' class='a7'><font class='forums'>$a</font></td>";
            }
                        }
        
    // Выводим все остальные дни
        
    else             {
            
    // Делаем числа не имеющие новостей не ссылками
            
    if (url($date) > 0)
            {
           
              
    $calendar .= "$td <a href='index.php?date=$date'>$a</a> </td>";
            }
            else
            {
              
    $calendar .= "$td $a </td>";
            }
         
                      }
    }
    // Делаем дни что не существуют в конце пустыми
    if ($x!=0){
    for ( 
    $i 0$i $x$i++){ $calendar .= "$td</td>"; }
    }
    $calendar .= "</table></td></tr></table>";
    echo 
    $calendar;

    ?> 
     
  18. reega

    reega New Member

    Joined:
    13 Dec 2008
    Messages:
    9
    Likes Received:
    3
    Reputations:
    0
    Дяди добрые!!!
    Чтобы всех Nickname пользователей собрать есть ли скрипт?
    а то их 22 тыщи по 25 на странице.
    поможите в личку!

    http://www.drive2.ru/users/?country=RU&city=&page=last&filter=
     
  19. D Mak

    D Mak Elder - Старейшина

    Joined:
    23 Jun 2007
    Messages:
    136
    Likes Received:
    27
    Reputations:
    0
    не стал разбираться в твоем коде, чет говнокодом попахивает.. наговнокодил сам, разберешься думаю
    PHP:
    <?php 
     
    //Вычисляем  дату 
    $day date ('d'); // день месяца 
    $month = (isset($_GET['month']) && intval($_GET['month']) && $_GET['month']>&& $_GET['month']<=12)  ? intval($_GET['month']) : date ('m'); // месяц 
    $year date ('Y'); // год пример 1970 
    $end_day date ('t'); // количество дней в месяце 
    $one_day date ('N'); // !!
    // Присваиваем каждому месяцу название 
    ?>
    <table>
    <tr>
    <td>ПН</td>
    <td>ВТ</td>
    <td>СР</td>
    <td>ЧТ</td>
    <td>ПТ</td>
    <td>СБ</td>
    <td>ВС</td>
    </tr>
    <tr><?

    $ot = date('N', mktime(1, 0, 0, $month, 1, $year))-1;  //отступ для 1 числа
    for($i=0; $i<$ot; $i++) echo '<td>&nbsp;</td>';
    for($i=1; $i<=$end_day; $i++) { echo '<td>'.$i.'</td>';  echo (!(($ot + $i) % 7)) ?  ($i != $end_day) ? "</tr><tr>\n"  : "</tr>\n" : '';}
    ?>
    </table>
    <a href="?month=<?=($month-1)%12;?>">&lt;</a>
    <a href="?month=<?=($month+1)%12;?>">></a>
     
  20. Lide

    Lide Member

    Joined:
    25 Mar 2009
    Messages:
    21
    Likes Received:
    6
    Reputations:
    0
    посмотрите мой алгоритм
     
Thread Status:
Not open for further replies.