PHP.SU

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

Страниц (20): В начало « ... 12 13 14 15 [16] 17 18 19 20 »

> Найдено сообщений: 298
Deonis Отправлено: 29 Июля, 2013 - 16:56:38 • Тема: Результат выполнения UPDATE IGNORE с использованием PDO • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2565
EuGen пишет:
SELECT до запроса UPDATE

Это дело понятное, только хотелось избежать лишних телодвижений в сторону БД. Но если других вариантов нет, то естественно, что придется.
Deonis Отправлено: 29 Июля, 2013 - 16:45:13 • Тема: Результат выполнения UPDATE IGNORE с использованием PDO • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2565
Всех приветствую! Сделал маленькую функцию, в которую передается два параметра: подготовленная строка запроса и массив данных. Функция автоматом определяет (по строке запроса) какое действие необходимо выполнить и возвращает результат. В частности, для "UPDATE" - возвращает true или false, в зависимости от успеха операции. Теперь к проблемке: Если использовать конструкцию запроса "UPDATE IGNORE ...", и обновлять запись с уникальным полем в БД, то в случае дублирования данный, мы получим ответом "0" и в случае, если пользователь ничего не изменил в данных - тоже "0" затронутых строк.
Сижу и чешу затылок, как бы разграничить эти результаты и выводить юзверю соответствующее сообщение: или "Такое имя уже используется", или ... ну, тут можно не выводить сообщение, т.к. ошибки не было, а просто данные остались такими же, как до попытки их обновить.
Повторюсь, что использую PDO и кроме того, данные отправляются AJAX-запросом, что не допускает попадания в ответ ошибки сгенерированной на сервере, какой она могла бы быть, если использовать запрос без "IGNORE".
Если кто сталкивался с подобным, прошу натолкнуть на мысль в правильном направлении.
Deonis Отправлено: 24 Июля, 2013 - 14:09:25 • Тема: Вечный вопрос по авторизации • Форум: HTTP и PHP

Ответов: 14
Просмотров: 3007
EuGen, спасибо. Вопрос можно считать закрытым.
Deonis Отправлено: 24 Июля, 2013 - 14:03:44 • Тема: Вечный вопрос по авторизации • Форум: HTTP и PHP

Ответов: 14
Просмотров: 3007
EuGen пишет:
привязывать сессию к IP-адресу

Не будет ли проблем, если ip динамический?
EuGen пишет:
Используйте хеш-функцию + соль.

Да, думаю, что вы правы.
Deonis Отправлено: 24 Июля, 2013 - 13:54:16 • Тема: Вечный вопрос по авторизации • Форум: HTTP и PHP

Ответов: 14
Просмотров: 3007
Всем привет! Не вникал углубленно в тему безопасности, поэтому возник вопросик. Достаточно ли будет использовать для входа в админку сайта только сессии? Для уточнения: никаких "новых регистраций" через веб-интерфейс не будет, в кукисах ничего не сохраняется (модератор вводит данные при каждом новом посещении), пароль хорошо шифруется (XOR).
Deonis Отправлено: 03 Марта, 2013 - 20:59:16 • Тема: Значение элемента многомерного массива сделать ключом • Форум: Хранение данных, их вывод и обработка

Ответов: 3
Просмотров: 1840
OrmaJever пишет:
по-моему нет.

Ну, нет так нет. Значит, всё-таки приснилось Подмигивание
Deonis Отправлено: 02 Марта, 2013 - 22:35:28 • Тема: Значение элемента многомерного массива сделать ключом • Форум: Хранение данных, их вывод и обработка

Ответов: 3
Просмотров: 1840
Всем привет! Может мне и приснилось, но как-то случайно краем глаза увидел, как массив типа:
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [key1] => val1
  5.             [key2] => val2
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [key3] => val3
  11.             [key4] => val4
  12.         )
  13.  
  14. )

Был преобразован, как мне тогда показалось, буквально одной-двумя встроенными функциями PHP, в массив, где первое значение каждого вложенного массива, становилось его ключом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [val1] => Array
  3.         (
  4.             [key1] => val1
  5.             [key2] => val2
  6.         )
  7.  
  8.     [val3] => Array
  9.         (
  10.             [key3] => val3
  11.             [key4] => val4
  12.         )
  13.  
  14. )

или же с извлечением первого элемента (точно не помню):
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [val1] => Array
  3.         (
  4.             [key2] => val2
  5.         )
  6.  
  7.     [val3] => Array
  8.         (
  9.             [key4] => val4
  10.         )
  11.  
  12. )

Так вот, вопрос не в том, как это сделать, а действительно ли есть какие-то стандартные функции для такой операции?
Deonis Отправлено: 08 Февраля, 2013 - 12:11:13 • Тема: Кеширование на сайте, работающего без перезагрузок • Форум: Хранение данных, их вывод и обработка

Ответов: 6
Просмотров: 1650
DelphinPRO пишет:
все что после решетки в адресе - на сервер никогда не попадает!!!
Всё это я прекрасно знаю. Тем более, весь механизм работы сайта, как это не покажется странным, мне знаком на все 100%, т.к. я его и писал абсолютно с нуля, и принципиально ни в одном проекте не использую никакие CMS Улыбка Не о том речь зашла. Главное, что я для себя уяснил - это то, что от полного кеширования страницы, наверно придется отказаться и вы сами подтвердили мои домыслы. Кстати, в полёте мысли, я как-то пропустил в вашем первом сообщении упоминание о LocalStorage. А ведь это вариант. Правда не очень удобный в плане управления кеш-данными, но всё же... надо будет обдумать эту тему. Спс.
Deonis Отправлено: 08 Февраля, 2013 - 11:22:39 • Тема: Кеширование на сайте, работающего без перезагрузок • Форум: Хранение данных, их вывод и обработка

Ответов: 6
Просмотров: 1650
Еще раз акцентирую внимание, что сайт работает без перезагрузок, на всех ссылках сайта весит preventDefault(), запросы отправляются в обработчик ajax-средствами, ответ - json
DelphinPRO пишет:
А какая разница? Обращение к серверу все равно идет по адресу без хеша.
В осле - именно с хешем.
DelphinPRO пишет:
Вообще не очень понятно, что и где хотите кэшировать. Если на клиенте, то можно часть данных сохранять в localstorage.
Кешировать малоизменяющиеся данные: статьи, посты блога, видеопрезентации и т.п. Кешировать собираюсь на строне сервера.
DelphinPRO пишет:
Если на сервере - то тут принципы ничем не отличаются от обычных сайтов.
Как оказалось - отличается. Точнее, отличается не сам механизм создания кеша, а то в какой форме его создавать. Для обычного сайта, при запросе определенной страницы, мы бы проверили существование кеша, если надо - его актуальность (дата создания) и произвели те или иные действия. Теперь вернемся к моему вопросу.
Вариант номер раз: кешируем, к примеру, саму статью и в обработчике вытаскиваем или же её из БД (если кеша нет), или из кеша (если таковой рисутствует). В этом случае, возникает вопрос: а зачем тогда нам хэш, если выполнить один запрос к БД это вообще не проблема, а вся оболочка (довольно тяжёлая), так или иначен будет проходить все круги шаблонизации и подгружаться естественным образом.
Вариант второй: как я описал в начале, кешируем всю страницу полностью с каждой статьей в отдельный файл. Вариант был бы хороший, если бы не проблема с ослом, а именно, всё тем же хешем в URL. Поясню, что происходит в этом случае. Юзер набирает в нормальном браузере ручками адрес: http://site.ru/articles/statja.html, по такому адресу у нас есть реальный файл (та самая закешированная статья) и она же выводится на экран пользователя. Тут всё гуд. Теперь, те же действия в осле: точно так же набран адрес, но в браузере ссылка автоматически преобразуется в URL вида http://site.ru/#/articles/statja.html. Естественно, что по такому адресу файла не существует и происходит обычная подгрузка статьи из БД в обход кеша.
Для того, чтоб посмотреть это своими глазами, вот реальная ссылка на тестовом сервере. http://anna[dot]webkey[dot]net[dot]ua/articles/uspeh[dot]html . Попробуйте запустить ее в любом нормальном браузере, а потом в осле. Если подгрузиться закешированная страница, то вы увидите под названием статьи Закешированная страница!!!, если из БД, то этой надписи не будет.
Deonis Отправлено: 08 Февраля, 2013 - 09:43:16 • Тема: Кеширование на сайте, работающего без перезагрузок • Форум: Хранение данных, их вывод и обработка

Ответов: 6
Просмотров: 1650
Здравствуйте! Хочу посоветоваться по поводу кеширования страниц сайта, работающего без перезагрузок. Используется Ajax, HistoryAPI, ЧПУ. К примеру, финальная ссылка к статье имеет вид: http://site.ru/articles/article_name.html. Первая же мысль, которая возникла - это кешировать каждую такую страницу в отдельный html-файл. Вроде бы ничего выдумывать не надо, т.к. правило mod_rewrite, перенаправляет все запросы на морду, если файлы или директории на сервере не найдены. А так как они присутствуют, то соответственно и подхватываться они будут автоматом. Будут, но только при прямом обращении к определенной статье, а не при переходе по внутренним ссылкам сайта. Кроме того, вид ссылки в осле отличается. Те, кто использовал HistoryAPI знает, что в URI присутствует хэш. http://site.ru/#/articles/article_name.html.
В общем, можно долго рассуждать что да как, обсуждать разные "НО", а как же все таки оптимальней всего кешировать в такой ситуации? И может на таком сайте вообще нет смысла в кешировании?
Deonis Отправлено: 24 Декабря, 2012 - 10:13:46 • Тема: json_encode, убрать экранирование слэшей • Форум: Хранение данных, их вывод и обработка

Ответов: 6
Просмотров: 11382
Toxa пишет:
A more simple method if you have a version of php that does not take into account JSON_UNESCAPED_SLASHES

I don't think that the regular expression is a simple method. I have already said that the alternative - using the function stripslashes()

EuGen пишет:
На уровне реализации в более ранних версиях - невозможно

Жаль. Надежда была Хм
Deonis Отправлено: 24 Декабря, 2012 - 09:37:51 • Тема: json_encode, убрать экранирование слэшей • Форум: Хранение данных, их вывод и обработка

Ответов: 6
Просмотров: 11382
Мелкий пишет:
Правильно заданный вопрос содержит в себе ответ?

Где-то так Подмигивание , но вы немного не уловили суть. Версия PHP на хосте моего клиента аж 5.2.17 Огорчение и тут при всем желании JSON_UNESCAPED_SLASHES использовать не получиться. Поэтому пытаюсь выяснить - есть ли альтернатива? Не исключаю, что просто упустил где-то информацию, но и для старых версий PHP, тоже может существовать нужный параметр.
Deonis Отправлено: 24 Декабря, 2012 - 09:26:12 • Тема: json_encode, убрать экранирование слэшей • Форум: Хранение данных, их вывод и обработка

Ответов: 6
Просмотров: 11382
Здравствуйте! При преобразовании массива в JSON-представление, экранируются слеши. То есть, в данном примере:
PHP:
скопировать код в буфер обмена
  1. $arr = array('url'=>'http://forum.php.su/search_yandex.php');
  2. echo json_encode($arr);

Результат будет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. {"url":"http:\/\/forum.php.su\/search_yandex.php"}

А это меня не устраивает. Начиная с версии PHP 5.4.0, есть константа JSON_UNESCAPED_SLASHES, которая решает данную проблему, но как можно выкрутиться, если версия PHP ниже 5.4.0? Как вариант, можно полученную JSON-строку обработать с помощью функции stripslashes(), но мне кажется, что есть какая-то константа, которая делает это еще на стадии кодирования.
Deonis Отправлено: 23 Ноября, 2012 - 13:49:47 • Тема: INSERT при определенном условии • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 96
EuGen, еще раз спасибо. Вопрос можно считать исчерпанным Улыбка
Deonis Отправлено: 23 Ноября, 2012 - 13:46:06 • Тема: INSERT при определенном условии • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 96
EuGen, спасибо за помощь. И не подскажите по поводу того, как запросом можно создать индекс по этим полям? Или это можно сделать только при создании таблицы?

Страниц (20): В начало « ... 12 13 14 15 [16] 17 18 19 20 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB