Задача: написать проверку сложности пароля. Пароль должен иметь длину не менее 5 символов, и содержать в себе хотя бы одну цифру, при этом пароль может содержать только цифры и латинские буквы в верхнем и нижнем регистре.
Получившееся у меня выражение:
((?=.*\d).(?!.*\W).{5,20})
Здесь можно посмотреть шаблоны регулярных выражений, с объяснением как они работают
вторник, 23 августа 2011 г.
пятница, 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.
При обработке ответа сервера не забываем проверить адресата платежа, сумму и валюту.
Для тестов регистрируемся на Sandbox.paypal.com, создаем тестового продавца и покупателя, и вперёд.
Вот здесь понятно описано, с примером для 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 можно будет и не мечтать?..
Известно, что накануне всеми любимая компания 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 пишем:
всё :)
К всеобщему счастью, на данный момент почти все браузеры понимают свойство 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, и - о чудо - всё работает :)
Сначала думала, что событие onmousedown в опере как-то специфически работает, потом думала, что javascript как-то не так к странице подключен....
Оказалось всё гораздо проще. Функция, которую я пыталась вызвать, называлась submit. А в опере submit отправляет форму на сервер, и свою функцию так называть нельзя...
Переименовала функцию в submitData, и - о чудо - всё работает :)
дежурная запись
Год назад начала заниматься версткой и веб-разработкой. В этом блоге я буду писать о том, что нового интересного я узнала по работе.
Подписаться на:
Сообщения (Atom)