Задать вопрос
  • Как оформить уровни вложенности в условии?

    shaks
    @shaks
    Бро, честно признаюсь, минут 5 втыкал в твои условия. Краткая форма записи условия if-else служит для упрощения визуального восприятия кода, у тебя же получилось с точностью наоборот.
    Не нужно городить трехэтажную краткую форму записи условия.
    Собственно, как подсказал Дмитрий вот вариант на проверку вхождения в массив. Я не знаю правильно ли я расшифровал твой, можно смело сказать, - обфусцированный код, но собственно воть:
    <?php
    
    $conditions = array( # условия вхождения N в один из значений массива. Ключом массива является возвращаемый результат если условие истинно..
        0=> array(1, 2, 3), // Если твой data[lr1rt] равен 1, 2 или 3. то вернется ноль.
        5=> array(4,5,6),
        4=> array(7,8,9,10)
    );
    
    for($data['lr1rt']=0; $data['lr1rt']<=10; $data['lr1rt']++) // Цикл для теста влепил. Он тебе не нужен )
    {
    
        $result = 1; #если не подошло ни одно из условий
        foreach($conditions as $res => $cond) // Пробегаемся по массиву
        {
            if(in_array($data['lr1rt'], $cond)) // ищим вхождение
            {
                $result = $res;
                break; // если вхождение нашли, выходим из ближайшего цикла (в данном случае это foreach
            }
        }
        echo "lr1rt: {$data['lr1rt']} | $result\n";
    }
    /*
    Результат работы при текущих "настройках"
    lr1rt: 0 | 1
    lr1rt: 1 | 0
    lr1rt: 2 | 0
    lr1rt: 3 | 0
    lr1rt: 4 | 5
    lr1rt: 5 | 5
    lr1rt: 6 | 5
    lr1rt: 7 | 4
    lr1rt: 8 | 4
    lr1rt: 9 | 4
    lr1rt: 10 | 4
    
    */
    Ответ написан
    1 комментарий
  • Как отправить в заголовке `x-auth-user`: `username` средствами php?

    shaks
    @shaks
    Както так, как сказал Денис Сафронов (я кстати знаю одного дениса сафронова, в черноморске живет.. ы ), для этого лучше использовать курл, вот пример небольшой.
    try{
        $ch = curl_init('http://192.168.1.33/api/2.0?blabla=1111');
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'x-auth-user: user',
            'x-auth-pass: pass'
        ));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
        $result = curl_exec($ch);
        if (curl_errno($ch))
            throw new Exception(curl_error($ch));
        echo($result);
    }catch (Exception $e){
        echo($e->getMessage());
    }
    Ответ написан
    3 комментария
  • Как извлечь из MySQL данные по нескольким критериям силами PHP?

    shaks
    @shaks
    Я не побоюсь выразить наверное то, что крутится у многих на языке, кто прочел это) - Это пиздец, дружище ) Большой, кромешный пиздец )
    Выход из ситуации. - nosql. Забудь про Мускул. Сделай все на mongodb например. Все данные хранить в древовидных коллекциях. Вобщем почитай, как раз все твои проблемы решаться оч легко и изящно.

    NoSql позволит тебе в одной коллекции (аля таблице) хранить как автомобили с их характеристиками, так и туалетную бумагу, домашних животных и разные сорта вятского кваса.

    Upd А по сабжу, если уж на мускуле делать, то нужно делать через связи has_many и/или has_and_belongs_to_many/has_many through, а не лепить айди через запятую и искать регулярками.

    Т.е. есть таблица товаров. Есть таблица фильтров, и есть соединяющая таблица товаров и фильтров.
    У каждого товара есть id, у каждого фильтра есть id, а в соединяющей таблице пишутся id'ы товаров и фильтров. Таким образом ты получишь нужную тебе связь.
    Если ты чувствуешь что делаешь чтото не так, то скорей всего так оно и есть :) С таким подходом как у тебя, теряется вся логическая цепочка, мускул сойдет с ума, ибо не будет ведать что он творит )
    Ответ написан
    4 комментария
  • С какого языка программирования начать изучение back-end?

    shaks
    @shaks
    Вобще принципиальной разницы особо не вижу (если только из тегов убрать js, ибо это фронтенд), но я бы начал с Ruby. Сразу приучишься работать грамотно, правильно, с тестированием и тд и тп. Начнешь с php, сольешься с серой массой гавнобыдлокодеров. Никого не хочу обидеть, но скажу так, руби начал свое форсированное развитие не так уж и давно и на него перешли в большинстве своём грамотные люди из таких языков как тот же пхп, питон, перл, java и тд и тп, Т.е. я хочу сказать что сообщество грамотное и уважаемое. Я на заказ не программирую, но знаю что кодеры на руби намного более в дефиците нежели php, а соответственно и оплата более высокая.
    Сугубо моё личное ИМХО.
    Ответ написан
  • Что не так с кодировкой firefox?

    shaks
    @shaks
    <meta charset='utf8'>внутрь <head>

    Ты работал изначально в винде, и файл у тебя в cp1251. Обязательно пересохрани его в utf8
    Ответ написан
    3 комментария
  • Древовидные комментарии, как лучше реализовать?

    shaks
    @shaks
    Ответ написан
    Комментировать
  • Где и как держать большую базу данных?

    shaks
    @shaks
    Загляни в mysql-slow.log, посмотри на тяжелые запросы, подшамань да подкрути их. там 146% есть гайки которые можно подкрутить.
    Пологируй все запросы чуток. Проанализируй каждый из них на ПРАВИЛЬНОЕ использование индексов. Поубирай лишние индексы (освободишь наверное процентов 20-30 пространства). Вобщем оптимизируй. И только если оптимизировать нечего - тогда уже стоит задумываться о шардах.
    Ответ написан
    4 комментария
  • Как сделать свою платежную систему?

    shaks
    @shaks
    Ничего практичного не скажу, я не холдер какой нибудь платежки.. я чисто так.. лясами поточить )

    Возможно создать свою платежную систему?

    Я бы сказал что нет ничего не возможного... но никак не могу укусить себя за локоть и за лоб) Поэтому скажу просто - возможно :)

    Что для этого потребуется (кроме денег и связей)?

    голова на плечах, хитрожопство, изюминка и аудитория которой нужна эта изюминка. Связи не нужны, деньги есть у инвесторов если че ))
    С какими трудностями придется столкнуться?

    помимо реализации и четкого понимания как это всё работает, в том числе шарить в финансовом деле? Про эксперимент "кот шрёдингера" слышал?)
    Ответ написан
    6 комментариев
  • Как отправить POST через JavaScript, на php обработчик?

    shaks
    @shaks
    На форму вешается обработчик onsumit, и дальше уже, делается ajax запрос. Функцию запроса можно состряпать самому (см ответ от Владислав Павлов), или же глянуть в сторону библиотеки jquery или js фреймворка prototypejs

    при этом положить массив с значениями в LocalStorage, чтобы затем можно было заполнять input, чтобы пользователь не потерял данные при хождении по страницам.

    Хранить можно где угодно, можно в сессии, можно в БД, можно и в локальном хранилище. Все зависит условий и поставленной задачи. Имею ввиду, если это данные профиля юзера например, то о локальном хранилище и речи быть не может.
    ибо легче запомнить html код со значениями, и затем просто вставить его?

    html запоминать не надо, нужно запоминать значения.
    Ответ написан
    Комментировать
  • Как провести платеж с помощью Yandex.Money API на Ruby on Rails?

    shaks
    @shaks
    Редирект делать через жс прокладку. Сабмитить форму просто. Я делал именно так (правда не с ЯДом).
    Ответ написан
    Комментировать
  • Как реализовать работу с BitCoin на сайте?

    shaks
    @shaks
    https://blockchain.info/ru/api/api_receive
    делаешь запрос на апи, указывая колбек урл свой, получаешь кошель. как на кошель поступает какаято денюшка, блокчейн отстукивает на указанный колбек урл. В мануале все подробно описано. Незачто )
    Ответ написан
    Комментировать
  • Какие могут быть причины, того что файл не загружается?

    shaks
    @shaks
    $a = $_FILES['fileToUpload']['name'];
    move_uploaded_file($_FILES['fileToUpload']['tmp_name'], "uploads/{$a}")


    Зы.
    - Оставлять родное имя файлу не следует, следует заменять все символы, не входящие в UTF-8, на "_" например.
    - Нужно предвидеть то что файл с указанным именем уже существует в папке uploads
    Ответ написан
  • Как сделать редактирование и исправить ошибку?

    shaks
    @shaks
    По сабжу:
    enctype="multipart/form-data" -
    читаем и осознаем что это такое тут - https://ru.wikipedia.org/wiki/Multipart/form-data

    Ваш код называется - быдлокод, совсем не DRY и имеет sql уязвимости. Времена php3 уже давно прошли. Начните с книг. По пхп есть очень много качественной литературы.

    if(isset($_GET['edit_id'])){ # а если переменная isset, но пустая? т.е. domain.com/?edit_id
        $edit_id=$_GET['edit_id']; # А если $_GET['edit_id'] это массив? или например равна любому символу отличному от цифры. 
        db_connect();  # тут все понятно ) лол
        $query="SELECT*FROM Processors WHERE ID='".$edit_id."'"; #Почему имя таблицы с большой буквы? Почему ID верхним регистром? 
        $result=mysql_query($query)or die(mysql_error()); # посетителю показываем ошибку чтобы ему было удобнее производить взлом ?)
        $row=mysql_fetch_assoc($result);
        db_close();# правильно, закрываем соединение с базой, чтобы через 2 строчки ниже, заново открыть) Умница!
     
        if(isset($_POST['edit'])){
            
        db_connect(); # открываем.. опять))
        $querys='UPDATE Processors SET Price = '.$_POST['Price'].', Article = '.$_POST['Article'].' WHERE ID='.$edit_id; # опять нет проверок входящих переменных, опять не общепринятое написание имён таблиц в БД.
        $result=mysql_query($querys)or die("Error:".mysql_error()); # показываем ошибку. 
     
        db_close(); 
       header("location: edit.php?edit_id=".$_GET['edit_id']);
    }


    Это ужас!! )

    1. Все входящие переменные нужно проверять. Как их присутствие, так их тип (строка/массив), так и их значение
    2. Ошибки нужно логировать в файл, а не показывать в браузере
    Ответ написан
  • Как записать значение куки в переменную в фоновой странице?

    shaks
    @shaks
    Я не понимаю что значит фоновая страница, но судя по наличию vk.com, то видимо имеется ввиду кроссдоменный забор куки. Если это так, то ответ - никак.
    Ответ написан
  • Почему автор не проверяет наличие обьекта в базе перед его удалением?

    shaks
    @shaks
    1. Потому что, как сказал Семён Семёнов , - это просто примеры.
    2. Произойдет исключение ActiveRecord::RecordNotFound
    3. Вопрос не понятен, что значит настройке серверных ошибок?
    Ответ написан
  • Понять принцип работы обьектов в php на примере?

    shaks
    @shaks
    Советую взяться за изучение ООП фреймворков. Тогда ты на практике уже поймешь что к чему и в чем прелесть 3х китов ООП. На php мне очень нравится фреймоврк kohana. Или самому попробовать вникнуть в паттерн проектирования MVC (Model - модель. Отвечает за работу с базой. View - представление.. класс отвечающий за работу с шаблонами. Controller - контроллер). В двух словах, это 3 базовых класса из которых вырастает бОльшая часть твоего приложения.
    У каждой таблицы своя модель(Model) как правило, и все эти модели унаследуются от базовой модели. Вьюха (представление) - за работу с хтмлом.. а Контроллер находится между моделями и вьюхами, и указывает кому что делать. Инфы в инете валом по MVC.
    Параллельно почитай книги про паттерны проектирования.
    Ответ написан
    2 комментария
  • Error 1064 (DB1) ,что это значит?

    shaks
    @shaks
    В следующий раз выкладывай сам sql запрос который уходит в мускул. А по сабжу, написано же четко и ясно - косяк в синтаксисе, - иди кури мануалы (так и написано примерно).
    ОШИБКИ НАДО ЧИТАТЬ. Первое правило программиста ;)
    Ответ написан
    Комментировать
  • С чего начать реализацию партнерки в интернет магазине?

    shaks
    @shaks
    Вам нужно к ссылке, которой делится чел, присобачивать реферальный параметр, им может быть логин или id вашего вебмастера.
    Если текущая ссылка
    xttp://site.com/computers/acer/model.html
    То реферальная ссылка, иными словами ссылка которой делиться вебмастер, должна быть вроде:
    xttp://site.com/computers/acer/model.html?ref=123 (где 123 - ID вебмастера)
    или
    xttp://site.com/computers/acer/model.html?ref=vasya (vasya - логин)
    или же
    xttp://site.com/computers/acer/model.html?ref=base64_encode(шифрованные данные какие-то хитрожопые)

    Вобщем както так.
    Короче ответ - добавлять get параметр к текущему URI.
    При получении такого параметра, вешать вечную куку и если посетитель уйдет но завтра/через месяц вернется, то продажа засчитается тому вебмастеру который привел юзера первый (или последний).
    Ответ написан
    2 комментария