Yura
Новичок
Рекурсия. Проблема с возвратом значения из функции
Если пользователь вводит логин и пароль, то сначала осуществляется проверка, есть ли уже пользователь с таким логином в БД. Если нет, то инфа о пользователе добавляется в таблицу MYSQL. Если есть, то происходит генерирование логина случайным образом. После генерирования я хочу на всякий случай еще раз проверить, нет ли пользователя с таким логином.
Я вызываю функцию check_login, которая должна возвращать после всех этих действий логин. Но, почему-то не возвращает значение. Вот сама функция:
Происходит следующее. Если логина, введенного пользователем, в базе нет, то все работает нормально. Если есть, то генерится новый логин, функция check_login() заново вызывается, в нее передается параметр login, но значение login после того как осуществилась проверка if (mysql_num_rows($result) == 0) не возвратилось, хотя после проверки логин сгенерирован. Мне кажется что задача несложная, скорее всего я где-то туплю. Подскажите, где я не прав.
Если пользователь вводит логин и пароль, то сначала осуществляется проверка, есть ли уже пользователь с таким логином в БД. Если нет, то инфа о пользователе добавляется в таблицу MYSQL. Если есть, то происходит генерирование логина случайным образом. После генерирования я хочу на всякий случай еще раз проверить, нет ли пользователя с таким логином.
Я вызываю функцию check_login, которая должна возвращать после всех этих действий логин. Но, почему-то не возвращает значение. Вот сама функция:
PHP:
function check_login($login)
{
if ($login!=="")
{
$result = mysql_query("select * from tbl_user where login='".$login."'");
if ($result)
{
if (mysql_num_rows($result) == 0) return $login;
elseif (mysql_num_rows($result)>0 )
{
$login = "";
$useCharslog .= 'RSTUVWXYZabcdefghkmnpqrstuvwxyz';
for ($i = 0; $i < 10; $i++ )
{ $login .= $useCharslog[mt_rand (0,strlen($useCharslog)-1)]; }
check_login($login);
}
}
}
}