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