Приведение к целому типу

Категория: Программим

Часто бывает нужно обработать переменную, переданную по GET или POST методу. И делаются всякие проверки, число ли это, а вдруг там sql инъекция или еще какая хрень... А потом бывает нужно еще проверить, число ли это.
Самый просто и удобный способ сделать например так:

Цитата:

$var = $_POST['var']*1;

Если значение имеется, и это число, мы получим в итоге число, если там любая другая хрень или значение неопределенно, то получим 0.

Скрытые символы или вред копипаста

Категория: Программим

Сижу разбираюсь с классом PHPExcel. Написал часть кода, работает замечательно. Переделал по инструкции, не работает. Да что за ерунда. Скопировал из документа 1 в 1. Не работает и все тут.
Думаю, ну мало ли, может русские символы затесались, взял скопировал имя объекта из куска рабочего кода в нерабочий. Не работает. :(
Мучился, скопировал всю строку. Часть заработала, часть нет. Должен возвращаться объект, внутри объекта создается, и возвращается, а уже у меня потом идет он Null и все тут.
Оказалось, что при копировании пробелы вставились как не пробелы, а как хрен пойми что, в общем пошли за имя переменной.

Цитата:

$objReader = PHPExcel_IOFactory::createReaderForFile($xls);
$objReader->setReadDataOnly(true);

В первой строке пробел перед равно был не пробелом, а каким то хитрым символом... но выглядел как пробел. Ну и ессно далее php ругался, мол че ты мне тут суешь, нет такого объекта.
Зла не хватает :angry:

JavaScript, проверка номера телефона

Категория: Программим

Кратенькая запись на сегодня. Задача: проверить при вводе номер телефона, чтобы ввели его нормально, без всякой биллерберды. Неплохой и вполне рабочий код был нагло скомунижен с сайта госуслуг :)
Поле ввода номера:

Цитата:
<input id="phone" type="text" name="phone" value=" 7" class="inputBasic" onkeydown="setTimeout(formatMBT, 50);" onkeyup="setTimeout(formatMBT, 50);" onkeypress="setTimeout(formatMBT, 50);" onblur="formatMBT();"/>

И обработчик на JavaScript:
Цитата:
<script type="text/javascript" language="JavaScript" charset="UTF-8">
function formatMBT() {
var out_str = $('#phone').val().replace(new RegExp('D ', 'g'), '');
var p1 = out_str.substr(1, 3);
var p2 = out_str.substr(4, 7);
if (p2.length > 0) {
out_str = ' 7(' p1 ')' p2;
} else if (p1.length > 0) {
out_str = ' 7(' p1;
} else {
out_str = ' 7';
}
$('#phone').val(out_str);
}

</script>


Небольшой нюанс. Вышеприведенный код использует для своей работы фреймворк jQuery. Не забывайте подключать :)

Лосось в ананасах

Категория: За жизнь

Сегодня на обед была вот такая вкуснятина :) И еще сделал в придачу салатик с авокадо и кедровыми орешками!

http://www.aleksei.su/upload_files/images/_thb_29_89_203defc056dd170d2d0a62315a88ba0e.jpg

Server-status на Debian

Категория: Программим

http://www.aleksei.su/upload_files/images/_thb_29_88_0d106f0be337f9c3b019869f9df39a9e.jpg


В очередной раз потребовалось быстро узнать, что там по части соединений с apache на сервере. Как обычно запустил http://ip/server-status и как обычно увидел:
Цитата:
Forbidden

You don't have permission to access /server-status on this server.

И как обычно забыл напрочь, где это смотреть вообще. Каждый раз даю себе зарок, записать в блоге. Надоело, записываю :) (акутально для Debian, ISPManager, apache-itk)

Настраиваем хостинг

Категория: Программим

Сегодня в очередной раз настраивал очередной хостинг. На этот раз был куплен VPS у IMHoster. И так как я не сис админ а всего лишь вебмастер, то каждый раз в итоге ищу одно и тоже.
Решил сюда вынести часть команд, которые постоянно выполняю. На хосте стоит ISPManager, Debian 6.


phpMyAdmin и размер файла при импорте

Категория: Программим

В который раз сталкиваюсь с тем, что нужно в phpMyAdmin загрузить довольно большой дамп базы.
На хостинге проще всего это делать через SSH:

Цитата:
mysql --user=ПОЛЬЗОВАТЕЛЬ --password=ПАРОЛЬ ИМЯ_БАЗЫ < file.sql

А на Денвере (пакет Denwer) все еще намного проще.
Ситуация когда Денвер у нас стоит по умолчанию, в папке WebServers. На данный момент у меня php 5-й версии в нем.
И так, идет в папку WebServers/usr/local/php5 и находим там файл php.ini.
Далее меняем в нем следующие строки (в моем случае я ставлю максимальный размер файла в 100 мегабайт).
Цитата:
post_max_size = 100M
upload_max_filesize = 100M

Перезагружаем денвер и радуемся :)

Кнопка пуск для Windows 8

Категория: Программим

Вроде как в Microsoft решили пойти на встречу пользователям и вернуть и привычную кнопочку Пуск. Я же за время года работы с Windows 8 уже привык к новому интерфейсу и не испытаю никаких проблем, что сей чудной кнопки нет. Ну нет да и шут с ней.
Кнопочка должна появится в обновлении Windows Blue, выход которого планируется на середину 2013 года. Подождем - посмотрим :)

http://www.aleksei.su/upload_files/images/_thb_29_85_9c09484065cd21008c7424b4285202a9.jpg

Вести с фронтов TaoBao и tmall.items.extend.search

Категория: Программим

И так тотального отключения методов API taobao.items.search, taobao.items.get не произошло. Частично отключили, полное отключение отложено на 12-е число. Вот официальное заявление:

Цитата:
Dear developers:
Hello!
The permission of the original product search API (taobao.items.search, taobao.items.get), will be formally withdrew on March 12, you will not be able to re-use these two interfaces.
And from February 28 to March 12, we will limit the call of the two interfaces from time to time, you will receive error prompt.

Rehabilitation programs: If you want to search taobao goods, plese use API (taobao.taobaoke.items.get, tmall.items.extend.search).
Please complete the transformation as soon as possible, thank you!

Taobao Open Platform
2013/2/28

Вкратце: пока будут работать оба метода, но с перебоями, то будут, то не будут. А 12-го полностью вырубаем, так что просим перевести ваши разработки на использование методов taobao.taobaoke.items.get, tmall.items.extend.search.

Краткая инструкция по новому методу, по передаваемым параметрам:
q - поиск - String - q=nike
cat - Номер категории на tmall - String - cat=catid1,catid2
sort - сортировка (обязательно) - String - sort=s (о возможных значениях я писал в предыдущем посте)
brand - Бренд - String - brand=brand1,brand2 (номер бренда, можно посмотреть в выдаче без указания бренда, там будет их список)
prop - Свойтсва - String - 20001:29895;20678:102510
start_price - начальная цена。
end_price - конечная цена
page_no - номер страницы - Number
page_size - товаров на странице - Number
category - категория на TaoBao - String

Это вкратце то, что использую я.

Капельки и порошки

Категория: За жизнь

Заказал супруге в очередной раз капли для глаз на asiapokupki.ru. Суперская штука, берем уже третий раз. Но дело не в том. Пришла посылка, смотрю квитанцию, 3600, фигасе....

http://www.aleksei.su/upload_files/images/_thb_29_83_ee9fcde9d7c080e1f7f4d429ac34fed0.jpg


Капли по 500р, что за штуку. А там коробка, порошок Maka. Прошел на сайте в личный кабинет, смотрю заказ, точно там эта Мака есть, и стоит 2500 руб. Нехило, но может полезная штука, пошел почитать - усиливает потенцию. Шок и трепет :)
Этот магазин по заказу писал я, и возможно когда проверял корзину, добавил первый попавшийся товар в корзину, смотрю работает, ну и ладно. А когда сам заказывал - не обратил внимания. ну и так как меня знают, у меня состав заказа не уточнили и отправили, ну мало чего надо, у каждого свои проблемы :)))
Вот так бывает :) Следите за своей корзиной.