• Как прикрутить на сайт форму "вопрос-ответ" в виде онлайн чата?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Такие модули сегодня модно покупать у сторонних компаний. Очень много предложений на рынке.

    Но если все же хотите сами, то для такого "чата" достаточно AJAX, никаких веб-сокетов не нужно, так как существует большой лаг между вопросом пользователя и ответа оператора. Достаточно раз в 30 секунд запрашивать сервер на наличие ответа по таймеру и всё.

    Чтобы сделать это на Ajax вам будет проще всего воспользоваться jQuery и его Ajax API
    Ответ написан
    3 комментария
  • Как распарсить письмо и получить его текст на пхп?

    require_once('rfc822_addresses.php');
    require_once('mime_parser.php');
    require_once('simple_html_dom.php');
    	
    $mime = new mime_parser_class;
    
    /* get information specific to this email */
    		$overview = imap_fetch_overview($inbox,$email_number,0);
    		$message = imap_fetchbody($inbox,$email_number,1);
    		
    		/* output the email header information */
    		$output.= '<div class="toggler '.quoted_printable_decode(($overview[0]->seen ? 'read' : 'unread')).'">';
    		if ($mime->Decode(Array('Data' => 'Subject: '.$overview[0]->subject), $decoded)) {
    				if ($mime->Analyze($decoded[0], $results)) {
    					$msg_subject = $results['Subject'];
    				}
    			}
    		$sub		=	mb_convert_encoding($msg_subject, 'UTF-8', 'KOI8-R');
    		$from		=	quoted_printable_decode($overview[0]->from);
    		$date		=	quoted_printable_decode($overview[0]->date);
    		$Sourse_des	=	$sub;
     		/* output the email body */
    		
    		$message	=	quoted_printable_decode($message);
    		$html		=	str_get_html($message);


    На здоровье.
    Ответ написан
    2 комментария
  • Почему раз в месяц из таблицы БД могут удаляться строки? Как найти дыру?

    @dredd_krd
    Можно проверить код и проанализировать все запросы, начинающиеся с DELETE, и вычислить, при каких условиях в данном коде они могут выполняться так, чтобы совпадало с проявляемой проблемой.
    Сами по себе строки удаляться не могут, поэтому их точно что-то удаляет. А раз так, то проблема должна быть где-то на поверхности
    Ответ написан
    Комментировать
  • Как входящие письма перенаправлять себе на скрипт?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Ответы должны уходить на реальный почтовый сервер.
    Вы своим сервисом должны подключаться периодически к этому почтовому серверу и забирать с него письма.
    Дальше уже реализуете свою логику.

    У Битрикса так модуль техподдержки работает, можете посмотреть исходники на свой страх и риск.
    Ответ написан
    Комментировать
  • Могут ли возникнуть дубли хешей?

    ivankomolin
    @ivankomolin
    Если кто-то узнает это:
    Генерирую так:
    $hash = hash('crc32b', md5($client_email.$id_item));

    То сможет получить доступ к любому кабинету зная только email пользователя.
    Это не очень хорошо.

    В таких случаях нужно делать так:
    1. При создании пользователя генерируете "токен" по которому можно заходить без пароля, например так:
    $hash = hash('crc32b', md5(uniqid(rand(), true)));
    2. При каждом заходе пользователя в кабинет по этому "токену" меняете его.

    Ну а чтобы не получилось одинаковых "токенов", нужно при создании/смене "токена" проверять на наличие такого же. Т.е. генерировать "токен" до тех пор пока он не будет уникальным, тогда и записывать в бд.
    Ответ написан
    2 комментария
  • Могут ли возникнуть дубли хешей?

    torrie
    @torrie
    Всё знаю, всё умею
    Скорее всего у вас не будет таких объемов, чтобы наткнуться на коллизию.
    Но лучше перестраховаться - проходить по базе в поиске такого же хеша. Если имеется - использовать другой id. А лучше сделать вариант с несколькими солями и указанием соли в бд при генерации. Как можно чаще используйте соль при генерации любых хешей.
    Ответ написан
    Комментировать
  • Насколько уникальная часть хеша (md5)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну... как бы коллизии и для обычных md5 может быть.

    Что до краткости - можно же перевести md5-хэш из 16-ти ричной системы, в систему с большим набором символов, тем самым сократив количество символов, этим можно уменьшить шансы попать в коллизию.

    Вообще есть более короткие хэши, можно их использовать. Но коллизии всеравно могут быть.
    Ответ написан
    2 комментария
  • Почему тормозит простой эффект "параллакса"?

    TekVanDo
    @TekVanDo
    Javascript Developer
    Плавную анимацию на js не сделать, используйте библиотеку для использования css3 анимаций например(ricostacruz.com/jquery.transit)
    Ответ написан
    Комментировать
  • Почему тормозит простой эффект "параллакса"?

    Pumko_adm
    @Pumko_adm
    Всего помаленьку
    wagerfield.github.io/parallax попробуй, там есть все
    Ответ написан
    Комментировать
  • Как сделать удобной страницу "Календарь туров"?

    HCADV
    @HCADV
    Фильтрация по городам на раскрытом календаре не работает или это такая фишка? Выбирай не выбирай, всё равно всё видишь.
    слева много пустого места и туда бы прекрасно поместился фильтро продолжительности с главной страницы, а под ним бы прекрасно встал фильтр по ценам, которого, правда, пока нет нигде.
    было бы неплохо иметь возможность метить понравившиеся туры, чтобы потом не вспоминать и не искать, а видеть сразу...набор иконок понравившихся можно пустить внизу в подвале сквозняком по всем страницам.
    Ответ написан
    2 комментария
  • Как оптимизировать количество запросов к серверу?

    maxaon
    @maxaon
    Первый вариант. Сделайте не один поддомен, а 10, поскольку браузеры огранчивают количесво одновременных запросов к серверу.
    Второй вариант. Объедените картинки в спрайты и позиционируйте их.
    Третий вариант. Создавайте картинки на стороне клиента спомощью JS. Преобразуйте картинки в BASE64, запишите в несколько файлов (не забудьте gzip) и вставляйте js'ом через data.
    Четвертый вариант. Сделайте одну большую картинку, разместите по центру. Далее загружайте маленькие картинки и наклабывайте сверху.
    Еще вариантов масса - фантазируйте.
    Ответ написан
    4 комментария
  • Как сделать перенаправление с xx.xx.xx.xx на xx.xx.xx.xx/site?

    Amet13
    @Amet13
    Нужно исправить все значения DocumentRoot с /var/www на /var/www/site и в блоке Directory сделать тоже самое, конфиг виртуального хоста обычно находится или в /etc/apache2/apache2.conf или /etc/apache2/sites-available/* или /etc/apache2/conf.d/*
    Ответ написан
    Комментировать
  • Верстка - вытянуть два сайдбара по высоте

    vladimir_gorobets
    @vladimir_gorobets
    PHP Web Developer
    Поражает упертость, с которой пытаются сделать то, что элементарно реализуется через table. Зачастую код этих извращенных вариантов реализации в разы превышает вариант table>tr>td + остается вероятность, что где-то это будет смотреться не так, как задумано… Я не против div-верстки, но ко всему нужно подходить обдуманно, взвесив все плюсы и минусы.

    Заранее спасибо за минуса, просто надоело, что люди придумывают себе проблему там, где ее нет. Ведь есть готовое решение, корректно работающее во всех браузерах.
    Ответ написан
    1 комментарий