вторник, 23 августа 2011 г.

Регулярные выражения для javascript

Задача: написать проверку сложности пароля. Пароль должен иметь длину не менее 5 символов, и содержать в себе хотя бы одну цифру, при этом пароль может содержать только цифры и латинские буквы в верхнем и нижнем регистре.

Получившееся у меня выражение:

((?=.*\d).(?!.*\W).{5,20})

Здесь можно посмотреть шаблоны регулярных выражений, с объяснением как они работают

пятница, 12 августа 2011 г.

Настраиваем IPN для работы с PayPal

Пришлось порядком повозиться, чтобы заставить сайт мгновенно узнавать о том, что пользователь оплатил заказ. Работаем с PayPal напрямую, без сайтов-посредников, возвращение пользователя на наш сайт также не требуется. PayPal сам отправляет нам post-запрос с кучей заголовков, как только платеж совершен.

Вот здесь понятно описано, с примером для c# http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx#IPN

Вкратце:
1. Нам приходит post-запрос.
2. Сохраняем его и отправляем обратно на PayPal, чтобы проверить, действительно ли платеж совершен, или это хак.
3. Получаем ответ от PayPal - Verified - если платеж совершен, или Invalid, если такого платежа не было. Ну и обрабатываем данные.

Свои параметры для пост-обработки заказа передаем с формы через параметр custom.
<input type="hidden" name="custom" value="our params">


При обработке ответа сервера не забываем проверить адресата платежа, сумму и валюту.

Для тестов регистрируемся на Sandbox.paypal.com, создаем тестового продавца и покупателя, и вперёд.

четверг, 26 мая 2011 г.

масштабное падение Skype

Сегодня волшебным образом у всего нашего офиса упал Skype. Почти одновременно на всех компьютерах программа выдала исключение и закрылась. Часа через полтора удалось запустить Skype на компьютере с Win7, на WinXP по прежнему вылетает исключение сразу при попытке запуска.

Известно, что накануне всеми любимая компания Microsoft купила Skype. Неужели теперь под WinXP о Skype можно будет и не мечтать?..

вторник, 17 мая 2011 г.

список штатов сша - asp.net dropdownlist

Может, кому-то пригодится. ASP.NET DropDownlist со списком штатов США.

<asp:DropDownList ID="state" runat="server" Width="160px">
<asp:ListItem Value="AL" Text="Alabama"></asp:ListItem>
<asp:ListItem Value="AK" Text="Alaska"></asp:ListItem>
<asp:ListItem Value="AZ" Text="Arizona"></asp:ListItem>
<asp:ListItem Value="AR" Text="Arkansas"></asp:ListItem>
<asp:ListItem Value="CA" Text="California"></asp:ListItem>
<asp:ListItem Value="CO" Text="Colorado"></asp:ListItem>
<asp:ListItem Value="CT" Text="Connecticut"></asp:ListItem>
<asp:ListItem Value="DE" Text="Delaware"></asp:ListItem>
<asp:ListItem Value="DC" Text="District of Columbia"></asp:ListItem>
<asp:ListItem Value="FL" Text="Florida"></asp:ListItem>
<asp:ListItem Value="GA" Text="Georgia"></asp:ListItem>
<asp:ListItem Value="HI" Text="Hawaii"></asp:ListItem>
<asp:ListItem Value="ID" Text="Idaho"></asp:ListItem>
<asp:ListItem Value="IL" Text="Illinois"></asp:ListItem>
<asp:ListItem Value="IN" Text="Indiana"></asp:ListItem>
<asp:ListItem Value="IA" Text="Iowa"></asp:ListItem>
<asp:ListItem Value="KS" Text="Kansas"></asp:ListItem>
<asp:ListItem Value="KY" Text="Kentucky"></asp:ListItem>
<asp:ListItem Value="LA" Text="Louisiana"></asp:ListItem>
<asp:ListItem Value="ME" Text="Maine"></asp:ListItem>
<asp:ListItem Value="MD" Text="Maryland"></asp:ListItem>
<asp:ListItem Value="MA" Text="Massachusetts"></asp:ListItem>
<asp:ListItem Value="MI" Text="Michigan"></asp:ListItem>
<asp:ListItem Value="MN" Text="Minnesota"></asp:ListItem>
<asp:ListItem Value="MS" Text="Mississippi"></asp:ListItem>
<asp:ListItem Value="MO" Text="Missouri"></asp:ListItem>
<asp:ListItem Value="MT" Text="Montana"></asp:ListItem>
<asp:ListItem Value="NE" Text="Nebraska"></asp:ListItem>
<asp:ListItem Value="NV" Text="Nevada"></asp:ListItem>
<asp:ListItem Value="NH" Text="New Hampshire"></asp:ListItem>
<asp:ListItem Value="NJ" Text="New Jersey"></asp:ListItem>
<asp:ListItem Value="NM" Text="New Mexico"></asp:ListItem>
<asp:ListItem Value="NY" Text="New York"></asp:ListItem>
<asp:ListItem Value="NC" Text="North Carolina"></asp:ListItem>
<asp:ListItem Value="ND" Text="North Dakota"></asp:ListItem>
<asp:ListItem Value="OH" Text="Ohio"></asp:ListItem>
<asp:ListItem Value="OK" Text="Oklahoma"></asp:ListItem>
<asp:ListItem Value="OR" Text="Oregon"></asp:ListItem>
<asp:ListItem Value="PA" Text="Pennsylvania"></asp:ListItem>
<asp:ListItem Value="RI" Text="Rhode Island"></asp:ListItem>
<asp:ListItem Value="SC" Text="South Carolina"></asp:ListItem>
<asp:ListItem Value="SD" Text="South Dakota"></asp:ListItem>
<asp:ListItem Value="TN" Text="Tennessee"></asp:ListItem>
<asp:ListItem Value="TX" Text="Texas"></asp:ListItem>
<asp:ListItem Value="UT" Text="Utah"></asp:ListItem>
<asp:ListItem Value="VT" Text="Vermont"></asp:ListItem>
<asp:ListItem Value="VA" Text="Virginia"></asp:ListItem>
<asp:ListItem Value="WA" Text="Washington"></asp:ListItem>
<asp:ListItem Value="WV" Text="West Virginia"></asp:ListItem>
<asp:ListItem Value="WI" Text="Wisconsin"></asp:ListItem>
<asp:ListItem Value="WY" Text="Wyoming"></asp:ListItem>
</asp:DropDownList>

среда, 11 мая 2011 г.

скругляем углы кроссбраузерно

Вопрос, волнующий, наверно, всех начинающих верстальщиков. Как скруглить углы любому элементу веб-страницы кроссбраузерно?

К всеобщему счастью, на данный момент почти все браузеры понимают свойство css3 border-radius. К всеобщему сожалению, нам до сих пор приходится поддерживать IE 7 и 8 версии, которые, понятное дело, таких вещей не понимают. Выход - использовать плагин, который нам поможет.

Я использую PIE. Из всех плагинов, которые я нашла, PIE единственный, который у меня корректно работает. Он, кстати, умеет не только углы скруглять, но и добавлять в IE свойства box-shadow и linear-gradient.

Итак, качаем файл PIE.htc с css3pie.com. В css пишем:

.element {
-moz-border-radius:8px; //для старых версий FF
border-radius:8px; //css3 для всех современных браузеров
behavior:url('PIE.htc'); //путь к файлу PIE.htc для IE 7-8
}


всё :)

среда, 4 мая 2011 г.

удивительная Opera

Три дня ломала голову, почему во всех браузерах скрипт работает, а в Опере нет. По нажатию на кнопку javascript должен был вызывать определенный серверный метод. Везде отрабатывало, а в опере почему-то перезагружалась страница, но метод не вызывался.

Сначала думала, что событие onmousedown в опере как-то специфически работает, потом думала, что javascript как-то не так к странице подключен....

Оказалось всё гораздо проще. Функция, которую я пыталась вызвать, называлась submit. А в опере submit отправляет форму на сервер, и свою функцию так называть нельзя...
Переименовала функцию в submitData, и - о чудо - всё работает :)

дежурная запись

Год назад начала заниматься версткой и веб-разработкой. В этом блоге я буду писать о том, что нового интересного я узнала по работе.