PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): « 1 [2] 3 »

> Найдено сообщений: 36
Jlblcblu Отправлено: 19 Марта, 2013 - 19:35:42 • Тема: Парсер аккордов • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 95
avtor.fox пишет:
z-site.ru, Ab maj7?


Ну вот и получается, что ~[A-H]{1}[#b]?~ вдобавок одна из частей, перечисленных в длинной строке. И это надо посадить на условие, может быть а может и не быть

Вот мой результат пока. Надо тестировать на сложных аккордах и править.

PHP:
скопировать код в буфер обмена
  1.  
  2. function show_chords($text) {
  3.  $s = "maj|M|m|min|-|m-5|+3|6|6/9|m6|m6/9|maj7|+7|7+|maj7+|M7|7|dom7|7+5|75+|7/5+|75#|7/5#|7-5|75-|7/5-|75b|7/5b|m7|-7|m+7|m7+|+7+5|m7-5|9|-9|9-|9+|dim|o|0|mb5|m5-|dim7|o7|m6/5-|m7/5-|m75-|m75b|m7b5|aug7|7#5|aug|+|+5|5+|5#|5|-5|5-|5b|mmaj7|m/maj7|min/maj7|m#7|-maj7|sus2|sus4|4|sus|7sus2|7sus4|2|m+|m9|maj9|11|m11|maj11|13|m13|maj13|11+";
  4.  $s = preg_replace('~\+~', '\\+', $s);
  5.  $text = preg_replace(
  6.     '~([A-H]{1}[#b]?)('.$s.')?(add[0-9]{1,2})*~',
  7.     '<span class="chord">$1$2$3</span>',
  8.     $text);
  9.  
  10.  return $text;
  11.  }
  12.  


Ну вот и косяки Em5- не выпарсился. Хотя |m5-| есть в списке. Что не так?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. H                     Em
  3. Спину ломит, голова болит,
  4. H                      Em
  5. То ли клещ засел энцефалит?
  6. Am                       C
  7. В голове болит последний зуб,
  8. H                          Em
  9. Мы болеем за один и тот же клуб.
  10.  
  11. Проигрыш: Em | Em5-
  12.  
  13. Чуть курнул - и сразу бледный вид,
  14.  
Jlblcblu Отправлено: 18 Марта, 2013 - 23:12:45 • Тема: как отключить жестую проверку на существование перменных • Форум: Вопросы новичков

Ответов: 10
Просмотров: 456
Все зависит от прав, но можно попытаться так:


Но лучше поправить ошибки
Jlblcblu Отправлено: 18 Марта, 2013 - 23:09:11 • Тема: Парсер аккордов • Форум: Напишите за меня, пожалуйста

Ответов: 10
Просмотров: 95
Давным давно было интересно и вот теперь стало необходимо написать скрипт, который смог бы выпарсить все аккорды их текста и обернуть условно в какой-нибудь тег, например в span.

Пример: есть самый обычный текст с аккордами.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Вступление: Em
  3.  
  4. C                  G         D                 Em
  5.   Сколько лет прошло, все о том же гудят провода,
  6.                 C       G    D
  7.   Все того же ждут самолеты.
  8. C               G       D               Em
  9.   Девочка с глазами из самого синего льда
  10.               C       G
  11.   Тает под огнем пулемета.
  12. C            G              D
  13.   Должен же растаять хоть кто-то...
  14.  


Начало аккорда всегда такое ~[A-H]~ а вот далее могут быть десятки различных вариантов. Немного погуглив, нашел простенький генератор _http://www.amdm.ru/cgen/_ В нем можно сгенерировать для примера несколько аккордов, чтоб понять что к чему.

Также после основной части может быть а может и не быть "#" и "b" (без кавычек)
Получается что-то вроде ~[A-H]{1}[#b]?~

Погуглив еще чуть-чуть нашел нечто похожее на большинство вариантов, которые могут быть после нашей основной части (тут не все конечно, но все же):
CODE (htmlphp):
скопировать код в буфер обмена
  1. "maj|M|m|min|-|m-5|+3|6|6/9|m6|m6/9|maj7|+7|7+|maj7+|M7|7|dom7|7+5|75+|7/5+|75#|7/5#|7-5|75-|7/5-|75b|7/5b|m7|-7|m+7|m7+|+7+5|m7-5|9|-9|9-|9+|dim|o|0|mb5|m5-|dim7|o7|m6/5-|m7/5-|m75-|m75b|m7b5|aug7|7#5|aug|+|+5|5+|5#|5|-5|5-|5b|mmaj7|m/maj7|min/maj7|m#7|-maj7|sus2|sus4|4|sus|7sus2|7sus4|2|m+|m9|maj9|11|m11|maj11|13|m13|maj13|11+"


Ну а теперь самое главное, соединить все это воедино. И получить вместо наших аккордов из примера (C, G, D и.т.д.) что-то вроде <span class="chord">C</span><span class="chord">G</span><span class="chord">D</span> внутри нашего исходного текста

Кто-нибудь сможет помочь с написанием php-шки? Небольшую функцию для реализации вышеописанного. Может есть люди, которые лучше разбираются в принципах построения аккордов, так и дополнят еще возможными комбинациями.

Заранее спасибо)
Jlblcblu Отправлено: 07 Декабря, 2012 - 13:57:21 • Тема: Порядковый номер • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 78
Строчку замените, будет понятно в чем ошибка
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT COUNT(1) AS place FROM `test` WHERE `view`>=(SELECT `view` FROM `test` WHERE `name`='$sUserName'") or die(mysql_error());
  3.  
Jlblcblu Отправлено: 07 Декабря, 2012 - 11:59:43 • Тема: Формирование sql запроса из набора фильтров • Форум: Напишите за меня, пожалуйста

Ответов: 0
Просмотров: 31
В довольно-таки популярном js-фреймворке kendo присутствует виджет grid. Из названия виджета понятно, что он представляет из себя таблицу. При проведении фильтрации, сортировки и т.п., грид отправляет набор фильтров, из которых потом формируется sql-запрос.

Вот пример отправляемых данных:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. filter[logic]:and
  3. filter[filters][0][logic]:or
  4. filter[filters][0][filters][0][field]:id_ad
  5. filter[filters][0][filters][0][operator]:contains
  6. filter[filters][0][filters][0][value]:
  7. filter[filters][0][filters][1][field]:id_user
  8. filter[filters][0][filters][1][operator]:contains
  9. filter[filters][0][filters][1][value]:
  10. filter[filters][1][field]:status_db
  11. filter[filters][1][operator]:eq
  12. filter[filters][1][value]:active
  13. filter[filters][2][field]:status_nodb
  14. filter[filters][2][operator]:eq
  15. filter[filters][2][value]:active
  16.  


Фильтры соединены между собой логикой [logic] : or/and. Если [value] фильтра приходит пустым - фильтр необходимо игнорировать.

Операторы eq и contains обозначают = 'value' и like '%value%' соответственно.

Из примера выше видно, что фильтры могут быть вложены. Таким образом тут необходима рекурсия.

Вот запрос. который должен получиться исходя из текущих фильтров.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM mytable WHERE status_db='active' AND status_nodb = 'active' AND (id_ad LIKE '%1%' OR id_user LIKE '%1%')
  3.  


Была написана костыльная версия фильтрации, она под спойлером.
Спойлер (Отобразить)


Помогите, пожалуйста, написать нормальную функцию, которая могла бы обрабатывать присылаемые фильтры. Я думаю это будет полезно многим, кто использует подобную фильтрацию.
Jlblcblu Отправлено: 07 Декабря, 2012 - 11:41:05 • Тема: вывод изображения при загрузки файлов • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 38
Могу предложить использовать следующее:
Если вы осуществляете загрузку ajax`ом, то по нажатию на копку показывать loader.gif, по окончанию - скрывать.
Иначе - можно просто по нажатию на кнопку показать тотже лоадер. А по завершению загрузки - страница перегрузится.

Лоадер можно взять тут: _http://ajaxload.info

Пример кода на jquery:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $('#upload_button'').on('click', function(){
  3.    $('#loader').show();
  4. });
  5.  
Jlblcblu Отправлено: 08 Ноября, 2010 - 13:29:25 • Тема: Одновременная авторизация 2-х пользователей • Форум: Программирование на PHP

Ответов: 8
Просмотров: 813
vitaliy_mad пишет:
тогда можно сделать проверку по IP и пускать только с "разрешенных"

К сожалению нельзя, ибо контрольные тестировани проводятся с этих ip, а у студентов есть возможность готовиться к тестированиям, проходя пробные со своих домашних компьютеров.

Я думал может сделать так:
при успешной авторизации, ставить пользователю статус - "авторизованный" на время - равное времени теста (неизвестно как определять это, но не важно) + минут 10 на различного рода нюансы. Менять статус по нажатию кнопки выход или по истечении времени. А также нужно убить сессию текущему пользователю.

Но пришел к выводу, что это бредовая, непродуманная идея.

Даже не знаю, чтоб еще такое придумать, чтоб защититься от этого.
Jlblcblu Отправлено: 08 Ноября, 2010 - 13:13:09 • Тема: Одновременная авторизация 2-х пользователей • Форум: Программирование на PHP

Ответов: 8
Просмотров: 813
Есть пара вопросов:
vitaliy_mad пишет:
Это не есть хорошая авторизация.

1) Что есть "хорошая авторизация"? Хотелось бы сделать ее так, как это нужно делать на самом деле.
Ибо в интернете множество примеров (мусора) на эту тему. А хотелось бы увидеть реализацию от профессионалов.

2)
vitaliy_mad пишет:
и зачем тогда вообще авторизация, если любой студент может зайти под любым логином?

Тут неточно.
Логин и пароль раздаются каждому индивидуально перед началом тестирования.
Все студенты проходят авторизацию и начинают проходить тест.
Далее умные студенты, дождавшись 5 минут (они естественно не знают точное количество времени), отправляют логин и пароль своему другу, преподавателю, вобщем тому, кто может за них решить.
После того, как за него ответят на вопросы, студент жмет кнопку завершить и... успешно сдает тестирование.

Да, у нас в таблице онлайн обновляется айпишник, на котором открыт тест данного пользователя. И легко отследить администратору где не 192.168.*.*

Но это опять-таки заплатка на проблему, а не правильное ее решение!
vitaliy_mad пишет:
Переделав систему авторизации Ваша проблема останеться. Онлайн делается только по таймауту. другого варианта нет. разве что использование cgi и забыть про PHP. Использовать постоянный конект с клиентом...

Другой вариант написать на Вашем сайте JS кодик который регулярно бы делал запрос к серверу и тем самым обновлял ваш онлайн

Опустим систему отслеживания онлайн.
Главное избавиться от множественной одновременной авторизации.

Есть еще мысли по этому вопросу?
Jlblcblu Отправлено: 07 Ноября, 2010 - 23:33:41 • Тема: Одновременная авторизация 2-х пользователей • Форум: Программирование на PHP

Ответов: 8
Просмотров: 813
SAD пишет:
vitaliy_mad пишет:
увеличить время таймаута

я тоже так думаю, 5 минут - это очень мало. может пользователь читает страницу.


Думаю это не выход.

Статистика об онлайне будет очень неточной.

Можно пересмотреть всю систему авторизации и отслеживания онлайн.
Главное запретить одновременную авторизацию.
И Ведь даже увеличив таймаут - мы сможем авторизоваться через 40 минут, час два часа и т.д.

З.Ы.
Студенты (для которых и пишется это) в состоянии подождать лишний час, лишь бы получить халяву)
Jlblcblu Отправлено: 07 Ноября, 2010 - 23:15:19 • Тема: Одновременная авторизация 2-х пользователей • Форум: Программирование на PHP

Ответов: 8
Просмотров: 813
Доброе время суток)
Столкнулся с проблемой. Вкратце:

Нужно запретить авторизацию пользователя тогда, когда под таким же логином пользователь уже авторизован.

В данный момент это осуществляется так.

Есть таблица online;

При авторизации записывается id сессии, текущее время.
При обращении к страничке мы проверяем такой айдишник сессии в базе, если есть, то обновляем время.
Далее идет проверка тех пользователей, кто не был активен. Т.е. если разница записанной даты и текущей более 5 минут - то пользователь считается оффлайн и строчка из базы удаляется.

При авторизации мы проверяем есть ли такой пользователь онлайн - если да, то запрет на авторизацию, нет - логинимся и все сначала)

================================ =======================
Суть проблемы:
Представим, что пользователь авторизовался, посидел на сайте 5 минут без действий. Значения из базы online удалились. В это время авторизовался пользователь2. (ведь данные о сессии пользователя 1 удалены)

Таким образом мы получили 2 пользователей онлайн под 1 учетной записью.
================================ =======================
Каким образом организовать авторизацию, чтоб избежать таких камней?)

Аторизация сейчас происходит так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $_SESSION['user'] = $login; // например
  3.  

Куки не используются.

З.Ы.
Заранее благодарен
Jlblcblu Отправлено: 17 Июня, 2010 - 00:13:57 • Тема: Права администраторов • Форум: SQL и Архитектура БД

Ответов: 15
Просмотров: 112
http://www.php.su/forum/topic.ph...1&topic=3689
Jlblcblu Отправлено: 19 Апреля, 2010 - 19:59:45 • Тема: Вывод из базы в 3 столбца • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 26
CODE (htmlphp):
скопировать код в буфер обмена
  1. $result=mysql_query("SELECT * FROM products WHERE categoryID=5",$db_local);
  2. echo '<table>';
  3. while($myrow=mysql_fetch_array($result)}
  4. {
  5. echo '
  6. <tr>
  7. <td><a href="product_details.php?productID=%s">'.$myrow['small_picture'].'</a></td>
  8. <td>'.$myrow['name'].'&nbsp'.$myrow['price'].' LVL</td>
  9. </tr>';
  10. }
  11. echo '</table>';
Jlblcblu Отправлено: 14 Апреля, 2010 - 01:58:22 • Тема: скрипт регистрации • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1348
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. else{ echo "такого пользователя не существует";}
  3.  


этот else и выдает тебе ошибку. Убери и будет тебе счастье)
Jlblcblu Отправлено: 12 Апреля, 2010 - 11:45:19 • Тема: печать без настроек • Форум: Программирование на PHP

Ответов: 3
Просмотров: 384
Присоединюсь к вопросу с маленьким уточнением (чтоб не плодить тем). Как организовать вывод на печать, допустим, результат sql запроса. Причем с важным уточнением. На каждой странице чтобы была шапка таблицы!
Jlblcblu Отправлено: 31 Марта, 2010 - 14:30:30 • Тема: Распределение прав доступа • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3463
Спасибо за ссылки. Там много всего. Просматриваю.

Страниц (3): « 1 [2] 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB