Problem(error/warning): hocu da iskoristim sscanf za proveru tacnosti maila kada igrac upise u dialogu, nesto sam uradio ali mi prihvati mail kada je upisan
asd @ asd.com, a zanima me kako da izbegnem razmak da mi prihvati samo asd@asd.comDio skripte: [pawn]if(sscanf(inputtext,"s[64]'
@'s[15]", email, domain))[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
Citat: rizla poslato Oktobar 13, 2019, 18:44:19 POSLE PODNE
Problem(error/warning): hocu da iskoristim sscanf za proveru tacnosti maila kada igrac upise u dialogu, nesto sam uradio ali mi prihvati mail kada je upisan
asd @ asd.com, a zanima me kako da izbegnem razmak da mi prihvati samo asd@asd.com
Dio skripte: [pawn]if(sscanf(inputtext,"s[64]'@'s[15]", email, domain))[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
izvinjavam se na duplom postu pokusao sam izmenuti [ member=1996 ][/member ] u
@
Mislim da to ne mozes uraditi ali nisam siguran
https://forum.sa-mp.com/showthread.php?t=626317
Razgledaj ovo
Koristi regular expressions.
https://forum.sa-mp.com/showthread.php?t=609570
https://stackoverflow.com/questions/201323/how-to-validate-an-email-address-using-a-regular-expression
[pawn]GetMail(string[])
{
new string_lenght = strlen(string), email[24];
for(new i = 0; i < string_lenght; i++)
{
strcat(email, i);
if(string
== '@') break;
}
return email;
}
GetDomain(string[])
{
new string_lenght = strlen(string), domain[15], bool:DomainAdd = false;
for(new i = 0; i < string_lenght; i++)
{
if(DomainAdd) strcat(domain, i);
//
if(string == '@' && !DomainAdd) DomainAdd = true;
else if(string == '.' && DomainAdd) break;
}
return domain;
}
// Korištenje:
new domain[16], email[25];
strmid(email,GetMail(inputtext),0,strlen(GetMail(inputtext)),sizeof(email));
strmid(domain,GetDomain(inputtext),0,strlen(GetDomain(inputtext)),sizeof(domain));[/pawn]
Probaj, [member=1996][/member]
zamjeni sa
@.
vise mi se svidja ideja od basovskog, dosta preglednije i jednostavnije, hvala svima u svakom slucaju
https://github.com/GRGServer/SAMP/blob/master/includes/regex.inc
[pawn]
#define IsValidEmail(%1) \
regex_match(%1, "[a-zA-Z0-9_\\.]+
@([a-zA-Z0-9\\-]+\\.)+[a-zA-Z]{2,4}")
if (!IsValidEmail(inputtext)) {
//code
}
[/pawn]