За последние 24 часа нас посетили 19084 программиста и 1599 роботов. Сейчас ищут 950 программистов ...

Наш индийский код....

Тема в разделе "Прочее", создана пользователем admyx, 1 дек 2008.

  1. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    PHP:
    1.  
    2. <?php
    3. ?>
    4. </table><br />
    5.  
    6. <?php
    7.  
    8. $paging_visible = true;
    9. include("inc/paging.php");
    10.  
    11. } else {
    12.     echo NEUSTREZA;
    13. }?>
    14.  
    15. <? echo "<br/><br/><a href=\"index.php?page=";isset($_GET['old']) && $_GET['old']=='true'?print "rabljena":print"produkti";print"&lang=$lang\">".NAZAJNAPRODUKTE."</a>";
    16. ?>
    17.  
    18. </div>
    Психи
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вот де-то раскопал
    PHP:
    1. <?php
    2. function shutoff ($msg = false) {
    3.         if (!$msg) {
    4.                 exit();
    5.         } else {
    6.                 die($msg);
    7.         }
    8. }
     
  3. я тут разбираю один программых комплекс когда то бывших старших товарищей...
    PHP:
    1. <?php
    2. $db_p = mysql_query("select if(p.abn_id=1,t.name,'Не получена') name, p.phone, tt.abt_id abonent_type_id
    3.                         from (pay09_file".((substr($cdate,6,4)=="2007")?"_2007":"")." p, type_query t)
    4.                         left join temp_temp_abt tt
    5.                         on if(length(p.phone)=6,concat('2',p.phone),p.phone) = tt.device
    6.                         where p.type_query_id = t.id
    7.                         and (p.phone not in (".$tel_no.") or p.type_query_id <> 7)
    8.                         and month(p.ts) = month('".$cdate2."')
    9.                         and year(p.ts) = year('".$cdate2."')
    10.                         and p.phone <> '331160'
    11.                         order by if(p.abn_id=1,t.name,'Не получена')");
    12. ?>
     
  4. kas1e

    kas1e Активный пользователь

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    Переписывал проект один.

    Наткнулся на тукие конструкции:

    if($_GET['from'] == 'asc')$_GET['from'] = 'asc';elseif($_GET['from'] == 'desc')$_GET['from'] = 'desc';

    И таких конструкций с разными именами было строк 15.

    Вот что значит железная уверенность! :)
     
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    kas1e
    С elseif они перестарались, но вообще смысл есть, да и код выглядит более понятным, да и записать надо чуть по другому:

    PHP:
    1. <?php
    2. $_GET['from'] = (trim($_GET['from']) == 'asc') ? 'asc' : 'desc';
    3.  
    Не забываем что есть такая вещь как null byte, натыкать пробелов и.т.д., покрайней мере в таком виде у нас 100% будет одно из 2-х значений, т.е. 100% уверенность в отсутствии injections
     
  6. kas1e

    kas1e Активный пользователь

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    тобишь switch, case, default идут в топку с нулл-байт уязвимостью?
     
  7. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    kas1e
     
  8. kas1e

    kas1e Активный пользователь

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    %00 - это он и есть?
     
  9. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  10. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    В php строки не завершаются null байтом. И большинство функций бинарно безопасные.
     
  11. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Sergey89
    Большинство, но не все.
     
  12. kas1e

    kas1e Активный пользователь

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    помню когда-то что-то ковырял в инете, кавычки не помогли, ничего не добилось вывода ошибки мускуля, но поставив вместо этого злощастного id нуллбайт я лицезрел ошибку. так что иногда полезно =)
     
  13. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1.  
    2. IF ($row['view']!="" AND $row['view']=="2" AND $row['view']!="1") $cheked="CHECKED";
    3.  
     
  14. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Не мой, но посмеялся:
    PHP:
    1. <?php
    2. $cout['ref_next_prev'] = "";
    3.     if($page>1)
    4.         $cout['ref_next_prev'] .= '<a href="?page='. ($page-1) .'" title="">'.htmlspecialchars('<<< ')."Предыдущая".'</a> ';
    5.     if($page<$pages_count)
    6.         $cout['ref_next_prev'] .= '<a href="?page='. ($page+1) .'" title="">'."Следующая".htmlspecialchars(' >>>').'</a>';
    Прикольно, парень присылает вместе с резюме куски кода, для примера:
    PHP:
    1. <?php
    2. if(isset($_REQUEST['news_id'])){
    3.     //рудимент, но не помешает в дальнейшей отладке
    4.     isset($_REQUEST['news_id']) ? $news_id = $_REQUEST['news_id'] : $news_id = 1   ;
     
  15. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?
    2. IF(strlen($t)>256) $t=iconv("cp1251", "UTF-8", substr(iconv("UTF-8", "CP1251",$t), 0, 256).'...');
    вот что лень иногда делает.
     
  16. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    О, только что накодил :) (выглядит страшно, но работает нормально, без глюков)
    PHP:
    1. <?php
    2. /** база данных
    3. CREATE TABLE `guestbook` (
    4.     `date` datetime NOT NULL,
    5.     `name` char(32) NOT NULL,
    6.     `text` text NOT NULL,
    7.     PRIMARY KEY (`date`)
    8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    9. **/
    10.  
    11. // коннект к базе
    12. @mysql_connect('localhost', 'root', '');
    13.  
    14. // количество сообщений на страницу
    15. $limit = 10;
    16.  
    17. // отправка сообщения если оно есть
    18. if ( trim(@$_POST['text']) != '') {
    19.     // это всё перепишу потом, а пока пусть будет так
    20.     $username = trim(@$_POST['username']) != '' ? mysql_real_escape_string($_POST['username']) : 'Анонимус';
    21.     mysql_query("INSERT INTO `guestbook` VALUES (NOW(), '$username', 0x".bin2hex($_POST['text']).")");
    22.     header('Location: ' . $_SERVER["SCRIPT_NAME"]);
    23.     exit;
    24. }
    25.  
    26. // подсчёт количества страниц
    27. $temp = mysql_query("SELECT CEIL(COUNT(`date`)/$limit) as `pages` FROM `guestbook`");
    28. $pages = $temp ? mysql_result($temp, 0) : 1;
    29.  
    30. // © [url=http://www.php.ru/forum/viewtopic.php?p=240873#240873]http://www.php.ru/forum/viewtopic.php?p=240873#240873[/url]
    31. $start = @$_GET['start'] > 0 ? 0+$_GET['start'] : "0";
    32.  
    33. // запрос сообщений
    34. $posts = mysql_query("SELECT * FROM `guestbook` ORDER BY `date` DESC LIMIT $start, $limit");
    35. ?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
    36.  
    37. <title>Guestbook</title>
    38. <meta http-equiv="content-type" content="text/html; charset=utf-8">
    39. <style type="text/css"><!--
    40.     html {padding:16px;background-color:#ccc}
    41.     body {background-color: #fff;width:672px;margin:auto;padding:24px;border:1px solid black;}
    42.     h1, form, address {text-align:center}
    43.     p {font-family: "Arial";margin: 4px}
    44. --></style>
    45.  
    46. <h1>Guestbook</h1>
    47. <form action="" method="post">
    48.     <p>
    49.         <textarea name="text" cols="30" rows="7"></textarea>
    50.         <br>
    51.         <input type="text" name="username" value="Анонимус">
    52.         <input value="Submit" type="submit">
    53.     </p>
    54. </form>
    55. <hr>
    56. <p>
    57. <?php for ($i=0; $i<$pages; $i++): ?>
    58.     &lt; <a href="?start=<?php echo $i*$limit;?>"><?php echo $i+1;?></a> &gt;
    59. <?php endfor; ?>
    60. </p>
    61. <hr>
    62. <?php while ($row = @mysql_fetch_assoc($posts)): ?>
    63.     <p><b><?php echo htmlspecialchars($row['name'])?></b> - <i><?php echo htmlspecialchars($row['date'])?></i><br>
    64.     <?php echo nl2br(htmlspecialchars($row['text']))?></p><hr>
    65. <?php endwhile; ?>
    66. <p>
    67. <?php for ($i=0; $i<$pages; $i++): ?>
    68.     &lt; <a href="?start=<?php echo $i*$limit;?>"><?php echo $i+1;?></a> &gt;
    69. <?php endfor; ?>
    70. </p>
    71. <hr><address>© <a href="http://dkflbk.nm.ru/">Vladson</a>.<address>
     
  17. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Vladson а чего не PDO/mysqli?
     
  18. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нормальный код.
     
  20. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Вообще писал только 64-67 строчки для примера в один из топиков (а в качестве примеров люблю использовать классику жанра)
    потом скопипастил для полноты картины 37-57 строчки, а потом понял что для полностью рабочего примера дописать то осталось всего ничего, и дописал
     
  21. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?php
    2. function help() {
    3.      return false;
    4. }
    долго выткал, потом вспомнил что написать забыл
     
  22. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Наткнулся в главном файле index.php форума MiniBB вот на такое:
    PHP:
    1. <?
    2. $unset=array('logged_admin', 'isMod', 'user_id', 'langu', 'includeHeader', 'includeFooter', 'emptySubscribe', 'allForumsReg', 'registerInactiveUsers', 'mod_rewrite', 'enableViews', 'userDeleteMsgs', 'userInfoInPosts', 'inss', 'insres', 'preModerationType', 'textLd', 'adminAcceptsSignup', 'customProfileList', 'correct', 'customTopicSort', 'manualIndex', 'startIndex', 'mTop', 'mdrw', 'metaLocation', 'post', 'reply_to_email', 'csrfchk', 'emailCharset', 'adminUser', 'cook', 'forumClone', 'xtr', 'addMainTitle', 'url_follow', 'site_url', 'allowedRefs', 'uname_minlength', 'uname_maxlength', 'enchecked', 'fIconWidth', 'fIconHeight', 'smartLinking', 'pathToTpl', 'archives', 'forumsTt', 'forums_url');
    3. for($i=0;$i<sizeof($unset);$i++) if(isset(${$unset[$i]})) { ${$unset[$i]}=''; unset(${$unset[$i]}); }
     
  23. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Ensiferum
    Воистину индийский!
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а что за конструция ${$arr[]}?
     
  25. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?
    2. $arr = array('name');
    3. ${$arr[0]} = 'Igor';
    4. echo $name;
    Впрочем, без фигурных собок тоже самое.