GTA-Expert Forum: [GUIDA] MySQL Plugin per SA-MP - GTA-Expert Forum

Salta al contenuto

  • (3 Pagine)
  • +
  • 1
  • 2
  • 3
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[GUIDA] MySQL Plugin per SA-MP

#41 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 05 maggio 2010 - 20:56

non ho capito una cosa.
come faccio a separare i valori una volta presi dal db? potresti farmi un esempio? thx
My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#42 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 23 maggio 2010 - 08:28

_All3Xz_ ha detto:

non ho capito una cosa.
come faccio a separare i valori una volta presi dal db? potresti farmi un esempio? thx

Scusa per il ritardo innanzi tutto.

Allora:
new valori[128], campo[64];
samp_mysql_query("SELECT * FROM utenti WHERE nome_utente="Kevin");
samp_mysq_store_result();
samp_mysql_fetch_row(valori);
samp_mysql_get_field("nome_utente", campo);
printf("Dal campo 'nome_utente' è stato prelevato il valore: %s", campo);
La vediamo passo passo:

samp_mysql_query esegue le istruzioni nel DB.
samp_mysql_store_result() prepara il risultato della queury precedente
samp_mysql_fetch_row(string[]) dove string in questo momento è "valori". Usando questo comando nella stringa "valori" ci saranno le seguenti cose:

Nome Campi:  nome|password|soldi 
Valori:     "Kevin"|Uhj8a93|1595  <-- Sta roba è dentro valori
ogni campo, o meglio il valore di ogni campo è separato da un '|' e sono dentro la stringa "valori".

Per prelevare il valore di un campo che ci serve dobbiamo utilizzare il comando
samp_mysql_get_field("nome_campo_interessato", stringa) dove nome campo è proprio il nome del campo e dove in stringa ci sarà un return del valore di quel campo.

Spero di essere stato chiaro. ;)

Messaggio modificato da SKE92beyond il 23 maggio 2010 - 08:30


~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#43 L'utente è offline   .ReVo^ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1402
  • Iscritto il: 20/11/08
  • GTA Preferito:GTA: TBoGT

Inviato il 23 maggio 2010 - 08:46

La guida è ottima,sono io che non riesco a capire come si fa :.
Immagine Postata
0

#44 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 23 maggio 2010 - 10:45

.ReVo^ ha detto:

La guida è ottima,sono io che non riesco a capire come si fa :.

Tu chiedi io vedrò di esaudire :asd:

~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#45 L'utente è offline   _All3Xz_ 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1512
  • Iscritto il: 05/01/09
  • GTA Preferito:GTA: San Andreas

Inviato il 23 maggio 2010 - 10:53

grazie mill ora mi è chiaro
My Works
[FS]_All3Xz_ Anti-Cheat 4
[FS]_All3Xz_ Anti-Cheat 7
[FS]_All3Xz_ Anti-Cheat 8
[GM] PVCM Training 0.? (MySQL)
[APP]_All3Xz_ NPC Generator
[GUIDA] Leggere da file usando dini
[GUIDA] Scripting GTA:IV - Callbacks
[GM] PVCM Training 1 (MySQL)
[GM] PVCM A/D
[GUIDA] Leggere da file usandi dini 2
0

#46 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 28 maggio 2010 - 17:39

sono riuscito a capire un pò come funziona... ma:

ho trovato l'esempio su come salvare utente, password e money, ma non capisco quale sia l'elemento che sceglie la colonna di money, user o pass


new string[128],pName[MAX_PLAYER_NAME+1];
    switch(resultid)
    {
case LOGIN_THREAD_ID: {
            if(IsPlayerConnected(extraid)) {
                mysql_store_result();
                if(mysql_num_rows() == 1) {
                    PlayerMoney[extraid] = mysql_fetch_int();
                    GivePlayerMoney(extraid,PlayerMoney[extraid]);
                    LoggedIn[extraid] = true;
                    format(string,sizeof(string),">> Ti sei loggato con successo, tutti i valori sono stati ripristinati.");
                    SendClientMessage(extraid,GREY,string);
                    mysql_free_result();
                } else {
                    Wrongattempt[extraid] += 1;
                    printf("Password errata (%s) (Totali: %d)",pName,Wrongattempt[extraid]);
                    if(Wrongattempt[extraid] >= 3)     {
                        SendClientMessage(extraid,RED,">> Sei stato kickato. ( Hai inserito una password errata 3 volte )");
                        mysql_free_result();
                        return Kick(extraid);
                    }
                    mysql_free_result();
                    SendClientMessage(extraid,RED,">> Password errata.");
                    ShowPlayerDialog(extraid,LOGIN_MESSAGE,DIALOG_STYLE_INPUT,"Login","Questo nick è registrato. Sei pregato di effettuare il login.","Login","Kick");
                }
            } else {
                //to avoid "commands out of sync" errors
                mysql_store_result();
                mysql_free_result();
            }
            return 1;
        }

[...]


ho capito che LOGIN_THREAD_ID serve a richiamare un qualcosa che distingue i valori, ma non ho chiaro il fatto su come scrivere in una determinata colonna di un user per poi richiamare il valore assegnato :alkz:
0

#47 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 28 maggio 2010 - 18:01

Mi viene da pensare che i soldi siano:
PlayerMoney[extraid] = mysql_fetch_int();[COLOR=#000000][COLOR=#007700]
[/COLOR][/COLOR]

Però non ti so dire esattamente, dove hai scaricato questo esempio?


~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#48 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 28 maggio 2010 - 18:17

vabè certo, ma cosa sarebbe
mysql_fetch_int();

cioè come fa ad essere proprio questo i soldi senza nessun parametro dentro?

http://forum.sa-mp.c...p?topic=79352.0
0

#49 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 28 maggio 2010 - 18:19

StanleY ha detto:

cioè come fa ad essere proprio questo i soldi senza nessun parametro dentro?


Immagino dipenda dal plugin com'è strutturato. Se gestisce certi dati internamente funziona.

~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#50 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 28 maggio 2010 - 18:26

ho cambiato plugin ho fatto il register, ma ora non riesco a capire come gettare ad esempio il valore dei soldi che ho impostato da pma default a 1000

new query[200];
            format(query,sizeof(query),"SELECT Money FROM `account` WHERE Username = '%s'",PName(playerid));
            samp_mysql_query(query);
            samp_mysql_store_result();
            if(samp_mysql_num_rows()==1)
            {

            }

come si fa a gettare il valore della pass decodficiata in md5 per poi confrontarla con quella inserita?
e come faccio a vedere quando qulacuno è già registrato per nn farlo registrare dinuovo?

Messaggio modificato da StanleY il 29 maggio 2010 - 16:47

0

#51 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 29 maggio 2010 - 17:53

StanleY ha detto:

ho cambiato plugin ho fatto il register, ma ora non riesco a capire come gettare ad esempio il valore dei soldi che ho impostato da pma default a 1000

new query[200];
            format(query,sizeof(query),"SELECT Money FROM `account` WHERE Username = '%s'",PName(playerid));
            samp_mysql_query(query);
            samp_mysql_store_result();
            if(samp_mysql_num_rows()==1)
            {

            }
come si fa a gettare il valore della pass decodficiata in md5 per poi confrontarla con quella inserita?
e come faccio a vedere quando qulacuno è già registrato per nn farlo registrare dinuovo?


Allora non c'è bisogno di decriptare la pass in md5 anche perchè non credo ci siano strumenti per farlo in sa-mp.

Tu hai la pass criptata in md5 nel tuo db. Quando il giocatore effettua il login prendi la password che inserisce, la cripti in md5, poi fai lo strcmp() con quella del DB.


Per verificare se un player è già registrato o no fai così:
format(string, sizeof(stringa),"SELECT * FROM account WHERE username='%s'", nome);
    samp_mysql_query(stringa);
    samp_mysql_store_result();
    if(samp_mysql_fetch_row(resultline))
    {
// account esistente
}
else
{
//account NON registrato
}


Per il "gettare" spiegati meglio pls.

~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#52 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 29 maggio 2010 - 18:17

dove resultline sta per? se faccio cosi crasha:

public OnPlayerConnect(playerid)
{
new query[200],resultline[256];
format(query,sizeof(query),"SELECT Money FROM `account` WHERE Username = '%s'",PName(playerid));
samp_mysql_query(query);
samp_mysql_store_result();
if(samp_mysql_fetch_row(resultline))
{
ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT ,"Register","Non hai un account su questo server.nRegistrati inserendo una password.", "Register","Annulla");
}
else
{
ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_INPUT,"Login","Inserisci la tua password","Login","Annulla");
}
print(resultline);
return 1;
}



per gettare dico ad esempio nel db nella tabella "account" nella colonna "Money" ho scritto 1000 sotto il nome di "Player" come faccio a dare al giocatore player i 1000?

Messaggio modificato da StanleY il 29 maggio 2010 - 19:26

0

#53 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 31 maggio 2010 - 11:40

Allora per prima cosa hai sbagliato in quanto:
if(samp_mysql_fetch_row(resultline))
{
//account ESISTE
}
else
{
//account NON esiste
}

E tu hai fatto esattamente l'opposto.
Guarda bene nell'esempio che avevo già fatto.

Inoltre la tua query è
SELECT Money FROM `account` WHERE Username = '%s'",PName(playerid));

ed invece è più corretta questa per controllare se un account esiste
SELECT * FROM `account` WHERE Username = '%s'",PName(playerid));


Poi per gettare i valori dei campi la procedura è la seguente come avevo già detto:

esegui la query qui sopra citata ad esempio, poi fai samp_mysql_store_result(), in seguito samp_mysql_fetch_row(string[]) dove string[] in questo caso è la nostra "resultline".

Ora in resultline ci saranno i valori dei campi presi dalla query nel seguente formato:
Nome|Password|1500|io@mail.com


Quindi per prendere un singolo valore usiamo samp_mysql_get_field("nome_campo", str[]) dove "nome_campo" è il campo interessato e str[] è dove verrà stazionato il valore.

Messaggio modificato da SKE92beyond il 31 maggio 2010 - 11:41


~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#54 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 31 maggio 2010 - 15:05

ho corretto tutto per quanto riguarda la parte teorica, ma continua a crashare:
public OnPlayerConnect(playerid)
{
    new query[200],resultline[1024];
    format(query,sizeof(query),"SELECT * FROM account WHERE Username ='%s'",PName(playerid));
    samp_mysql_query(query);
    samp_mysql_store_result();
    if(samp_mysql_fetch_row(resultline))
    {
        ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_INPUT,"Login","Inserisci la tua password","Login","Annulla");
	}
	else
	{
	 	ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT ,"Register","Non hai un account su questo server.\nRegistrati inserendo una password.", "Register","Annulla");
	}
	print(resultline);
	return 1;
}


se //commento samp_mysql_fetch_row(resultline) non crasha

se entro la prima volta da non registrato funge la registrazione, se poi entro per loggarmi crasha il server

Messaggio modificato da StanleY il 31 maggio 2010 - 15:06

0

#55 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 01 giugno 2010 - 13:49

Ci dev'essere un problema nel DB prova a controllare le query e la struttura di ogni campo.

~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#56 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 01 giugno 2010 - 14:05

guarda giovanni94m mi ha dato questo e dice che è identico a quello della sua gm... bho ç_ç
0

#57 L'utente è offline   SKE92beyond 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 576
  • Iscritto il: 17/10/08
  • Provenienza:Cesena
  • GTA Preferito:GTA IV

Inviato il 01 giugno 2010 - 14:44

Visualizza MessaggiStanleY, il 01 June 2010 - 15:05 ha detto:

guarda giovanni94m mi ha dato questo e dice che è identico a quello della sua gm... bho ç_ç

Giovanni ed Io siamo in "società" xD gli esempi che ti faccio io sono quelli che ti può fare lui.

Come ti ho detto controlla che le query siano giuste. Più che altro che i campi siano strutturati a dovere nel DB, sennò non crasherebbe con la fetch_row

~ SKE92beyond ~
[QUOTE=Jpk ubriaco]
Jpk: se mmond è gay nonnsignifica che i sono gat+e se ziuo si fa
Jpk: jnon significa che io mi facci+
Giovanni94m: sisi
[/QUOTE]

0

#58 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 01 giugno 2010 - 16:37

non so proprio cosa ci sia di sbagliato guarda screen:

Spoiler


edit: dopo una lunga ricerca io e giovanni siamo venuti a capo della soluzione: avevo la versione 0.15 -.-----


edit2: ok ora per il login tu hai detto

Quote

Tu hai la pass criptata in md5 nel tuo db. Quando il giocatore effettua il login prendi la password che inserisce, la cripti in md5, poi fai lo strcmp() con quella del DB.


e come la cripto in md5, cercando su internet ho trovato solo esempi in php dove la criptano direttamente esternamente con md5($password)...
potrei provare a creare un nuovo campo, far scrivere li la password appena inserita criptandola e poi confrontarla con quella originale, ma mi sembra un procedimento troppo lungo o no?


edit3: peppe mi ha detto che esisteva md5 in pawn infatti y_less ha fatto l'include http://damian313.goo...ges.com/md5.inc

tt risolto :)

Messaggio modificato da StanleY il 02 giugno 2010 - 09:24

0

#59 L'utente è offline   StanleY 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1033
  • Iscritto il: 22/02/09
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 07 giugno 2010 - 18:32

nuovo problema:

ho fatto un sistema di login/register (senza include md5) e in pratica avvolte il codice si blocca prima della funzione LoginPlayer() o dentro la funzione proprio quando sta per mandare il messaggio login effettuato.

Avvolte basta che dopo un po di tempo ti riconnetti e tutto funziona normalmente, di solito risolvo cancellando l'account da pma ma è una seccatura... surce:

onplayerrequestcalss

if(!IsLoggedIn[playerid])
	{
		new query[256],resultline[256];
	    format(query,sizeof(query),"SELECT * FROM account WHERE Username ='%s'",PName(playerid));
	    samp_mysql_query(query);
	    samp_mysql_store_result();
	    if(samp_mysql_fetch_row(resultline))
	    {
            /*samp_mysql_get_field("Indirizzoip", PlayerIP[playerid]) ;
	        if(!strcmp(PlayerIP[playerid],GetPlayerAddres(playerid),true) && Loginauto[playerid] && strlen(PlayerIP[playerid]))
			{
				new rps[100];
				format(rps,100,"AUTO LOGIN: Indirizzo IP: [DB: %s/%s]",PlayerIP[playerid],GetPlayerAddres(playerid));
				SendClientMessage(playerid,COLOR_GREY,rps);
				LoginPlayer(playerid);
			}else{*/
		        new str[150];
		        format(str,150,"Benvenuto %s\nInserisci la tua password",PlayerName[playerid]);
		        ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_INPUT,"Login",str,"Login","Annulla");
			//}
		}
		else
		{
		 	ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT ,"Register","Non hai un account su questo server.\nRegistrati inserendo una password.", "Register","Annulla");
		}
	}


if(dialogid==LOGIN_DIALOG)
	{
	    if(response)
	    {
			new valori[128], query[128], escaped[51];
	        samp_mysql_real_escape_string(inputtext, escaped);
			format(query,128,"SELECT * FROM account WHERE Username='%s' AND Password=MD5('%s')",PName(playerid),escaped);
			samp_mysql_query(query);
			samp_mysql_store_result();
			
  			if(samp_mysql_fetch_row(valori))
  			{
			    LoginPlayer(playerid);
			}else{
			    new msg[128];
			    PWErrata[playerid]+=1;
			    format(msg,sizeof(msg),"Password errata [%d/3]",PWErrata[playerid]);
			    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_INPUT,"Login",msg,"Login","Annulla");
                if(PWErrata[playerid]==3)
            	{
                    SendClientMessage(playerid,COLOR_RED,"Hai sbagliato la password 3 volte.");
                    
                    format(msg,sizeof(msg),">> %s è stato kickato dal server per non aver effettuato correttamente il login",PName(playerid));
                    Kick(playerid);
                    SendClientMessageToAll(COLOR_RED,msg);
                }
			}

	    }
	}
	


forward LoginPlayer(playerid);
public LoginPlayer(playerid)
{
	new query[128],valori[256];
	format(query,128,">> Login effettuato correttamente.");
	IsLoggedIn[playerid] = 1;
    SendClientMessage(playerid,0x00ff00aa,query);
    format(query,128,"SELECT * FROM account WHERE Username='%s'",PName(playerid));
    samp_mysql_query(query);
	samp_mysql_store_result();
	samp_mysql_fetch_row(valori);
	new tmpstr[256];
	samp_mysql_get_field("Admin", tmpstr);
	AdminLevel[playerid]=strval(tmpstr);
	samp_mysql_get_field("Score",tmpstr);
	Score[playerid]=strval(tmpstr);
	samp_mysql_get_field("Entrata", tmpstr);
	Entrata[playerid]=strval(tmpstr);
	samp_mysql_get_field("Money", tmpstr);
	Money[playerid]=strval(tmpstr);
	samp_mysql_get_field("Skin", tmpstr);
	SetPlayerSkin(playerid,strval(tmpstr));
	SetSpawnInfo(playerid,0,strval(tmpstr),-2421.1748,334.7039,35.4517,240.8429,0,0,0,0,0,0);
	samp_mysql_get_field("Morti", tmpstr);
	Death[playerid]=strval(tmpstr);
	samp_mysql_get_field("Uccisioni", tmpstr);
	Kill[playerid]=strval(tmpstr);
	samp_mysql_get_field("AutoRepair", tmpstr);
	AutoRepair[playerid]=strval(tmpstr);
	samp_mysql_get_field("SpeedBoost", tmpstr);
	SpeedBoost[playerid]=strval(tmpstr);
	samp_mysql_get_field("ASK", tmpstr);
	AntiSpawnKill[playerid]=strval(tmpstr);
	samp_mysql_get_field("Loginauto", tmpstr);
	Loginauto[playerid]=strval(tmpstr);
	samp_mysql_get_field("DefaultSpawn", tmpstr);
	DefaultSpawn[playerid]=strval(tmpstr);
	
	
	format(query,200,"UPDATE account SET Indirizzoip = '%s' WHERE Username = '%s'",GetPlayerAddres(playerid),PName(playerid));
	samp_mysql_query(query);
			
	format(query,200,"UPDATE account SET ENTRATA = '%d' WHERE Username = '%s'",Entrata[playerid]+1,PName(playerid));
	samp_mysql_query(query);
	new msg[200];
	format(msg,200,"Ciao %s! Benvenuto nel server!",PlayerName[playerid]);
	SendClientMessage(playerid,COLOR_RED,"***********************************************************************************************************************************");
	SendClientMessage(playerid,COLOR_WHITE,msg);
	if(AdminLevel[playerid]>0)
	{
		format(msg,200,"Ti sei loggato come admin di livello %d",AdminLevel[playerid]);
		SendClientMessage(playerid,COLOR_WHITE,msg);
	}
	format(msg,200,"Hai $%d, e sei di livello: %d, entrata n°: %d",Money[playerid],Score[playerid],Entrata[playerid]);
	SendClientMessage(playerid,COLOR_WHITE,msg);
	SendClientMessage(playerid,COLOR_WHITE,"Gamemode in fase di sviluppo, al termine verranno azzerati tutti i dati utenti.");
	SendClientMessage(playerid,COLOR_WHITE,"Accedi al tuo pannello di controllo account su WWW.TLK.GAMEHOSTING.IT inserendo i dati del server.");
	SendClientMessage(playerid,COLOR_WHITE," ");
	SendClientMessage(playerid,COLOR_RED,"***********************************************************************************************************************************");
	print("fine");
	return 1;
}



un tizio sul forum di samp mi ha detto:

Quote

It's MySQL function, so you cannot use it in pawn obviously rolleyes.

Connect tables via IDs rather by names, so you can change names however you want and it won't get messed up.
Then under OnPlayerRequestClass or something get account ID.
Citazione
SELECT acc_id FROM account WHERE Username='%s'
If you get any results account exists if no then it doesn't.
And then get data from account.
Codice:

SELECT * FROM account WHERE Username='%s' AND Password=MD5('%s')

If you get results password was right otherwise no.

And don't forget to escape password to prevent SQL injections. And next time ask in plugin's topic if you have issues with MySQL.


il fatto di nn usare l'include l'ho capito ma gli id no o.o


Edit: dopo un po di tempo finalmente ho imparato la sintassi sql e tutto il resto ora so usarlo anche su php, comunque con questo plugin mi dava problemi, come descritto sopra, ora uso quello di g-stylez, va tutto ok!

Messaggio modificato da StanleY il 11 settembre 2010 - 21:00

0

  • (3 Pagine)
  • +
  • 1
  • 2
  • 3
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi