RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 221
от 10.01.2006, 00:18

Администратор:Калашников О.А.
В рассылке:Подписчиков: 212, Экспертов: 38
В номере:Вопросов: 3, Ответов: 11


Вопрос № 32610: Господа эксперты! Вопрос такой - при создании папки программно, есть разница между операционными системами? Написал: if(mkdir("../arhiv/".$_POST['namepapki'])) Дома, на локальной машине, под Виндой, все работало н...
Вопрос № 32679: Вопрос. Есть скрипт. Там идет след. проверка: 1. Вызов скрипта 2. Проверка, нет ли записи в БД 3. Если нет - добавить. -- Вот тут косяк. Если скрипт вызывает сразу 2 раза /в одну и ту же секунду/ то пишится 2 записи... если же ест...
Вопрос № 32684: Здравсивуйие Вот такой вопрос Какой лучшии Email и Ftp сервер (ПО) меньше 10mb и почтовик ( с экзотики ) Извиняюсь что вопрос прямо не по PHP ...

Вопрос № 32.610
Господа эксперты!
Вопрос такой - при создании папки программно, есть разница между операционными системами?

Написал:
if(mkdir("../arhiv/".$_POST['namepapki']))

Дома, на локальной машине, под Виндой, все работало нормально, а после загрузки на сервер Юних работать перестало.

Где ошибка?
Отправлен: 04.01.2006, 00:27
Вопрос задал: Тормышев Валерий Евгеньевич (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: XMF
Здравствуйте, Тормышев Валерий Евгеньевич!
--
Поставь на папку arhiv права 777.
PS: chmod 777 arhiv
--
Ответ отправил: XMF (статус: 1-ый класс)
Отправлен: 04.01.2006, 01:12

Отвечает: Дмитрий Иванов
Здравствуйте, Тормышев Валерий Евгеньевич!

проверь твои права доступа для создания дирректории или если php в safemod то пути разрешающие запись.
ну и не забываем mode - mkdir("../arhiv/".$_POST['namepapki'], 0775)
---------
ставя оценку - подумай, может ты не все описал.
Ответ отправил: Дмитрий Иванов (статус: Студент)
Отправлен: 04.01.2006, 02:49

Отвечает: Stamm
Здравствуйте, Тормышев Валерий Евгеньевич!
Надо поставить права доступа на папку( в данном случае arhiv), где создаёшь папку 777.
---------
В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: 9-ый класс)
Отправлен: 04.01.2006, 12:37


Вопрос № 32.679
Вопрос. Есть скрипт. Там идет след. проверка:
1. Вызов скрипта
2. Проверка, нет ли записи в БД
3. Если нет - добавить.
--
Вот тут косяк. Если скрипт вызывает сразу 2 раза /в одну и ту же секунду/ то пишится 2 записи... если же есть хотя бы 2-3 секунды паузы.. то все окей..

В чем может быть проблема. Может писать таймаут или как??

Приложение:

Отправлен: 04.01.2006, 22:59
Вопрос задал: XMF (статус: 1-ый класс)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Stamm
Здравствуйте, XMF!
БД какие, в текстовом файле??? Если бы вы использовали MySQL, то такого бы не было, т.к. выполняется всё очень быстро, буквально за тысячные доли секунды. Лучше разобраться с MySQL, так всё прозрачно и понятно. Я сам думал, что там очень сложно, но всего около нескольких часов затратил на понимание самой сути, а потом уже легко.....
Подробнее в поисковиках..... У меня даже сохранилась один линк.
http://www.spravkaweb.ru/download/chm/mysql_spravkaweb.rar

---------
В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: 9-ый класс)
Отправлен: 04.01.2006, 23:19
Оценка за ответ: 2
Комментарий оценки:
еп твою мать.. я шарю все нормально в бд.. я не просил ссылок.. я не просил твоего мнения.. задал вопрос. пожалуйста по сути. Если бы я попросил ссылки или какие-нить другие материалы, я бы успешно написал.
--
Спасибо. 2 балла.

Отвечает: Whisper
Здравствуйте, XMF!
Единовременно выполнение только одной операци, и выполнение следующие только после освобождения файла. Mysql делает это сама, если включить (не помню что надо написать)... и собсвенно непонятно что за бд, так что уж сорь и ответ такой же.

---------
все тленно
Ответ отправила: Whisper (статус: 3-ий класс)
Отправлен: 05.01.2006, 10:43

Отвечает: Zysoftik
Здравствуйте, XMF!

А что если попробовать при старте скрипта задать ему случайную задержку?
Поставить что-то типа :
<?

sleep(rand(2,4));

...

...
?>
Тогда при запуске скрипта он будет автоматически ждать от 2х до 4х секунд (в данном примере) перед выполнением всех необходимых действий. Притом каждый запуск скрипта будет задерживаться по-разному. Если увеличить интервал - вероятность сбоя уменьшится.

Хотя данных для качественного ответа мало.
Ответ отправил: Zysoftik (статус: 1-ый класс)
Отправлен: 05.01.2006, 12:52
Оценка за ответ: 3
Комментарий оценки:
Пробывал.. ставил sleep(1000).
БД - mysql

Отвечает: Klesman
Здравствуйте, XMF!
Вы зря наезжаете на Stamma. В данной ситуации он однозначно прокомментировал Вашу заморочку. Вы не указали тип БД. Это первое. Может у Вас Oracle. А второе, это то, что если бы, как Вы говорите, нормально шарили в БД, то не задавали бы таких вопросов как этот. Если у Вас не плоские файлы, то все современные БД работают с разделением времени. Вы можете хоть тысячу раз за секунду вызывать. Ищите ошибку в скриптах и настройках. Если у Вас плоские файлы, (которые к Вашему сведению работают, значительно быстрее БД, при больших объёмах данных, но имеют гораздо более сложный специализированный интерфейс; Google, например, не использует БД), то смотрите пример в приложении. Пример взят из книги Девида Скляра и Адама Трахтенберга "PHP-Сборник рецептов". Удачи.

Приложение:

Ответ отправил: Klesman (статус: 1-ый класс)
Отправлен: 05.01.2006, 13:13
Оценка за ответ: 1
Комментарий оценки:
Спасибо. БД, повторюсь mysql.
"Советы" из книг мне не нужны.
Повторяю, что все отлично работает если скрипт вызывается с промежутком 2-3 секунды.

Отвечает: Samum
Здравствуйте, XMF!
Может стоить создать уникальный индекс по тому полю, которое проверяется в пункте 2., тогда даже если оба скрипта одновременно захотят записать одно и то же значение, то первый это сделать сможет, а второй получит отказ.
А у вас получается, что в момент проверки записей еще нет (ведь оба экземпляра скрипта запустились примерно одновременно и ничего записать еще не успели), и оба приступают с чистой совестью к добавлению новой записи.
---------
Если бы программистам за их ошибки отрывали части тела, то в конце концов им пришлось бы использовать голову!
Ответ отправил: Samum (статус: Специалист)
Отправлен: 05.01.2006, 14:12
Оценка за ответ: 3
Комментарий оценки:
сам-то понял что написал? Сам себе противоречишь

Отвечает: Дмитрий Иванов
Здравствуйте, XMF!

несколько вариантов -

1. блокировка таблицы средствами Базы Данных (не плохо было б в следующий раз писать и название БД)

2. использовать flock() для проверки, установки, снятия блокировки на какой нибудь файл и работать с базой только если блокировка на файл отсутствует и блокировка установленна самим процессом.
---------
ставя оценку - подумай, может ты не все описал.
Ответ отправил: Дмитрий Иванов (статус: Студент)
Отправлен: 05.01.2006, 15:28


Вопрос № 32.684
Здравсивуйие Вот такой вопрос Какой лучшии Email и Ftp сервер (ПО) меньше 10mb и почтовик ( с экзотики )
Извиняюсь что вопрос прямо не по PHP
Отправлен: 05.01.2006, 00:17
Вопрос задал: Whitesnake (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Angeral
Здравствуйте, Whitesnake!Вопрос конечно не понятный: толи вам нужны проги толи скрипты? Если программы то лучший e-mail то это The Bat 3.63.15 а ftp: Cerberus Ftp или Serv-U.
Ответ отправил: Angeral (статус: 1-ый класс)
Отправлен: 05.01.2006, 01:06

Отвечает: Stamm
Здравствуйте, Whitesnake!
Для е-mail хорош The Bat, но есть совсем кроха, называется BEE. Найдете в Yandex'е.
---------
В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: 9-ый класс)
Отправлен: 05.01.2006, 15:22


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpplus
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное