Jump to content
  • 0

Login and Register


Punct.

Question

Problema intalnita (descriere): Am o baza de date, si am descoperit o problema. Nu se creaza conturile, deci nu se pot inregistra si conecta jucatorii pe server.

Precizez ca nici in baza de date nu se adauga contul!


Ero(area / rile) / warning-(ul / urile): -
 

Liniile de cod / sursa / script-ul(obligatoriu):

public OnAccountCheck(playerid)
{
    new rows, fields;
    cache_get_data(rows, fields, mysql);
    if(rows != 0) //if there is row
    {
        new temp[128];
        cache_get_field_content(0, "Password", temp),  format(PlayerInfo[playerid][pPassword], 128, temp);
        PlayerInfo[playerid][pID] = cache_get_row_int(0, 0); //now let's load player's ID into PlayerInfo[playerid][ID] so we can use it later
        ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick");
    }
    else
        ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Alege o parola si introdu-o in casuta de mai jos.", "Register", "Kick");
    return 1;
}
 
public OnAccountLoad(playerid)
{
    new rows, fields;
    cache_get_data(rows, fields, mysql);
    if(rows != 0) //if there is row
    {
        PlayerInfo[playerid][pLevel]        =        cache_get_row_int(0, 4);
        PlayerInfo[playerid][pCash]            =        cache_get_row_int(0, 5);
        PlayerInfo[playerid][pAdmin]        =        cache_get_row_int(0, 6);
    }
    else
    {
        ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick");
        SCM(playerid, c_alb, "-1");
    }
    return 1;
}
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case D_Login:
        {
            if(!response) return Kick(playerid);
             if(strlen(inputtext) > 2)
             {
                mysql_format(mysql, query, sizeof(query), "SELECT * FROM `_players` WHERE `Username` = '%e' AND `Password` = '%e'", Name[playerid], inputtext);
                mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
            }
             else ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Parola trebuie sa contina minim 3 caractere", "Login", "Kick");
        }
        case D_Register:
        {
            if(!response) return Kick(playerid);
            format(query, sizeof(query), "SELECT COUNT( * ) FROM `_players`");
            resultq = mysql_query(mysql, query);
            PlayerInfo[playerid][pID] = cache_get_row_count() + 1;
            cache_delete(resultq);
            if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Parola trebuie sa contina cel putin 3 caractere.", "Register", "Kick");
            mysql_format(mysql, query, sizeof(query), "INSERT INTO `_players`(`ID`, `Username`, `Password`, `IP`) VALUES ('%d', '%e', '%s', '%s')", PlayerInfo[playerid][pID], Name[playerid], inputtext, IP[playerid]);
            resultq = mysql_query(mysql, query); cache_delete(resultq);
        }

 

Imagini / Video (optional): https://youtu.be/zmz5UBTVhfY
Ati incercat sa rezolvati singur?: Da, e a nu stiu cata oara cand se intampla asta. O rezolv, si dupa ce timp iar apare problema.. fara ca eu sa modific ceva la sistemul login/register.

Edited by Punct.

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
  • 0

Rezolvat. Am pus auto_increment, si la INSERT INTO `_players` am sters partea cu ID-ul :)

Edited by Punct.

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Link to comment
Share on other sites

  • 0

.... ce ai tu pe acolo :))

uite, inlocuieste asa dialogul de register:

case D_Register:
{
	if(!response) 
		return Kick(playerid);
	
	if(strlen(inputtext) < 3) 
			return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Parola trebuie sa contina cel putin 3 caractere.", "Register", "Kick");
	
	new parola[50];
	mysql_escape_string(inputtext,parola);
	mysql_format(mysql, query, sizeof(query), "INSERT INTO `_players`(`Username`, `Password`, `IP`) VALUES ('%e', '%e', '%s')", GetName(playerid), inputtext, IP[playerid]);
	mysql_query(mysql, query); 
}

si pune acest stock:

stock GetName( playerid )
{
	new name[MAX_PLAYER_NAME+1];
	GetPlayerName(playerid,name,sizeof(name));
	return name;
}

 

Link to comment
Share on other sites

  • 0

.... ce ai tu pe acolo :))

uite, inlocuieste asa dialogul de register:

case D_Register:
{
	if(!response) 
		return Kick(playerid);
	
	if(strlen(inputtext) < 3) 
			return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Parola trebuie sa contina cel putin 3 caractere.", "Register", "Kick");
	
	new parola[50];
	mysql_escape_string(inputtext,parola);
	mysql_format(mysql, query, sizeof(query), "INSERT INTO `_players`(`Username`, `Password`, `IP`) VALUES ('%e', '%e', '%s')", GetName(playerid), inputtext, IP[playerid]);
	mysql_query(mysql, query); 
}

si pune acest stock:

stock GetName( playerid )
{
	new name[MAX_PLAYER_NAME+1];
	GetPlayerName(playerid,name,sizeof(name));
	return name;
}

 

​Am uitat sa editez si aici.. am adaugat un GetPlayerName.

 

Rog un moderator TC

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.