PHP.SU

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

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

> Найдено сообщений: 40
maximushka Отправлено: 02 Февраля, 2011 - 16:35:54 • Тема: Ошибка 1064 при запросе: • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 33
Мелкий пишет:
на результат работы mysql_escape_string и ругается. Вы неверно поняли, где её надо применять:
PHP:
скопировать код в буфер обмена
  1. mysql_query("INSERT INTO `animals` (`name`) VALUES ('".mysql_real_escape_string($dog)."'));


А если запрос - статичная строка, то mysql_real_escape_string не нужен вообще, так запрос в mysqL-query и вставляйте.

Спасибо, за ответ, кстати проблема была не только в этом, надо оказывается было в .htaccess прописать:
CODE (htmlphp):
скопировать код в буфер обмена
  1. php_flag magic_quotes_gpc 0

и стало всё нормально Улыбка
maximushka Отправлено: 02 Февраля, 2011 - 15:47:44 • Тема: Ошибка 1064 при запросе: • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 33
В текстовое поле textarea ввожу в своей написанной админке запрос:
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO `animals` (`name`) VALUES ("dog");
, и не работает, пишет:
Цитата:
Ошибка: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\"dog\")' at line 1

Пхп код подставляющий строку в запрос - элементарный:

Тот же самый sql запрос успешно отправляется в админке phpMyAdmin: http://localhost/Tools/phpmyadmin/index.php
Моя админка и база данных вся в utf-8.
пользуюсь Denwer3_Base_PHP52_2010-11-07_a2 .2.4_p5.2.12_zendoptimizer_m5.1. 40_pma3.2.3.exe
Уверен, что надо что-то настроить, только не знаю что именно?
Дело мне кажется в том что mysql здесь не любит кавычки, я ставил и двойные и одинарные, и всё равно ругается на них, причем и в других запросах также выводит ошибку около кавычек.
maximushka Отправлено: 01 Февраля, 2011 - 11:42:55 • Тема: транзакция и блокировка таблиц в МySQL • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
Попытаться осмыслить, что написано в википедии - понял, что без примеров это невозможно. А найти литературу где бы было бы на примерах объяснено - тоже слишком сложно. Пробел весь в том, что если слишком простые вещи объясняют все и иллюстрируют примерами(например перевод денег из одного счета в другой), то вещи более сложные(например уронви изоляции в транзакциях) просто опишут непонятным понятиями и без примеров, и хоть тресни - не поймешь что имеется в виду.
Меня лично интересуют лишь транзакции в MySQL, мз PHP, в частности этот пример:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SET AUTOCOMMIT=0;
  3. START TRANSACTION;
  4. UPDATE user_account SET allsum=allsum + 1000 WHERE id='1';
  5. UPDATE user_account SET allsum=allsum - 1000 WHERE id='2';
  6. COMMIT;
  7.  

эта транзакция будет ли блокировать таблицу user_account между двумя запросами обновления в ней(для id='1' и id='2' ) от другого php&sql-процесса или нет?
maximushka Отправлено: 28 Января, 2011 - 18:12:58 • Тема: транзакция и блокировка таблиц в МySQL • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
Читал мануал http://www[dot]mysql[dot]ru/docs/man/Tra[dot][dot][dot]al_Commands[dot]html а именно про блокировку таблиц и транзакции, но он сложноват в понимании и не всё ясно.

Как я понял блокировка таблица это некий аналог блокировки файлов функцией flock($f,LOCK_EX); и flock($f, LOCK_UN);
А транзакция - позволяет откатывать если произошла ошибка.

Но возникает такой вопрос: кроме роли обеспечения возможности отката транзакция выполняет ли роль блокировки таблиц?
Если логически подумать, например один процесс имеет много-много запросов, он обведен в транзакцию, и он выполняется первым, второй процесс содержит мало запросов и запускается чуть позже, тоже обведен в транзакцию. Второй с COMMIT заканчивается раньше чем первый, а в первом, допустим, чуть позже после окончания второго процесса происходит тоже COMMIT, то что тогда будет? Будут ли приняты изменения вторым процессом, или же изменения первым?
По идее ни тот ни другой вариант корректным не будет, т.к. в первом случае не выполнится принятие(COMMIT) по первому процессу, хотя он был вызван, а во втором не выполнено принятие по второму процессу, хотя он тоже был вызван.
По правильному, как оно ожидается, должны быть приняты изменения вначале по первому а потом по второму процессу, и в этом случае получается, что первый процесс должен на время своего выполнения заблокировать второй, поставив его в очередь позади себя.
Я верно понимаю?
maximushka Отправлено: 26 Декабря, 2009 - 10:36:05 • Тема: получение письма через сокет • Форум: Программирование на PHP

Ответов: 1
Просмотров: 185
Вот здесь получил скрипт
http://www[dot]weberdev[dot]com/get_example-501[dot]html
работает! Радость
Буду разбираться и сверять с ним в чем я ошибся в своей реализации...
maximushka Отправлено: 25 Декабря, 2009 - 22:48:53 • Тема: получение письма через сокет • Форум: Программирование на PHP

Ответов: 1
Просмотров: 185
Здравствуйте народ!
Реализую на PHP5 через сокет получение письма с сервера POP3,
всё получается хорошо, только в одном возникла заморочка: не могу получить само содержимое письма, получаю её по команде RETR 1, на что получаю ответ типа
1 16234 .
т.е. судя по всему номер письма в списке новых писем и число октетов(8ми битных байт) которые он содержит и всё, без содержимого сообщения.
выполняю по инструкции приведенной здесь:
http://www[dot]aboutmail[dot]ru/articles/rfc/pop3_3[dot]html
и там к этой команде написано:
Цитата:
Например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA:

Вот не пойму что конкретно означает здесь
Цитата:
буфер местного UA:
, и как через PHP5 получить доступ к этому буферу?
maximushka Отправлено: 08 Декабря, 2009 - 13:14:22 • Тема: настройка сервера и создание страниц в https. • Форум: Apache и другие веб-серверы

Ответов: 7
Просмотров: 1005
Вы все абсолютно правы, суппорт моего хоста подтвердил, что нужен выделенный ip для применения https иначе никак. Но выделенный ip стоит даже больше чем сам хост, т.е. платить за услуги прийдется более чем в два раза больше.. я так подумал.. только ради https мне это делать накладно. Вообщем, решил сам поставить пхп-скрипт по шифрованию rsa для безопасной отправки пароля пользователя на сервер, ну а в дальнейшем использовать симметричное шифрование по меняющемуся при каждом запросе открытому ключу и закрытому-в виде хеш-пароля. Так я думаю будет даже лучше - постоянный http протокол, не надо платить за выделенный ip, не надо платить центру сертификации чтобы клиенты не получали подозрительных уведомлений о самоподписанном подозрительном сертификате, и защита - достаточно крутая для индивидуального предпринимательства. Хотя конечно можно заполучить пароль клиента либо простым фишингом, либо по более сложному man-in-the-middle, но я думаю, что на этот шаг могут пойти если мой проект будет весьма денежный, в последнем же случае можно будет и раскошелиться на нормальный https. А от снифферских атак с пассивным прослушиванием ручное шифрование приватных данных какое я описал я думаю вполне надежно защитит, тем более, что как я читал переход сетей с концентраторов на коммутаторы делает и снифферские атаки не эффективными.
Однако у меня есть мысли может выделенный ip мне следует поставить и для других целей:
1. PuTTY к моему хосту не подключается, пишет:
Shell access is not enabled on your account!
If you need shell access please contact support.
суппорт сказал - это потому что ssh у меня отключен. Но с другой стороны: я почему-то МОГУ подлючаться к sftp через FileZilla Client при этом поставив в трее PuTTY\pageant.exe на id_dsa.ppk. ppk как я понял это сертификат для ssh понимаемый PuTTY. Значит ssh у меня всё же работает, а не работает что-то на сервере, может как раз мне нужен выделенный ip чтобы работало, что было бы вполне логично - если выделенный ip - то это как выделенная мне система linux, а PuTTY для удаленного вызова команд выделенной мне Linux. А так я наверное не имея выделенный ip - не имею выделенного мне Linux и потому не могу отправлять команды, а значит не пускает в PuTTY. Я правильно догадываюсь? Позволит ли мне выделенный ip подключаться через PuTTY ?
2. Еще в моих дальнейших планах потоковое флеш-видео (трансляция), думаю использовать для этого бесплатный сервер red5, который раньше уже применял. Собственно вопрос: выделенный ip даст ли мне возможность поставить на мой хост сервер red5 и включить его для потокового видео?
Phantik пишет:
Если интересно, то могу покопаться в конспекте, написать тебе каких нибудь умных мыслей.

Спасибо, Phantik, буду рад почерпнуть новую информацию тем более со специализированного курса. Возможно мне она не понадобится, но будет интересно, так-как я проникся интересом к теме защиты.
maximushka Отправлено: 07 Декабря, 2009 - 18:28:12 • Тема: настройка сервера и создание страниц в https. • Форум: Apache и другие веб-серверы

Ответов: 7
Просмотров: 1005
Благодарю за ответы.
Viper пишет:
2. непонятно зачем это вам нужно? вы центр Self-signet сертификации хотите сделать?

Нет.. ничего такого мудрёного. Ведь насколько я понимаю клиенту тоже выдается сертификат для пользования сервисом по https, который включает в себя открытый/закрытый ключ. И сертификат сервера не один же и тот же что сертификат клиента, т.к. у клиентов сертификаты должны быть разными, они ведь содержат закрытые(не распространяемые публично ключи), я правильно понимаю? Клиенту сервером не выдается сертификат лишь тогда когда сертификат у сервера заверен одним из центров сертификации(дорогое удовольствие), который уже имеется в списке браузера, я полагаю что в этом случае сам центр сертификации выдает пользователю сертификат, или я ошибаюсь? По всей видимости чувствую, что я что-то понимаю не правильно.

Поставил файл .htaccess приведенный Viper в защищаемую папку /home/мой _домен/public_html/seс там-же создал простой документ sec.html с простым кодом:
CODE (text):
скопировать код в буфер обмена
  1. <h1>Защищенная страница</h1>

https://мой_домен/sec/sec[dot]html не показывает, в файр-фоксе пишет:
CODE (text):
скопировать код в буфер обмена
  1. Ошибка при установлении защищённого соединения    
  2. При соединении с maxirazum.ru произошла ошибка.
  3. SSL получило запись, длина которой превышает максимально допустимую.
  4. (Код ошибки: ssl_error_rx_record_too_long)
  5.     *   Страница, которую вы пытаетесь просмотреть, не может быть отображена, так как достоверность полученных данных не может быть проверена.
  6.     *   Пожалуйста свяжитесь с владельцами веб-сайта и проинформируйте их об этой проблеме. В качестве альтернативы вы можете сообщить о некорректно работающем сайте с помощью команды, находящейся в меню «Справка».

зато http://мой_домен/sec/sec[dot]html благополучно отображает.

Теперь вот думаю, что Phantik может верно подметил - нужен выделенный ip специально для защищенных https ресурсов. Кстати на одном выделенном ip можно размещать и защищенные и незащищенные https ресурсы одновременно?
maximushka Отправлено: 06 Декабря, 2009 - 21:23:53 • Тема: настройка сервера и создание страниц в https. • Форум: Apache и другие веб-серверы

Ответов: 7
Просмотров: 1005
Здравствуйте, народ, хочу освоить тему: создание защищенных страниц в протоколе https.
Т.е. практическая задача: создать папку на своем сайте где содержатся ресурсы доступ к которым осуществляется по протоколу https, ресурсы: php cкрипты и html страницы ну и желательно прочие файлы как например jpg картинки.

Пока дошел до следующего этапа:
1. на панели управления(cPanel) своего хостера(http://s8.seo-host.ru:2082/frontend/x3/index.html) создал закрытый ключ, по нему создал запрос на подпись сертификата(crt файл образовал(только как я понял он ни к чему т.к. не буду заверять)) и наконец сгенерировал сертификат сервера (файл crt), это всё у меня отложилось в папке:
/home/мое_имя/ssl/certs
т.е. там находятся мой_хост.crt и мой_хост.csr а также файл мой_хост.key в папке:
/home/мое_имя/ssl/private
сертификат как я понял я получил сам себя заверяющий(self-signed)

Что делать дальше - не знаю. Как я понимаю мне осталось сделать следующие вещи:
1.указать серверу на папку где у меня находятся защищаемые ресурсы(папку т.к. не весь сайт будет с https протоколом, например, главная страница будет в незащищенном http).
2.поручить серверу создание клиентских сертификатов по запросу их пользовательскими браузерами на основе имеющегося серверного сертификата.

Характеристики сервера(может понадобятся):
Пакет хостинга seo500
Имя сервера s8
Версия cPanel 11.24.5-RELEASE
Сборка cPanel 38506
Тема x3
Версия Apache 2.2.11 (Unix)
Версия PHP 5.2.9
Версия MySQL 5.0.85-community
Архитектура i686
Операционная система Linux
Общий IP-адрес 75.102.36.13
Путь к sendmail /usr/sbin/sendmail
Путь к PERL /usr/bin/perl
Версия ядра 2.6.18-128.1.10.el5PAE

Весь день в поисках информации - ничего путного не найду. В Википедии и то не полностью написали про то как создавать ресурсы в интеграции https. С английским у меня не лады, поэтому прошу если даете ссылку на мануалы - то желательно по русски. Но я думаю, что оставшиеся действия, которые я еще не выполнил для поставленной задачи можно описать и своими словами, именно такие слова я очень буду рад здесь видеть.

ps: Был на ссылке этого форума где задавался подобный вопрос про ssl
но mod_ssl уже установлен(проверил функцией phpinfo() ) и ссылки приводятся на англоязычные сайты.
Так же был по этой ссылке, но там как то сложно и к тому же на windows server 2003, а не на appache как у меня.
maximushka Отправлено: 24 Ноября, 2009 - 16:32:34 • Тема: Вопрос по массиву $_REQUEST • Форум: Программирование на PHP

Ответов: 11
Просмотров: 960
Gal_Sergey пишет:
Возникает новый вопрос: скрипты использующие суперглобальные переменные могут повести себя непредсказуемо?

Вообще-то я назвал бы $_REQUEST сливками всего что поступило скрипту ПХП. Так что если Вам по барабану откуда именно взять переменную с куков или с параметров запроса get или post, то берите её с $_REQUEST. Например, это пригодится если вы хотите получить sid сессии, оно как известно может передаваться не только в куках, но и в параметре get или post если через форму в скрытом поле, или через аякс запрос. Но коли Вы забеспокоились о "предсказуемости", то делаю вывод что Вы хотите четко знать откуда поступила та или иная переменная, вот в этом случае используйте три разных массива:
$_COOKIE - для куков
$_POST - для ПОСТовых параметров
$_GET - для ГЕТовых параметров
куки через форму не передаются.. они передаются либо искусственно через заголовки аякс, либо автоматически при их наличии на клиентской машине.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB