Сборник индуского кода.

  • Автор темы Автор темы HraKK
  • Дата начала Дата начала
PHP:
 if (!empty($_GET['source_date'])) {

        $date = $_GET['source_date']; //06.06.2014

        $date = strtotime($date);

        $time = (!empty($_GET['source_time'])) ? $_GET['source_time'] : '00:00'; //17:00 or 00:00

        $date= explode('.',  $date);

        $d = $date[0];
        $m = $date[1];
        $y = $date[2];

        $time = explode(':', $time_f);

        $h  = $time_f[0] - 4;
        $min = $time_f[1];
        $s = 00;

        $timestamp = mktime($h, $min, $s, $m, $d, $y);

    }
 
"Формат" обмена данными в системе ArchiCredit, микрозаймы. Этот "пример" они прислали по запросу.
PHP:
<?xml version="1.0" encoding="windows-1251"?>
<Loans>
    <Loan>
        <Name>Петр</Name>
        <Name1>Иванов</Name1>
        <Name2>Сидорович</Name2>
        <MobilePhone>+7(906)258-17-19</MobilePhone>
        <Phone>8 (495)123-45-96</Phone>
        <EMAIL>[email protected]</EMAIL>
        <TypeName></TypeName>
        <ChargePeriodKind></ChargePeriodKind>
        <MainPercent></MainPercent>
        <PeniPercent></PeniPercent>
        <Number></Number>
        <CreationDT></CreationDT>
        <PeriodQuant>10</PeriodQuant>
        <Amount>10000</Amount>
        <BirthDate>14.03.1984</BirthDate>
        <BirthPlace>Москва</BirthPlace>
        <IdentDocSeries>1234</IdentDocSeries>
        <IdentDocNumber>456789</IdentDocNumber>
        <DocBeginDate>14.02.2001</DocBeginDate>
        <DocContent>ОВД Ивановское Москва</DocContent>
        <DivisionCode>123-4569</DivisionCode>
        <RegistrationType>постоянная</RegistrationType>
        <AdressReg>Москва, Ивановское, Молостовых, 53, 3, 153</AdressReg>
        <AdressFact>Москва, Ивановское, Молостовых, 54, 4, 154</AdressFact>
        <WorkName>{CompanyName}</WorkName>
        <WORKVIDDEAT>{CompanyOccupation}</WORKVIDDEAT>
        <WorkProf>{CompanyPosition}</WorkProf>
        <WorkPhone>{CompanyPhone}</WorkPhone>
        <MonthIncome>{Profit}</MonthIncome>
        <RECOMEND>{PeopleName1} ({PeopleWho1})</RECOMEND>
        <TELRECOMEND>{PeopleMobilePhone1}, {PeopleHomePhone1}</TELRECOMEND>
        <RECOMEND2>{PeopleName2} ({PeopleWho2})</RECOMEND2>
        <TELRECOMEND2>{PeopleMobilePhone2}, {PeopleHomePhone2}</TELRECOMEND2>
        <RECOMEND3>{PeopleName3} ({PeopleWho3})</RECOMEND3>
        <TELRECOMEND3>{PeopleMobilePhone3}, {PeopleHomePhone3}</TELRECOMEND3>
        <RECOMEND4>{PeopleName4} ({PeopleWho4})</RECOMEND4>
        <TELRECOMEND4>{PeopleMobilePhone4}, {PeopleHomePhone4}</TELRECOMEND4>
        <CompanyAdress>{CompanyAdress}</CompanyAdress>
        <RECOMEND5>{PeopleName5} ({PeopleWho5})</RECOMEND5>
        <TELRECOMEND5>{PeopleMobilePhone5}, {PeopleHomePhone5}</TELRECOMEND5>
        <RECOMEND6>{PeopleName6} ({PeopleWho6})</RECOMEND6>
        <TELRECOMEND6>{PeopleMobilePhone6}, {PeopleHomePhone6}</TELRECOMEND6>
    </Loan>
</Loans>
 
и в чем проблема? рекомендации зафейлены немного ну и uppercase кое-где. Ты не видел действительно страшных форматов XML. Я вот до сих пор страдаю с такими, с тегами - аббревиатурами на финском языке, будь они неладны и структурой, в которой явно просматривается "эволюция"(в которой новые элементы добавлялись абы как, без разбора) и в которой данные разбиты так:
<group1>
.... здесь какие то данные
</group1>
<group2>
... здесь другие данные, причем вообще непонятно причем тут group2
</group2>
.....
<group9>
...данные и тут. связи никакой. просто положены друг с другом абы как.
</group9>

Group10 делать не стали. Либо постеснялись, либо все еще впереди.
 
вместо
PHP:
$array= array_map('htmlspecialchars', $array);
встретил такое:
PHP:
foreach($array as &$value){
    $value = htmlspecialchars($value);
}
 
weregod, ничего страшного) просто кто-то не знал про array_map =)
 
Я долго крепился, потому что там в принципе можно любой вопрос брать и составлять коллекцию даунов.
Но здесь мало того, что целый зоопарк, но последний, со своим "человеком, похожим на генпрокурора", меня окончательно добил.
https://toster.ru/q/200155
 
Фанат, ты борешься с ветряными мельницами
Ну, вообще, обычно это доставляет некоторый фан :)
Тем более что я сейчас болею (т.е. времени у меня вагон и таким макаром я пытаюсь скрасить адский кашель).
Но на тостере я столкнулся с непривычным явлением - там просто наводнение идиотов.
 
Такие всегда были и всегда будут. Корень проблемы лежит в том что люди читают учебники по буквам, не обращая внимание на то что из этих букв сложены слова, а они сложены в предложения. Один идиот прочитал что есть какая-то мифическая "безопасность" и прочие "умные слова", но выдрав слова из контекста не понял о чём речь. Вторая проблема что есть люди нифига которые не поняв, думают что стали профи, и уже обучают других. (Я через это прошёл, сам начинал учитья по статьям типа "все данные полученные от пользователя надо отфильтровать от опасных символов")
 
"все данные полученные от пользователя надо отфильтровать от опасных символов"
ну вполне себе правильная идея, валидация и фильтр.
Какие могут быть HTML символы в фио, адресах, ценах?.. кака существительна, кака прилагательна?
другое дело если ожидаем html.

зы бросай бухать, вставай на зарядку!
 
символы в фио, адресах
Вот тут (я не про html, а вообще про валидацию) лучше делать поменьше предположений и хавать что дают. :) Фамилия может быть, скажем, из одной буквы, отчества может не быть, фамилии, кстати, тоже может не быть (скажем, у исландцев только имя и отчество, но они так-то привыкли отчество писать в поле для фамилии). Адрес так вообще, черт их знает, что там у каких китайцев где и как.
 
Вот и ты сейчас пишешь "правильная идея" а потом тебя прочитают и будут фильтровать, потому что ты авторитет. А потом выходят всякие вордпрессы где фиг что запостишь с первого раза, потому что авторы "начитались" и фильтруют всё и вся. (хотя от уязвимостей их это так и не уберегло, с завидной регулярностью дыры находятся.) Или вовсе шедевры веб-дева где в паролях например можно использовать только буквы или вообще только цифры...

Фильтрация пользовательского ввода НИКОГДА не нужна и ни под каким соусом. В БД надо хранить (если эти данные конечно должны храниться) ТОЛЬКО исходник. Либо не хранить (если ввод не соответствует требованию) для этого как раз надо юзать именно ВАЛИДАЦИЮ чтоб определить что хранить а что нет. Вывод другое дело, но и его чаще всего стоит не фильтровать а скорее преобразовывать (в тот же HTML или куда там оно идёт)
 
Знал что про пароль скажешь (Точнее не знал ты или кто ещё, но знал что кто-то обязательно скажет)

Повторяю "если эти данные конечно должны храниться" ;) Учимся сначала читать, а потом уже учим других писать :)
 
Сверху