Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: как 2 работающих скрипта могут обяться между собой
Форумы портала PHP.SU » PHP » Программирование на PHP » как 2 работающих скрипта могут обяться между собой

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

1. scuter - 23 Мая, 2008 - 20:51:32 - перейти к сообщению
всем пиве,
сеть 2 работающих скрипта претроложим они работают 2 мин.,
как сделать так чтобы один мог чтонибуть передать другому,
напимер какую нибуть переменную, вариант с файтами отпадает,
т. к. одновременная работа с одним файлом врятли получится.
2. RomAndry - 24 Мая, 2008 - 13:50:08 - перейти к сообщению
3. Джур - 26 Мая, 2008 - 11:12:54 - перейти к сообщению
ну... одновременная работа вполне получится, главное файл на долго не задерживать.

как я понимаю, скртипты вы запускаете кроном, тогда решение это:
1. через файл
2. через файл в RAM (многие хостеры под Linux-ом делают /tmp не на диске а в памяти)
3. memcached
4. scuter - 26 Мая, 2008 - 19:19:47 - перейти к сообщению
Цитата:
ну... одновременная работа вполне получится, главное файл на долго не задерживать.

как я понимаю, скртипты вы запускаете кроном, тогда решение это:
1. через файл
2. через файл в RAM (многие хостеры под Linux-ом делают /tmp не на диске а в памяти)
3. memcached

как раз в этом то вся и проблема,
через файл вариант отпадает так как 2 скрипта могут одновременно записывать один и тот же файл(соответственно информация теряется,
через RAM файлы тоже отпадает по той же причине,
а для memcached нужен отдельный сервер или что то в этом роде,
соответственно на серверах такое дело отсутствует к сожалению.
если бы всё было бы так просто наверное вопроса бы такого и не возникало.
5. EuGen - 26 Мая, 2008 - 19:36:22 - перейти к сообщению
Можно записывать что-то в БД. Если она есть, конечно. Вообще, потребуется некий сторонний интерфейс общения между ними, БД - как пример.
6. Джур - 26 Мая, 2008 - 23:25:24 - перейти к сообщению
вот как. удивлен. А как же блокировка файла? второй скрипт, хочет он того или нет, будет ждать, когда файл освободится.

Если в вашей системе блокировка файлов по какой-то причине не работает, что весьма сомнительно, тогда можно воспользоватся переименовыванием файла, как ни крути а переименовывание файла в РНР, процедура атомарная.
подробней в: "РНР5 в подлинике"

кстати, если база mysql 4.* а таблички myisam, то можно нарватся на колизию. Улыбка
7. EuGen - 27 Мая, 2008 - 09:24:35 - перейти к сообщению
mysql5+InnoDB
8. scuter - 27 Мая, 2008 - 18:47:26 - перейти к сообщению
да вот когда используешь db например mysql
то всё на много лучше предстоит, но тут я столкнулся с некой проблемой,
некоторые данные просто не проходять так как надо екранизировать кавычки,
но когда я их экранизирую почему то хранится это всё в базе с экранироваными кавычками и выдаётся косяк \" \' примепно так,
что с этим косяком делать пока не знаю.
9. Джур - 28 Мая, 2008 - 09:59:51 - перейти к сообщению
scuter пишет:
некоторые данные просто не проходять так как надо екранизировать кавычки,
но когда я их экранизирую почему то хранится это всё в базе с экранироваными кавычками и выдаётся косяк \" \' примепно так,
что с этим косяком делать пока не знаю.

1. убейте магические кавычки на всякий случай...
2. юзайте mysql_escape_string() для экранирования

проверте запрос к базе, возможно у вас там

потому и возвращает чепуху
ну на крайний случай stripslashes-получаемые из базы данные
10. scuter - 29 Мая, 2008 - 04:24:52 - перейти к сообщению
Цитата:
1. убейте магические кавычки на всякий случай...
2. юзайте mysql_escape_string() для экранирования

mysql_escape_string() не желательно использовать,
он не выдерживает большое количество текста,
на счёт магических кавычек я в притципе так и делаю,
PHP:
скопировать код в буфер обмена
  1. $val = @str_replace('\\', '\\\\', $val);
  2. $val = @str_replace('\'', '\\\'', $val);

но всё равно галиматья получается
кавычки или переэкранируются или вообще не экранируются.
11. valenok - 29 Мая, 2008 - 06:53:00 - перейти к сообщению
Цитата:
mysql_escape_string() не желательно использовать,
он не выдерживает большое количество текста,


Это чтото новое придумал ? =)
12. scuter - 29 Мая, 2008 - 17:25:47 - перейти к сообщению
Цитата:
Это чтото новое придумал ? =)

попробуйте поставить Drupal v6,
и поставьте несколько модулей,
как только вы их активируете, появиться ошибка,
точно воспроизвести не могу, но там будет написано что функция mysql_escape_string
может обработать какое то количество символо о не больше.
13. valenok - 29 Мая, 2008 - 18:47:46 - перейти к сообщению
Скорее всего в друпал решили что записывать в бд данные в количесве большем чем определённое нельзя. Или php ошибка ? Подозреваю что друпал не такую выдал.

 

Powered by ExBB FM 1.0 RC1