![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 05.05.2012
Сообщений: 7
|
![]()
Доброе время суток, господа. Полдня ковыряюсь в коде, не пойму, где собака порылась - нужна помощь...
Суть проблемы такова. Есть скрипт на php, который должен делать следующее: 1) Вычислить ip заходившего. 2) Если сессия не открыта, то найти соответствующее значение переменной r (реферер): 2.1) сперва в куках. 2.2) если там нет - то в таблице в базе данных, где сопоставлены ip и id рефереров. 2.3) если и там нет - то в адресной строке. 2.4) если нигде нет - задать значение по умолчанию. 2.5) записать это значение в сессию и сделать там пометку о том, что пользователь идентифицирован. 3) если ip в соответствующей таблице базы данных не числится - записать его туда вместе с вычисленным значением r. Так вот... скрипт всё это вроде бы делает, но с одной весьма существенной помаркой. Когда открываю тестирования ради страницу (с предварительно вычищенными куками и очищенной таблицей ip) - то он показывает мне фигу (Access denied for user 'user'@'domain' (using password: NO)). И только после обновления страницы наконец выдаёт всё то, что должен выдавать (это всё идёт уже после вышеупомянутого скрипта). Это я-то понимаю, что нужно всего-то нажать F5. А посетителям, конечно, надо бы выдавать нужную информацию без подобных заморочек. Но как это сделать - не пойму, мозги уже кипят ![]() PHP код:
Последний раз редактировалось MLMaster; 05.05.2012 в 22:42. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
![]()
Копипаста-то столько вам зачем?
PHP код:
Подробно ваш код не рассматривал - но причина может быть именно в таком копипасте - include_once подключает файл только 1 раз. Судя по вашей ошибке - повторное подключение файла где-то не происходит (скорее всего - в одной из функций), и соединение с БД выдает указанную ошибку. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 05.05.2012
Сообщений: 7
|
![]()
Мда... Вот уж не думал, что это может вызвать проблему. А действительно, заменил везде include_once на include - заработало
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
![]()
Копипаст нужно из кода вычищать - а не функции менять.
![]() Завтра, к примеру, понадобится вам указать дополнительные параметры подключения к БД (тот же SET NAMES, например) - упаритесь это прописывать в десятке разных скриптов. Подключение к БД в коде должно быть только одно, в одном месте(файле). А уж потом этот самый файл подключайте в ваши скрипты, по небходимости. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 05.05.2012
Сообщений: 7
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Windows+Apache+PHP+MySQL: не работает расширение MySQL. | Пепел Феникса | Софт | 10 | 15.04.2012 14:10 |
Access denied for user 'root'@'localhost' (using password: NO) | koteotake | Помощь студентам | 0 | 02.12.2011 23:44 |
TopServer(PHP+MySQL+Apache+/etc), и обновление компонентов(в основном PHP) | Пепел Феникса | Софт | 2 | 05.11.2011 14:38 |
DATASNAP, error - access is denied | shurik_7866 | БД в Delphi | 1 | 27.10.2011 18:40 |
Функции 02 и 09 прерывания 21h ничего не выводят | Alex071 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 11 | 27.05.2011 13:31 |