SA-MP Forums Archive
[Ajuda] Problema com 'IF' - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Problema com 'IF' (/showthread.php?tid=434330)



Problema com 'IF' - Alado - 02.05.2013

Por algum motivo, mesmo o inputtext tendo os requisitos que o 'if' pede, ele dб erro..

pawn Код:
case DIALOG_EMAIL:
        {
            if(!response)
            {
                format(alado, 115, "{BEBEBE}Informe um e-mail vбlido. Este e-mail serб usado para enviar uma nova senha, caso vocк perca a atual.", nome);
                ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_PASSWORD, "{FF8C00}X", alado, "Confirmar", "");
            }
            else
            {
                if(strfind(inputtext, "@") && strfind(inputtext, "."))
                {
                    if(strfind(inputtext, "!") || strfind(inputtext, "#") || strfind(inputtext, "$") || strfind(inputtext, "%") || strfind(inputtext, "Ё") || strfind(inputtext, "&") || strfind(inputtext, "*") || strfind(inputtext, "(") || strfind(inputtext, ")") || strfind(inputtext, "/") || strfind(inputtext, "-"), strfind(inputtext, "+"))
                    {
                        format(alado, 115, "{FF0000}@ERRO: {FF8C00}E-MAIL INVБLIDO\n\n\n{BEBEBE}Informe um e-mail vбlido. Este e-mail serб usado para enviar uma nova senha, caso vocк perca a atual.", nome);
                        ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_PASSWORD, "{FF8C00}X", alado, "Confirmar", "");
                    }
                    else
                    {
                        format(arquivo, 28, contas, nome);
                        DOF2_SetString(arquivo, "E-mail", inputtext);
                        DOF2_SaveFile();
                    }
                }
                else
                {
                    format(alado, 115, "{FF0000}@ERRO: {FF8C00}E-MAIL INVБLIDO\n\n\n{BEBEBE}Informe um e-mail vбlido. Este e-mail serб usado para enviar uma nova senha, caso vocк perca a atual.", nome);
                    ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_PASSWORD, "{FF8C00}X", alado, "Confirmar", "");
                }
            }
        }



Re: Problema com 'IF' - Falcon. - 02.05.2013

quando surgir esses problemas, basta fazer uma depuraзгo do cуdigo:

pawn Код:
#include <a_samp>

new string[18] = "email@dominio.com";

main()
{
    printf(">> email selecionado: %s\n\n", string);
   
    if(strfind(string, "@") && strfind(string, "."))
    {
        if(strfind(string, "!") || strfind(string, "#") || strfind(string, "$") || strfind(string, "%") || strfind(string, "Ё") || strfind(string, "&") || strfind(string, "*") || strfind(string, "(") || strfind(string, ")") || strfind(string, "/") || strfind(string, "-"), strfind(string, "+"))
        {
            print("O email contйm caracteres invбlidos");
        }
        else
        {
            print("O email foi registrado com sucesso");
        }
    }
    else
    {
        print("O email nгo й valido, tente novamente");
    }
}
resultado:

[22:47:28] >> email selecionado: email@dominio.com

[22:47:28] O email contйm caracteres invбlidos



Re: Problema com 'IF' - Alado - 02.05.2013

Sim, eu fiz! E nгo me ajudou nada hб saber que tem de errado no if..


Re: Problema com 'IF' - Falcon. - 02.05.2013

se o email estб correto e diz que contйm caracteres invбlidos, logo o problema estб nas condicionais...

cуdigo funcionando:

pawn Код:
#include <a_samp>

new string[30] = "email@dominio.com";

main()
{
    printf(">> email selecionado: %s\n\n", string);
   
    if(strfind(string, "@") != -1  && strfind(string, ".") != -1 )
    {
        if(strfind(string, "!") != -1 || strfind(string, "#") != -1 || strfind(string, "$") != -1 || strfind(string, "%") != -1 || strfind(string, "Ё") != -1 || strfind(string, "&") != -1 || strfind(string, "*") != -1 || strfind(string, "(") != -1 || strfind(string, ")") != -1 || strfind(string, "/") != -1 || strfind(string, "-") != -1 || strfind(string, "+")!= -1)
        {
            print("O email contйm caracteres invбlidos");
        }
        else
        {
            print("O email foi registrado com sucesso");
        }
    }
    else
    {
        print("O email nгo й valido, tente novamente");
    }
}
compare-os e veja onde estб o problema




Re: Problema com 'IF' - FixSkuL - 02.05.2013

Emails de muitas pessoas tem o - , pra que proibir ?


Re: Problema com 'IF' - Alado - 02.05.2013

Й verdade, FixSkuL! Tinha esquecido que '-' й permitido.

Obrigado, Falcon!