Portal SAMP
[Ajuda] e-mail cortado - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] e-mail cortado (/showthread.php?tid=3114)



e-mail cortado - DESATIVADO - 29/12/2022

Bom dia!
Estou precisando de uma ajuda básica, porém, não estou conseguindo fazer.

Na info dos players, fica o e-mail deles, só que fica o e-mail todo, eu quero que só apareça as 4 últimas letras do e-mail deles, exemplo:
**********[email protected]

quero que fique asteriscos no e-mail todo, e só que fique visível as 4 últimas letras do e-mail, como citado acima.
quem puder me ajudar, ficarei grato!


RE: e-mail cortado - ilakt - 29/12/2022

iria ajudar muito se voce colocasse o do código aqui, mas pra você ter uma ideia de como isso funciona:

Código PHP:
Email(playerid)
{
    new Email[/*maximo de caracteres do email*/+1]; // tem que incluir o @gmail.com
    format(Emailsizeof(Email), DOF2_GetString(/*Arquivo do DOF2*/"String do DOF2");
    for(new isizeof(Emaili++) //vai repetir isso pra cada letra do email
    {
        if(sizeof(Email)-13Email[i] = *; // se o caractere atual nao for os ultimos 13 ([email protected]), formate ele para *
    }
    return Email//aqui voce cria uma funcao para ver o email da pessoa com esses caracteres, claro que voce pode usar esse codigo em qualquer lugar e de qualquer forma




RE: e-mail cortado - Vel - 29/12/2022

Código:
HideEmail(source[], ignore = 4) {
  for (new i = strfind(source, "@") - 1 - ignore; i > -1; i--) {
    source[i] = '*';
  }
}

Código:
new email[] = "[email protected]";

HideEmail(email);
print(email); // **[email protected]

HideEmail(email, 2);
print(email); // ****[email protected]



RE: e-mail cortado - ilakt - 29/12/2022

(29/12/2022 10:26)Vel Escreveu:
Código:
HideEmail(source[], ignore = 4) {
  for (new i = strfind(source, "@") - 1 - ignore; i > -1; i--) {
    source[i] = '*';
  }
}

Código:
new email[] = "[email protected]";

HideEmail(email);
print(email); // **[email protected]

HideEmail(email, 2);
print(email); // ****[email protected]

Pode explicar melhor? não entendi muito bem algumas coisas


RE: e-mail cortado - DESATIVADO - 29/12/2022

Também não entendi, pode explicar melhor?


RE: e-mail cortado - Carlos Victor - 29/12/2022

O código faz um loop em todos os caracteres passados no paramêtro.

No loop, ele verifica onde está a posição do @ conseguindo assim separar o nome do email e também o provedor(não sei qual é o nome) e vai adicionando * antes do número de letras especificado antes do @, é meio complicado

Enfim...

Temos um email chamado [email protected] o @ fica na 7 posição.

Código:
p - 1
o - 2
r - 3
t - 4
a - 5
l - 6
@ - 7

Ai o loop pega a posição do @ que é 7, subtrai pelo quanto de caracteres quer deixar a mostra e vai substituindo o restante por asterisco.


RE: e-mail cortado - White_Blue - 29/12/2022

(29/12/2022 13:55)ilakt Escreveu:
(29/12/2022 10:26)Vel Escreveu:
Código:
HideEmail(source[], ignore = 4) {
  for (new i = strfind(source, "@") - 1 - ignore; i > -1; i--) {
    source[i] = '*';
  }
}

Código:
new email[] = "[email protected]";

HideEmail(email);
print(email); // **[email protected]

HideEmail(email, 2);
print(email); // ****[email protected]

Pode explicar melhor? não entendi muito bem algumas coisas

Se entendi bem, a função "HideEmail" ignora caracteres como "@" e ofusca o restante dos caracteres e o parâmetro source[] é a string a ser ofuscada. Enquanto o parâmetro `ignore = 4` define quantos caracteres serão ofuscados.
Código PHP:
    Main() {
new 
email[] = "[email protected]";

HideEmail(email2/6); // Esconde todos os caracteres, sobrando apenas o @gmail.com
printf(email); // Resultado final: *******@gmail.com

}
HideEmail(source[], ignore 4) {
  for (new strfind(source"@") - ignore> -1i--) {
    source[i] = '*';
  }




RE: e-mail cortado - strelo - 30/12/2022

Para ocultar a maior parte do endereço de e-mail e mostrar apenas as últimas 4 letras, você pode usar a seguinte lógica:

1.Obtenha o tamanho da string do e-mail, usando a função strlen.
2.Faça um loop de 0 até o tamanho da string, excluindo as últimas 4 posições.
3.Para cada iteração do loop, substitua a letra atual da string pelo caractere '*'.
4. Depois do loop, imprima a string do e-mail.

Aqui está um exemplo de código que implementa essa lógica:

Código PHP:
new email[64]; // string do e-mail
strcpy(email"[email protected]");

new 
len strlen(email); // tamanho da string

// loop de 0 até len - 4 (para excluir as últimas 4 posições)
for (new 0len 4i++) {
  email[i] = '*'// substitui a letra atual por '*'
}

printf("E-mail: %s"email); // imprime o e-mail oculto 

Espero que isso ajude! Se você tiver mais dúvidas ou precisar de mais ajuda, não hesite em perguntar.