MySQL Dialog Won't Open -
AphexCCFC - 22.01.2013
Hello, I have a register system on my website and I want it to check if that user has registered, if they haven't I want it to kick them off the server but if they have, I want it to open the login dialog box. It worked but when I removed the register part of it from my script no dialog will open:
pawn Код:
public OnPlayerConnect
(playerid
){ MoneyGiven
[playerid
] = -1;
// This is the MySQL login system I have new pname
[24];
//Creates our variables. new string
[210];
GetPlayerName
(playerid, pname,
24);
//Gets the players name mysql_store_result
();
//We store the result. new rows
= mysql_num_rows
();
//We get how many rows the query returned. // This is the MySQL login system I have if(!rows
) { //If the rows are equal to 0. This means that the query did not find //anyone under the name we connected under in the database. //So here we send the player the register dialog. SendClientMessage
(playerid, COLOR_LIGHTRED,
"Error: Please register an account at http://127.0.0.1 before being able to play!");
Kick
(playerid
);
} if(rows
== 1) { //If the rows are equal to 1, this means there is a player already registered //so we can initiate the login dialog to the player or check if the players //current IP is the same one as in the database. format(string,
sizeof(string
),
"Welcome back, %s. Please enter your password below to log in.", GetName
(playerid
));
ShowPlayerDialog
(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,
"Login", string,
"Confirm",
"Quit");
IsRegistered
[playerid
] = 1;
//Sets the registered variable to 1 (Shows that the player is registered). } return 1;
}
I have tried a registered and a non-registered name, nothing happens..
Re: MySQL Dialog Won't Open - [jS]Thomas - 22.01.2013
You are not querying the database when the player connects, therefore any data stored there is not being found.
You need something like this:
Код:
format(query,sizeof(query),"SELECT `Username` FROM `Accounts` WHERE `Username` = '%s' LIMIT 0 , 30;",name);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
//do something here
}
Re: MySQL Dialog Won't Open -
AphexCCFC - 22.01.2013
Hmm nope, still no dialog, here's the dialog code:
pawn Код:
case DIALOG_LOGIN: //Dialog login
{
if(!response) //If they click the cancel button
{
Kick(playerid);
}
if(response) //If the player clicked login
{
new query[200], pname[24], escapepass[100];//
GetPlayerName(playerid, pname, 24); //Gets the players name
mysql_real_escape_string(inputtext, escapepass); //We escape the inputtext to avoid SQL injections.
format(query, sizeof(query), "SELECT `user` FROM playerdata WHERE user = '%s' AND password = SHA1('%s')", pname, escapepass);
mysql_query(query);
mysql_store_result();
new numrows = mysql_num_rows();
if(numrows == 1) MySQL_Login(playerid);
//This means that there is a user in the database with the same
//password that we typed, we now proceed by using the login function.
if(!numrows)
{
//This means that the password that the player
//typed was incorrect and we will resend the dialog.
format(string, sizeof(string), "Welcome back, %s. Please enter your password below to log in.", GetName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", string, "Confirm", "Quit");
SendClientMessage(playerid, COLOR_LIGHTRED, "Error{FFFFFF}: You have entered an incorrect password."); //Sends the client a error message
}
mysql_free_result(); //Remember to always free a result if you stored one!
}
return 1;
}
The indent at:
pawn Код:
case DIALOG_LOGIN: //Dialog login
is just the way I posted the code
Re: MySQL Dialog Won't Open - [jS]Thomas - 22.01.2013
Can you show me what code you now have under OnPlayerConnect?
Re: MySQL Dialog Won't Open -
AphexCCFC - 22.01.2013
Man I did it the wrong way around, your code worked for me. +rep, thanks a lot bro! You seem to know a lot about MySQL, I've learnt PHP and HTML within two weeks non stop coding all day all night to get my website set up, if I have some issues here and there could I send them in PM? I won't do this constantly
Re: MySQL Dialog Won't Open -
AphexCCFC - 22.01.2013
Also, one question, does "mysql_store_result();" need to be used everytime something is checked in the database or everytime something is checked, deleted and inserted?
Re: MySQL Dialog Won't Open - [jS]Thomas - 22.01.2013
I don't know PHP at the moment (i have meant to start learning but am to damn lazy.)
I suggest going to this guy
http://forum.sa-mp.com/member.php?u=118954 if you need PHP help.
Re: MySQL Dialog Won't Open -
AphexCCFC - 22.01.2013
Yeah I meant MySQL help, just stating about the PHP and HTML, looking to make a good roleplaying community like Red County RP and LS-RP