Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Установка (http://forum.mynuke.ru/forumdisplay.php?f=8)
-   -   активация по почте проходит, но пользователь не создается (http://forum.mynuke.ru/showthread.php?t=3988)

Ksuha 29.06.2011 18:04

активация по почте проходит, но пользователь не создается
 
Нужна активация по почте, но возникает следующая проблема. Нюка работает на сервере MySQl в локальной сети. Работает локальная почта. Процесс регистрации пользователя проходит нормально. На почту приходит письмо с активацией. При переходе по этой ссылке Нюка пишет, что «Ваш аккаунт успешно активизирован, пожалуйста, для входа на сайт под своим именем нажмите здесь и введите свой логин и пароль».
Далее, при попытке ввести свой логин и пароль, Нюка пишет: «Неправильный логин! Попробуйте еще...»
Данная тема уже была на форуме а-ля почта , но ответа там так и не дали.
Я проверила, куда добавляются данные при регистрации и активации. При регистрации запись о новом пользователе появляется в таблице nuke_users_temp. Затем, по логике модуля Your_Account и функции activate в нём, при активации запись о пользователе должна переноситься в таблицу nuke_users. Но этого не происходит: запись о новом пользователе удаляется из таблицы nuke_users_temp, но в таблицу nuke_users не добавляется. Я выудили запрос на вставку в таблицу nuke_users из скрипта index.php модуля Your_Account. Он выглядит так:

INSERT INTO nuke_users (user_id, username, user_email, user_password, user_avatar, user_avatar_type, user_regdate, user_lang) VALUES (NULL, 'Имя', 'Почта', 'e10adc3949ba59abbe56e057f20f883e', 'gallery/blank.gif', '3', 'Jun 29, 2011', 'russian'),

где ‘Имя’ и ‘Почта’ заменены на реальные данные.
При выполнении данного запроса в PhpMyadmin вылетает следующая ошибка:

Ошибка
#1364 - Field 'bio' doesn't have a default value


Я посмотрела описании данного поля при создании таблицы:

`bio` tinytext NOT NULL.

Т.е., поле не должно иметь пустого значения, но значение по умолчанию не указано. Если посмотреть на исполняемый запрос, то видно, что в поле ‘bio’ никакого значения не добавляется, но т.к. оно не может быть нулевым, то и возникает данная ошибка. Аналогично с полем `ublock`:

`ublock` tinytext NOT NULL.

Я попыталась задать значение по умолчанию по данным полям, но как оказалось, они не могу иметь такого значения в синтаксисе MySQL. Выдаётся ошибка:


#1101 - BLOB/TEXT column 'bio' can't have a default value

Тогда я переопределила данные поля без ограничения NOT NULL, и всё сработало. Но я думаю, что не может же так быть, что скрипт и поля определены неверно? Ведь это всё продумывалось. И что это за адовы поля такие ‘bio’ и ‘ublock’, и могут ли они содержать пустые значения? Вдруг потом из-за этого возникут проблемы?

Soniks 30.06.2011 13:40

Ksuha Вы все сделали верно. Причина изначально в том что система разрабатывалась под MySQL 3-4 версии, и в этих версиях данный запрос не вызвал бы ошибку и он прошел бы удачно. А в новой версии трнЫЙД требуются доработки либо запроса, добавив в запрос :
Код:
INSERT INTO nuke_users (user_id, username, user_email, user_password, user_avatar, user_avatar_type, user_regdate, user_lang, bio, ublock) VALUES (NULL, 'Имя', 'Почта', 'e10adc3949ba59abbe56e057f20f883e', 'gallery/blank.gif', '3', 'Jun 29, 2011', 'russian', '', '')

Или же изменив структуру таблицы, что вы и сделали.

Ksuha 30.06.2011 15:47

спасибо! --<-@

PS. Но это же получается значительный глюк! Новичок копаться не будет, бросит. У меня версия 7.6 RUS patched. Возможно, в восьмой Нюке это исправлено.

Soniks 30.06.2011 17:20

Ksuha phpnuke в первую очередь для тех, кто желает/хочет научиться программировать на php+mysql, т.к. без знание сего будет трудно сделать себе хороший сайт.


Часовой пояс GMT +4, время: 06:32.

Copyright © 2005 by Soniks