• 0
Sign in to follow this  
Followers 0
Syndicate Stormquez

Вопрос по поводу регистрации.

Question

При прохождение регистрации в диалоге ввода Email, меня не пропускает дальше к следующему диалогу. Причина этого - неверный Email.

Спойлер

case DLG_REGEMAIL:
  		{
		        if(!strlen(inputtext))
				{
					SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					return SCM(playerid, COLOR_RED, "[Ошибка] {c9cdcf}Введите ваш Email!");
	    		}
	    		new regex:rg_emailcheck = regex_new("^[a-zA-Z0-9._-]{1,43}@[a-zA-Z]{1,12}.[a-zA-Z]{1,8}$");
				if(regex_check(inputtext, rg_emailcheck))
	    		{
		    		strmid(player_info[playerid][Email], inputtext, 0, strlen(inputtext), 64);
		    		SPD(playerid, DLG_REGREF, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод пригласившего",
						"{c9cdcf}Введите NickName пригласившего, еслм он есть.",
					"Далее", "Пропустить");
				}
				else
				{
				    SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					 return SCM(playerid, COLOR_RED, "[Îøèáêà] {c9cdcf}Укажите верный Email адрес!");
				}
				regex_delete(rg_emailcheck);
		}

 

 

 

Share this post


Link to post

3 answers to this question

  • 0

В целом все должно работать если ввести корректный Email-адрес. К примеру: pawn@bk.ru

Единственное что можно добавить в регулярное выражение, так это то чтобы обязать игрока вводить точку. Выглядеть это будет так: 

^[a-zA-Z0-9._-]{1,43}@[a-zA-Z]{1,12}\\.[a-zA-Z]{1,8}$

 

Edited by punkochel

Share this post


Link to post
  • 0
case DLG_REGEMAIL:
  		{
		        if(!strlen(inputtext))
				{
					SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					return SCM(playerid, COLOR_RED, "[Ошибка] {c9cdcf}Введите ваш Email!");
	    		}
	    		new regex:rg_emailcheck = regex_new("^[a-zA-Z0-9.-_]{1,43}@[a-zA-Z]{1,12}.[a-zA-Z]{1,8}$");
				if(regex_check(inputtext, rg_emailcheck))
	    		{
		    		strmid(player_info[playerid][Email], inputtext, 0, strlen(inputtext), 64);
		    		SPD(playerid, DLG_REGREF, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод пригласившего",
						"{c9cdcf}Введите NickName пригласившего, если он есть.",
					"Далее", "Пропустить");
				}
				else
				{
				    SPD(playerid, DLG_REGEMAIL, DSI, "{f9c520}Регистрация{c9cdcf} • Ввод Email",
						"{c9cdcf}Введите вашу настояющую электронную почту, чтобы продолжить регистрацию.\n\
						Если вы потеряете доступ к аккаунту, то его можно будет восстановить.",
					"Далее", "");
					 return SCM(playerid, COLOR_RED, "[Îøèáêà] {c9cdcf}Укажите верный Email адрес!");
				}
				regex_delete(rg_emailcheck);
		}

Попробуй так

Share this post


Link to post
  • 0

@punkochel  нет панели регистрации. Что делать?

 

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Ruman
      By Ruman
      Приветствую! У меня вопрос, связанный с загрузкой игрового аккаунта, просто я делаю регистрацию свою по уроку но в этом уроке функции MySQL из версии R39. Естественно при нажатии F5 выдаёт это:
      D:\Users\Ruman\Desktop\Time RP\gamemodes\project.pwn(1373) : error 017: undefined symbol "cache_get_field_content_int" D:\Users\Ruman\Desktop\Time RP\gamemodes\project.pwn(1374) : error 017: undefined symbol "cache_get_field_content_int" Код:
      forward LoadAcc(playerid); public LoadAcc(playerid) {     player_info[playerid][ID] = cache_get_field_content_int(0, "id", dbHandle);     player_info[playerid][LEVEL] = cache_get_field_content_int(0, "level", dbHandle); } Просто мне нужна другая версия данной функции под R40.
       
      Спасибо тем, что всегда рад помочь! 
       
      P.S Просто с MySQL я вообще в целом не знаком, поэтому так много вопросов.
    • Ruman
      By Ruman
      Здравствуйте! У меня появился 1 вопрос, связанный с MySQL. Короче я тут делал кое-что в своей системе регистрации (иногда я делал по уроку системы регистрации) и когда я переписал одну строчку, то выдало мне это:
      D:\Users\Ruman\Desktop\Time RP\gamemodes\project.pwn(869) : error 017: undefined symbol "mysql_function_query" Короче если не ошибаюсь, то это связанно с загрузкой пароля из БД.
       
      Вот и строчки кода это самой функции:
      format(query1, sizeof(query1), "SELECT * FROM `users` WHERE `NAME` = '%s'", player_info[playerid][NAME]); mysql_function_query(dbHandle, query1, true, "LoadAcc", "i", playerid);  И когда я изменил строчку номер 2 то вроде не выдавало ошибок.
       
      Изменённая строчка:
      format(query1, sizeof(query1), "SELECT * FROM `users` WHERE `NAME` = '%s'", player_info[playerid][NAME]); // Не изменялась mysql_query(dbHandle, query1, true, "LoadAcc", "i",playerid); Версия MySQL: R40
       
      Скажите пожалуйста, а после измены оно будет работать так как именно задумано? (Загрузка пароля)
       
      +  не обижу!
    • Ruman
      By Ruman
      Здравствуйте! У меня такой маленький вопросик появился, связанный вроде как бы с MySQL. Короче я хотел бы узнать а возможно ли как то сделать загрузку пароля из БД при авторизации? Если да, то дайте знать как. Я уже пытался через один урок по системе регистрации там короче типо загружается пароль
      Написав эту строчку выдало ошибку при компиляции
      D:\Users\Ruman\Desktop\Time RP\gamemodes\project.pwn(179) : error 017: undefined symbol "cache_get_field_content" А вот и строчка ого самого кода:
      cache_get_field_content(0,"pPassword",Player[playerid][pPassword],dbHandle); Вот хочу узнать как это правильно делать, если это конечно возможно.