Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 29 из 64<  1 ... 26  27  28  29  30  31  32 ... 64  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 07.10.2003
Откуда: Russia, Moscow
Ruberus писал(а):
2) Извесно, что чаще всего хост провайдеры ограничивают количество подключений к БД. Часто видел ситуацию когда количество подключений к БД может быть не более 1.

нафик таких провайдеров, это только для гостевух, которых и в файлах можно запихнуть.
в случае одновременного редактирования одной записи более позднее обновление затрет раннее. Это нормально, особенно если есть логи обновлений. )) Такие ситуации по логике не должны возникать часто и мешать друг другу - у пользователей обычно у каждого свои данные для РЕДАКТИРОВАНИЯ.
Если так уж надо - то добавь в таблицу поле "флаг - запрет редактирования" и снимай его по времени неактивности автора.

(случаи, когда мы редактировали один пост толпой бывали ))

Транзакции нужны для синхронности базы. Не для выполнения одного запроса.
Например, ты добавляешь новую тему, и пишешь добавить в таблицу тем, добавить в таблицу постов, и еще много чего (список последних, логи изменений, счетчик, список важных тем для пользователей - тут можно много чего наваять). В этом случае, если ты сделал два обновления из 5, данные в базе будут не совпадать. Посты без тем, темы без постов, битые ссылки и т.п. (Зависит от структуры базы, но смысл понятен?) Особенно приятно, когда чел оплатил деньги а результат оборвался.
Поэтому тут в случае ошибки все откатывается как было на начало транзакции.
Если все успешно, то транзакции не "теряются" а считаются выполненными.

зы массив $_SESSION хранится в памяти во время выполнения и на харде на время жизни. Но это неважно.

_________________
В поиске включайте "Искать все слова". Избегайте многоточий.
Зачем нужен разгон? http://tsc.overclockers.ru



Партнер
 

Member
Статус: Не в сети
Регистрация: 05.01.2007
Почти нашел решение своей задачки
mysql_pconnect.
Создает постоянное подключение к БД MySQL которое не разрывается при завершении скрипта.
Минусы:
Работает только если PHP настроен как модуль Apache(или др. сервера)
Если соединение с БД уже открыто другим процессом вернет его а не новое.
Невозможно закрыть

Первый и третий минус сводит на нет все плюсы.
Добавлено спустя 10 минут, 35 секунд
И тут же нашел такую вещь:
"FastCGI позволяет создавать сценарии, которые запускаются вместе с сервером и постоянно находятся в оперативной памяти."
Это как раз то что нужно, т.к. хост провайдеры используют FastCGI где это можно.
Цитата:
Первый способ заключается в том, чтобы использовать PHP как CGI-оболочку. При этом PHP-интерпретатор создается и уничтожается при каждом обращении к странице (PHP-скрипту). Поскольку интерпретатор уничтожается после каждого запроса к серверу, все используемые им ресурсы (в том числе и соединение с базой данных) закрывается. Следовательно, в этом случае вы не получите ничего от использования постоянных соединений - их просто нет.

Но FastCGI не уничтожает интерпретатор PHP => не выполняются закрытия БД и очищение ресурсов =)
Осталось решить проблему с теми минусами которые я написал...
Добавлено спустя 12 минут, 56 секунд
P.S. А на форуме транзакции используются или нет?
Просто возник такой спонтанный вопрос =)
Добавлено спустя 30 секунд
P.S. А на форуме транзакции используются или нет?
Просто возник такой спонтанный вопрос =)


 

Member
Статус: Не в сети
Регистрация: 07.10.2003
Откуда: Russia, Moscow
не вижу проблемы. ты все еще путаешь целостность базы с затиранием редактирования.
Первое решается транзакциями.
Второе - программистом, флагом рид-онли.

постоянное соединение - плохо, их слишком много и не смысла.

_________________
В поиске включайте "Искать все слова". Избегайте многоточий.
Зачем нужен разгон? http://tsc.overclockers.ru


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
На форуме не используются не только транзакции, но даже и банальные внешние ключи/триггеры ;) Тут постоянно проблемы с целостностью)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 05.01.2007
armadillo писал(а):

Нет я понимаю что транзакции нужны для целосности БД в том числе
В мануале же четко сказано если рассматривать таблицы типа InnoDB там все действия осуществляются с использованием транзакций. Просто каждое выполненое действие идет как отдельная транзакция.
В модели транзакций InnoDB возможно использовать блокировку. Т.е. транзакции можно применить для целосности данных и при этом же выполнить
разделяющие функции. В мануале по этому поводу приведет замечательный пример:
Цитата:
В некоторых случаях использовать согласованное чтение нецелесообразно. Приведем пример. Допустим, что необходимо добавить новую строку в таблицу CHILD, предварительно убедившись, что для нее имеется родительская строка в таблице PARENT.

Предположим, что для чтения таблицы PARENT было использовано согласованное чтение, и в таблице была обнаружена родительская строка. Можно ли теперь безопасно добавить дочернюю строку в таблицу CHILD? Нет, потому что в это время другой пользователь мог без вашего ведома удалить родительскую строку из таблицы PARENT.

В данной ситуации необходимо выполнить операцию SELECT в режиме блокировки, LOCK IN SHARE MODE.
SELECT * FROM PARENT WHERE NAME = 'Jones' LOCK IN SHARE MODE;

Выполнение чтения в режиме совместного использования (share mode) означает, что считываются самые новые доступные данные и производится блокировка строк, чтение которых осуществляется. Если последние данные принадлежат еще не зафиксированной транзакции, мы ждем, пока транзакция не будет зафиксирована. Блокировка в режиме совместного использования не позволяет другим пользователям обновить или удалить читаемую строку. После того, как указанный выше запрос вернет родительскую строку 'Jones', мы можем безопасно добавить дочернюю строку в таблицу CHILD и зафиксировать транзакцию

Это было бы очень изящным решением =)
но увы как мне ответили в другом форуме:
"Это издержки взаимодействия сессионного (MySQL) и несессионного (HTTP) протоколов.(С)"


 

Member
Статус: Не в сети
Регистрация: 23.06.2004
Почему не работает код:

<?

$link = "date.php";

print "< а href = \" $link \">View today's date</a> <br>\n";


?>


на странице просто выводит < а href = " date.php ">View today's date

_________________
Весь мир игра, а мы вней монстры...


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Mutant-13 Ну? А ты чего ждал? :spy:

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
Mutant-13 писал(а):
Почему не работает код:
<?
$link = "date.php";
print "< а href = " $link ">View today's date</a> <br>\n";
?>
на странице просто выводит < а href = " date.php ">View today's date

Код:
<?php
print '
<html>
  <head>
     <title>View date</title>
  </head>
  <body>
   <a href="date.php">View today's date</a>
  </body>
</html>';
?>

date.php
Код:
<?php
echo date('Y-m-d H:i:s');
?>


 

Member
Статус: Не в сети
Регистрация: 24.04.2007
Откуда: Новосибирск
всем привет.
задался я таким вопросом - как замутить свой rss канал? Лазил по поисковикам, ничего толкового не нашёл, точнее мне нужен скрипт на php желательно без perl, приветствуется mysql. Кто нибудь может подсказать, где можно раздобыть такой скрипт?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
LAX RSS-Writer класс достать несложно) Вот например: http://www.phpclasses.org/browse/package/560.html
Но наполнять фид придется самому, разумеется)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
LAX Не с той стороны смотришь, сначала подумай чем RSS отличается от любого другого генерируемого документа, затем читай этот топик (или хотя бы юзай поиск)

http://forums.overclockers.ru/viewtopic ... 91#2144191

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 24.04.2007
Откуда: Новосибирск
Anoss
Самое преогромное спасибо! Я просто не знал, как бы точнее "спросить" поисковики, точнее я даже не знал, что это RSS-Writer :) Ещё раз спасибо!


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
LAX писал(а):
я даже не знал, что это RSS-Writer

да нет, называться это в принципе может как угодно в таком духе, я просто зашел на phpclasses.org и вбил в поиск «RSS» )

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 20.01.2005
Откуда: Kyiv, Ukraine
Доброго времени суток!

У меня стоит задача создать папку.

мне нужно создать папки folder1/folder2 и в папку folder2 записать файл.
Код:
<?
mkdir("/folder1/folder2", 0777);
?>

как пишет книжка... но хостинг мой ругается на такое:
Код:
Warning: mkdir() [function.mkdir]: open_basedir restriction in effect. File(/folder1/folder2) is not within the allowed path(s): (/wsu/users/kks/domain.com/:/wsu/users/kks/tmp/:/usr/local/pear/) in /wsu/users/kks/domain.com/ru/upload.php on line 4

скрипт запускается из папки ru и я ожидал появления папки ru/folder1/folder2

я эту проблему попробовал решить так:
Код:
<?
mkdir("folder1", 0777);
chdir("folder");
mkdir("folder2", 0777);
?>


такая конфигурация работает, но удалить потом ни folder2, ни folder1 нельзя. Пишет что операция удаления не выполнена. При изменении атрибутов этих папок пишет: "не могу изменить атрибуты удаленных папок"

Как поступить?
1. Как сделать так что бы mkdir("/folder1/folder2", 0777); работало или
2. Как сделать папки folder2 и folder1 удаляемыми через второй способ?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Код:
mkdir("/folder1/folder2"..

Ты пытаешься создать папку в КОРНЕ хостерского сервера. Естественно, тебе никто не даст это сделать ;)

Код:
mkdir('./folder1', 0777);
mkdir('./folder1/folder2', 0777);

rmdir('./folder1/folder2');
rmdir('./folder1');

Не пытайся удалить folder1, пока в ней находится folder2 :)
И ошибки пиши полностью про удаление.

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 20.01.2005
Откуда: Kyiv, Ukraine
Anoss писал(а):
Код:
mkdir("/folder1/folder2"..

Ты пытаешься создать папку в КОРНЕ хостерского сервера. Естественно, тебе никто не даст это сделать ;)

Код:
mkdir('./folder1', 0777);
mkdir('./folder1/folder2', 0777);

rmdir('./folder1/folder2');
rmdir('./folder1');

Не пытайся удалить folder1, пока в ней находится folder2 :)
И ошибки пиши полностью про удаление.


спасибо, работает "Не пытайся удалить folder1, пока в ней находится folder2 :)" оказывается такое правило работает и для создания :oops:

еще вопрос:
почему папки созданые через mkdir удалить можно только через rmdir скрипта, а не через фтп-доступ к самим папкам?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
KKS писал(а):
почему папки созданые через mkdir удалить можно только через rmdir скрипта, а не через фтп-доступ к самим папкам?

У них владелец www, а не ftp-пользователь. mkdir ставит права с учетом текущей umask, т.е. скорее всего куда меньше, чем 0777. Можешь попробовать

Код:
mkdir('./folder1');
chmod('./folder1', 0777);
mkdir('./folder1/folder2');
chmod('./folder1/folder2', 0777);

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 20.01.2005
Откуда: Kyiv, Ukraine
Anoss писал(а):
KKS писал(а):
почему папки созданые через mkdir удалить можно только через rmdir скрипта, а не через фтп-доступ к самим папкам?

У них владелец www, а не ftp-пользователь. mkdir ставит права с учетом текущей umask, т.е. скорее всего куда меньше, чем 0777. Можешь попробовать

Код:
mkdir('./folder1');
chmod('./folder1', 0777);
mkdir('./folder1/folder2');
chmod('./folder1/folder2', 0777);

спасибо за помощь!:beer:


 

Member
Статус: Не в сети
Регистрация: 16.04.2006
Откуда: Израиль
Почему часы на сайте, установленный на локальном компе, показывает время на час больше?
Вот код:
<?php
$seperator =":";
$hour = date("G");
$minute = date("i");
$second = date("s");
echo "<p align=right><font face=Georgia size=3 color=#ffffff>","$hour$seperator$minute$seperator$second","<br>";
$mont = array("Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря");
$dni = array("Воскресение","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота");
$today = getdate();
echo $dni[$today["wday"]].date(" - d ").$mont[date("m")-1].date(", Y"),"</font></p>"?>

Ответы типа, сними галочку с зимнего времени, можете оставить при себе. Спасибо.

_________________
человек на 80% состоит из жидкости, многие из тормозной...


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
xr0m писал(а):
Ответы типа, сними галочку с зимнего времени, можете оставить при себе. Спасибо.

Вопросы типа, почему часы на сайте на час больше, можете оставить при себе. Пожалуйста.

Если кто тут из тормозной жидкости и состоит то это точно один из нас...

P.S. http://www.php.net/manual/ru/ref.datetime.php

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 29 из 64<  1 ... 26  27  28  29  30  31  32 ... 64  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan