• Почему не срабатывает MySQL запрос?

    @askarik
    веб-разработчик
    Странно, у меня сработало, давайте дампы.
    Это мой пример:
    CREATE TABLE `table1` ( 
    	`id` INT( 255 ) AUTO_INCREMENT NOT NULL, 
    	`title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 
    	`parent_id` INT( 255 ) NULL,
    	 PRIMARY KEY ( `id` )
     )
    CHARACTER SET = utf8
    COLLATE = utf8_general_ci
    ENGINE = INNODB
    AUTO_INCREMENT = 2;
    
    INSERT INTO `table1`(`id`,`title`,`parent_id`) VALUES (1,'first',0);
    INSERT INTO `table1`(`id`,`title`,`parent_id`) VALUES (2,'second',1);
    INSERT INTO `table1`(`id`,`title`,`parent_id`) VALUES (3,'other 1',NULL);
    INSERT INTO `table1`(`id`,`title`,`parent_id`) VALUES (4,'other 2',NULL);
    
    INSERT INTO table1 (title, parent_id)
    SELECT title, id FROM table1 WHERE parent_id IS NULL

    5368f61598f4475a87e7622c0bfc21e4.png3ab1c405efd34043b245dfaaa0e36834.pnga8a43aa40e834c1fbfdec919a9a7cb34.png
    Ответ написан
    Комментировать
  • Как правильно написать регулярное выражение?

    @askarik
    веб-разработчик
    Вот проверенная регулярка
    ([a-zA-Z]+[a-zA-Z-']*)+
    fa7d061df57141b6839b9e171b5393fa.png
    Можете его оптимизировать если есть надобность. Этот скрин сделан с PhpStorm-а, там есть возможность в поиске/замене использовать регулярку, мне всегда помогает. То что выделено - это те значения, которые попадают под регулярку
    Ответ написан
    Комментировать
  • Сложно ли перейти с веба на мобильную разработку?

    @askarik
    веб-разработчик
    По мне так не должно быть сложно, если у вас есть хорошие основы алгоритмизации, ООП то вы сможете разобраться в мобильной разработке. Главное хорошие источники документации найти, не лениться, выполнять задания, ставить себе цели, задачи. Со мной работает парень, веб-разработчик, по началу трудно было с документацией для разработки приложения для iOS, но ничего, справился, к тому же сейчас хватает русскоязычных сайтов сообществ.
    Ответ написан
    Комментировать
  • Структура php (как обратиться к массиву из другого файла)?

    @askarik
    веб-разработчик
    лучше всего сделать файл config.php, который в дальнейшем будет подключаться в файле index.php и comand.php, соответственно эти переменные будут доступны в этих файлах, так и делается обычно
    Ответ написан
    2 комментария
  • Почему не работает форма обратной связи?

    @askarik
    веб-разработчик
    всё просто
    сама функция на хостинге может быть отключена хостерами
    а если даже отправляется письмо, часто бывает такое, что письма отправленные этой функцией попадают в спам
    одно из двух
    Ответ написан
    4 комментария
  • Как сделать обязательным email у oAuth провайдеров?

    @askarik
    веб-разработчик
    как раз недавно работал с этим
    решение есть, просто кода много будет если я его выложу здесь
    опишу всё так, если не понятно спросите, отвечу

    в общем facebook: да, здесь есть такая ерунда, что сама социалка позволяет убрать галочку пользователю, но есть АПИ метод, который может узнать, какие права дал нам этот пользователь а именно
    /me/permissions?access_token=
    если в ответе от АПИ, в массиве для email status == decline - то нет прав, если granted - то есть
    если нет, можно запросить доступ к email заново
    header("HTTP/1.1 302 Found");
    header(
    'Location: '.$cfg['urls']['authorize_endpoint'].
    'auth_type=rerequest&'.//этот парам. указывает что надо сделать перезапрос доступа к email пользователя (не получится отказать в доступе к email)
    'client_id='.$cfg['client_id'].'&'.
    'response_type='.$cfg['response_type'].'&'.
    'state='.$cfg['state'].'&'.
    'scope='.$cfg['scope'].'&'.
    'redirect_uri='.$cfg['urls']['redirect_uri']);


    тут то уже пользователь не сможет галочку снять, либо ОК либо ОТМЕНА

    что касается ВК:
    тоже всё легко, используй OAuth 2.0
    header("HTTP/1.1 302 Found");
    header(
    'Location: '.$cfg['urls']['authorize_endpoint'].
    'client_id='.$cfg['client_id'].'&'.
    'response_type='.$cfg['response_type'].'&'.
    'scope=email&'.//вот оно то место, где ты запрашиваешь email
    'v='.$cfg['v'].'&'.
    'redirect_uri='.$cfg['urls']['redirect_uri']);

    если используешь OAuth 2.0, там галочку для email снять нельзя
    Ответ написан
    5 комментариев
  • Как правильно прописать регулярное выражение для "опции"?

    @askarik
    веб-разработчик
    что именно требуется?
    хочу помочь, но не понял сути задачи
    надо просто выбрать эти опции?
    что если так:
    (-){1,2}([^\s])+
    если опции всегда идут первыми в строке, но у них спереди могут быть пробелы, табы поставь вначале (\s)*
    Ответ написан
  • Какую версию Ubuntu поставить на нетбук Asus n1215 12ую или 14ую?

    @askarik
    веб-разработчик
    ты что на нём будешь делать?
    у меня на ноуте стоит последняя убунта, и ничего так, работает, точнее не убунту а Linux Mint на основе последней убунты. Просто мне не нравится юнити.
    Если ты собираешься программировать на PHP версии от 5.3 и выше то последняя убунта, так как репозитории для 12 не имеют свежих версий php, хотя наверно можно какими-то костылями обойти эту проблему
    Ответ написан
  • Как вытянуть ревизию с github?

    @askarik
    веб-разработчик
    ... решил откатиться именно к той закоммиченной версии.

    если вы после последнего коммита не делали других коммитов, и вам надо привести файлы в рабочем каталоге в состояние последнего коммита, то достаточно сделать так:
    git checkout .
    эта команда удалит все ваши изменения, которые Вы сделали. Будьте осторожны! Перед этим лучше сделать
    git stash save
    команда stash сохранит ваши изменения с рабочего каталога. В дальнейшем Вы их сможете от туда вытащить командой
    git stash apply
    по каждой команде лучше прочитать документацию
    git stash --help
    git chechout --help
    опция --help выведет полную документацию по команде
    рекомендую прочитать на этом сайте документацию на русском

    если надо откатиться к конкретному коммиту, то также пользуйтесь git checkout, вот кусок с документации
    git checkout commit
    где commit - это хеш код коммита, его можно увидеть через git log

    лучшей практикой будет использование веток - branch вот тут отлично всё расписано
    Ответ написан
    Комментировать