Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Pamoka: Kaip surišti serverį su MySQL duomenų baze.


Giedrius_Feix

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3844 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Laba Diena Supergames Lanktyojai sugalvojes apšviesti jus ir padėti perkopti į nauja pakopą rašau šią pamoka.

Kas yra MySQL?

MySQL tai yra duomenu baze kurioje yra talpinama informacija.

Kodel MySQL?

Daugelis mano,kad tai itin sudetinga saugojimo systema kuria gali perprasti tik itin igude scripteriai.

Taip aš irgi taip maniau,kol neišmeginau,kuom tai naudinga?

MySQL formatuojamos užklausos yra kai trumpi sakinukai tai yra lengvai isimintina ir lengvai naudojama.

Patogus duomenu valdymas.

Saugumas ir dar dauk ka gali rasti adresu: http://www.mysql.com/why-mysql/

Pradžia

Na ka pradžiai mums reikes Apache ir MySQL,šiai pamokai naudosime XAMPP programine iranga.

Parsisiuntimas: http://sourceforge.n...er.exe/download

Instaliuokite programa ir paleiskite pradesime nuo to,kaip reikia sukurti duomenu baze.

Taigi instaliave XAMPI pažymekite varneles ties Apache ir MySQL.

Gerai programa paleista važiuojame toliau i savo interneto naršykle iveskite adresa: http://localhost/phpmyadmin/

Išmestame lange bus nurodyta Create new database šalia langelyje irašykite duomenu bazes pavadinima ir spauskite Create.

Prieš pradedant darba su serveriu mums reikia sukurti lentele kurioje bus išsaugoma žaideju info.

Sukurus duomenu baze supergames iškarto bus išmesta lentele kurioje mes irašysime savo tabl'es/lenteles pavadinima ir fieldu kieki šiuo atveju aš irašysiu 2kadangi naudosim tik Varda ir Slaptažodi.

Viskas turi atrodyti šitaip:

Kad pamoka butu kuo išsamesne stengsiuos nurodyti viska labai nuosekliai,taigi dešiniajeme kampe yra mygtukas "GO" spustelkime ji.

Pirmame Fielde/Eiluteje rašome:

---------------------------------------------

Field: Vardas

Type: VARCHAR

Length/Values1: 24

-----------------------------------------------

Kaip pastebejote Eilutes pavadinimas bus "Vardas", Tipas "VARCHAR" ka tai reiškia?

Šiuo tipu mes nurodome,kad talpinsime teksta t.y raides ir skaicius kuriu limitas bus 24simboliai.

Antroje eiluteje irašome:

---------------------------------------------

Field: Slaptazodis

Type: VARCHAR

Length/Values1: 40

-----------------------------------------------

Na jai šiuo atveju taipogi talpinsime raides ar skaicius kuriu limitas yra 40.

Na belieka spausti Save ir jaigu viska atlikome teisingai.

Na kolegos baigėme su duomenų baze,dabar einame prie serverio.,atsisiūskite MySQL Pluginą adresu:

http://files.g-style...5-win32_vs9.rar

Taipogi : http://files.g-style...om/libmySQL.dll

libmySQL dėkite į savo serverio direktorija,toliau:

Atsisiunte pluginą išpakuokite turinį ir sekite šiuos žinksnius:

1. mysql.inc biblioteka perkelkite į savo serverio pawno/include aplanką.

2. mysql.dll perkelkite į savo serverio plugins aplanką.

Pastaba: jai serverio direktorijoje nėra sukurtas aplankalas plugins suskurkite jį patys.

3. Atsidarykite server.cfg ir prirašykite prie eilutės plugins mysql.dll,jai tokios eilutės nėra prirašykite ją patys.

Gerai tarkime jau baigiamė su failų perkelimu į serveri.

Atsidarykite savo pawno aplankalą ir viršuje scripto prirašykite:

#include "pawno/include/a_mysql.inc

Taip mes serveriui nurodysime,kad dirbsime su a_mysql.inc biblioteka.

Gerai dabar važiuojame toliau,dabar dirbsime su prisijungimu prie MySQL pirma kaip aš sakau užbindinsim duomenus sekite mane:

#define MySQL_HOST "localhost"
#define MySQL_USER "root"
#define MySQL_DATA "gta-online"
#define MySQL_PASS ""

Kas nesupratote tai MySQL_HOST įrašoma Hosta kuriame talpinamas jūsų serveris šioje pamokoje mokau,kaip serveri paleisti ant localhost,todėl MySQL_HOST ir yra localhost,bet jaigu žadate paleiinėti ant hosto turite irašyti IP iki phpmyadmin.

MySQL_USER tai vartotojas prie kurio jungsimes default localhost vartotojas yra root todėl su juo ir pameginsime jungtis prie serverio,jai leidžiate serveri ant hosto naudokite duota vartotoja.

MySQL_DATA tai yra databazė kurią mes kurėme prieš tai,jai nesuprantate ir praleidote šią vietą su duomenų bazės kuriemu gryžkite į temos pradžia.

MySQL_PASS tai slaptažodis kurį naudojate prisijungiant prie MySQL localhost dažniausiai jo neturi todėl nerašome nieko.

Na viskas jai viska atlikote teisingai,o manau atlikote viska teisingai.

Na bindus turim dabar einam prie Callback'o public OnGameModeInit ir rašome..

	mysql_debug( true );
mysql_connect( MySQL_HOST,MySQL_USER,MySQL_DATA,MySQL_PASS );
if( mysql_ping( ) >= 1 )
{
 print( "Prisijungeme prie MySQL sekmingai!" );
}
else
{
 SendRconCommand( "exit" );
}

Paaiškinsiu mysql_deug siūs informacija į mysql_log failą jai atras klaidą sql syntax'ei ar dar kur bus bėdų jame viskas bus surašyta.

mysql_connect yra naudojamas prisijungti prie duomenų bazės šiuo atveju mes jungiamės vos startavus modui,seka eina tokia host,user,data,pass kadangi mes esame užbindine savo informacija mes įrašome tik bindu pavadinimus.

if( mysql_ping( ) >= 1 )

Šiuo veiksmi mes patikrinsime ar yra kažkoks sujungiamumas su duomenų baze tai yra jai ping lygu arba daugiau už 1 prisijungti pavyksta.Kadangi yra tik 2variantai arba prisijungiame ar ne tai reiškias kitas variantas prisijungti nepavyksta else tai ir padaro,nurodome visus kitus variantus kaip nepavykusius prisijungti.

Viskas turime prisijungima prie MySQL dabar susiraskime Callback'ą

public OnGameModeExit( )

ir jame prirašykime mysql_close( ); taip nustojus veiktu modui sunaikinsime prisijungima prie duomenų bazės.

Viskas jūsų modas surištas su MySQL duomenų baze,dabar sukursime mažą registracija.

Registracijai naudosiu stock'ą kuris išgauna iškarto žaidėjo vardą todėl patalpinkite jį kurnors:

stock GetPlayerNameEx( playerid )
{
new
 Name[ MAX_PLAYER_NAME ]
;
GetPlayerName( playerid,Name,MAX_PLAYER_NAME );
return Name;
}

Susiraskite Callback'ą

public OnPlayerConnect( playerid )

Ir po juo rašykite

	new
 Query[ 200 ]
;
format( Query,sizeof( Query ),"SELECT * FROM `players` WHERE `Vardas` = '%s'",GetPlayerNameEx( playerid ) );
mysql_query( Query );
mysql_store_result( );

if( mysql_num_rows( ) )
{
 ShowPlayerDialog( playerid,1,DIALOG_STYLE_INPUT,"Login","Prašome prisijungti","Jungtis","Atšaukti" );
}
else
{
 ShowPlayerDialog( playerid,0,DIALOG_STYLE_INPUT,"Register","Prašome užsiregistruoti","Register","Atšaukti" );
}
mysql_free_result( );

Na metodas paprastas

SELECT * FROM `players` WHERE `Vardas` = '%s'

Paimsime iš duomenų bazės vartotojo vardą kuris jungiasi,patalpiname rezultata toliau tikriname ar vardas egzistuoja jai taip išmetame pirmą dialog,jai ne išmetame antrą.

Viskas einame prie Callback'o

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

Aš ikelsiu visą koda,kadangi kurdamas pamoką labai pavargau :D

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if( dialogid == 0 ) //Registracija
{
 if( response )
 {
 if( !strlen( inputtext ) )
 return SendClientMessage( playerid,-1,"Laukelis Negali bûti tuðèias." );
		if( strlen( inputtext ) > 40 )
		 return SendClientMessage( playerid,-1,"Slaptaþodis negali bûti ilgesnis nei 40simboliø." );

		new
		 Query[ 150 ]
		;
		format( Query,sizeof( Query ),"INSERT INTO `players` (Vardas,Slaptazodis) VALUES ('%s','%s')",GetPlayerNameEx( playerid ),inputtext );
		mysql_query( Query );
	}
	else
	{
	 Kick( playerid );
	}
	return true;
}
if( dialogid == 1 ) //Prisijungimas
{
 if( response )
 {
 if( !strlen( inputtext ) )
 return SendClientMessage( playerid,-1,"Laukelis Negali bûti tuðèias." );
		if( strlen( inputtext ) > 40 )
		 return SendClientMessage( playerid,-1,"Slaptaþodis negali bûti ilgesnis nei 40simboliø." );

		new
		 Query[ 150 ]
		;
		format( Query,sizeof( Query ),"SELECT * FROM `players` WHERE `Vardas` = '%s' AND `Slaptazodis` = '%s'",GetPlayerNameEx( playerid ),inputtext );
		mysql_query( Query );
		mysql_store_result( );

		if(! mysql_num_rows( ) )
		{
		 Kick( playerid );
		}
		else
		{
		 SendClientMessage( playerid,-1,"Prisijungëte sëkmingai!" );
		}
	if( !response )
	{
	 Kick( playerid );
	}
	mysql_free_result( );
	return true;
}
return true;
}
return true;
}

Na štai viskas ko reikia surišti serveri su MySQL duoemnų baze.

Radus klaidų sakykite,kadangi kaip ir sakiau pavargau kurti šią pamoką ir nebegaliu iki galo daaiškint visko.

Norite pasiskaityti apie SQL Injekcijas bei kita medžiagą?

http://www.w3schools...l/sql_intro.asp

Autorius: Raimis_R.

P.S. Originali pamoka su foto, bet jos jau benesaugomos internete. Jei atsiras nesupratusių galėsiu atnaujint ir įmest foto.(bet manau ir taip labai aiškiai parašyta)

Jei rippini tai nors kreditus parašyk :)

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 8 mėnesių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3844 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...