[..] Base de donnée en ligne

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

[..] Base de donnée en ligne

#1

Message par TT22 »

Bonjour,
J'aimerais savoir comment faire pour créer une base de donnée en ligne qu'un script pourrait lire et modifier (en fait, pas vraiment modifier mais juste ajouter des éléments).
Cela me servirait à partager les meilleurs scores à certains jeux que je crée.

Je ne sais pas du tout comment m'y prendre mais ce qui serait pratique (je ne sais pas si c'est possible), serait que ces données soient stockées sur un site de Google sites

Donc merci d'avance :mrgreen:
Cordialement,
TT22
Avatar du membre
sablier94
Niveau 4
Niveau 4
Messages : 87
Enregistré le : lun. 20 sept. 2010 10:18
Localisation : Suisse
Status : Hors ligne

Re: [..] Base de donnée en ligne

#2

Message par sablier94 »

Salut,

Je ne sais pas comment le faire, mais comme tu dois avoir un mot de passe pour te connecter à ta base de donnée, tu devra le mettre dans le script, donc ce ne sera pas très sécurisé.

Tu pourrais exécuter une page php sur ton site depuis autoit mais là aussi, ce ne serait pas top.

++
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Base de donnée en ligne

#3

Message par TT22 »

Je n'y connait rien en php, donc pourrait-tu me dire pourquoi ta deuxième solution ne serait pas top ?
Cordialement,
TT22
Avatar du membre
sablier94
Niveau 4
Niveau 4
Messages : 87
Enregistré le : lun. 20 sept. 2010 10:18
Localisation : Suisse
Status : Hors ligne

Re: [..] Base de donnée en ligne

#4

Message par sablier94 »

Bah si tu met les scores dans une url que tu exécute et que tu les récupères (en get) en php et tu les stockes dans ta bdd avec mysql.

Après il a sûrement une meilleure solution car avec celle là, il suffirait d'ouvrir une url avec le score que tu veux et il s'enregistrera donc il faudra mettre une sécurité comme une clé.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Base de donnée en ligne

#5

Message par TT22 »

Honnêtement, je n'ai rien compris :oops:
Cordialement,
TT22
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Base de donnée en ligne

#6

Message par matwachich »

Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
sablier94
Niveau 4
Niveau 4
Messages : 87
Enregistré le : lun. 20 sept. 2010 10:18
Localisation : Suisse
Status : Hors ligne

Re: [..] Base de donnée en ligne

#7

Message par sablier94 »

Tu exécute une adresse du style : http://www.tonsite.com/posterscore.php?score=999

Puis avec cette page php tu enregistre le score 999 (qui a été récupéré dans l'adresse) dans ta base de donnée avec mysql.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Base de donnée en ligne

#8

Message par TT22 »

Donc, si je comprend bien, le php peut enregistrer des données en fonction de l'URL que l'on donne ?

Edit : Il n'y a que des Homer Simpsons dans ce sujet :lol:
Cordialement,
TT22
Avatar du membre
Manwe
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mer. 08 oct. 2008 09:21
Status : Hors ligne

Re: [..] Base de donnée en ligne

#9

Message par Manwe »

Ta page php contient du code qui est executée sur le serveur web.
Tu peux avoir un code php qui va te renvoyer du html pour t'afficher une page du forum par exemple, ou tu peux avoir un code qui va mettre a jour la BD.
La plupart du temps tu passes par un formulaire d'une page html, comme quand tu fais un reply a un post. Mais tu pourrais aussi passer par les variables dans l'url. Regardes par exemple l'URL de la page actuelle du forum.

Edit: Tu vois qu'il n'y a pas que des Homer !
Un clavier azerty en vaut deux.
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Base de donnée en ligne

#10

Message par karime1 »

n'oubli pas que n'importe qui peu utiliser ce url pour envoyer un scrore énorme genre http://www.tonsite.com/posterscore.php? ... 9999999998
mais aussi il faut le nom donc ça devien http://www.tonsite.com/posterscore.php? ... 9999999998 :lol:
Avatar du membre
sablier94
Niveau 4
Niveau 4
Messages : 87
Enregistré le : lun. 20 sept. 2010 10:18
Localisation : Suisse
Status : Hors ligne

Re: [..] Base de donnée en ligne

#11

Message par sablier94 »

Pour mettre plusieurs valeurs, c'est pas comme ça plutôt ? :
@karime1 Oui, c'est pour ça qu'il faut générer une clé avec le logiciel et la vérifier en php avec un algorithme spécifique (après lequel, c'est à toi de choisir :) )
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Base de donnée en ligne

#12

Message par karime1 »

moi j'opte pour une meilleur soluce il fo envoyé un code crypté genre

Code : Tout sélectionner

http://www.tonsite.com/posterscore.php?nom=zozolepirate&score=1G58F9ZT5981G58F9ZT5981G58F9ZT5981G58F9ZT598
et puis une fois envoyé php le décrypte en utilisant le même code et si c'est un num ok mais si zozo, le pirate a tapé n'importe quoi il enverrai une expression comportant différent lettres donc on aura contre carré ses plan et on pourra enfin le pirater et formater son pc Mouhahaha... U.U ... *fo que j'arrête ça...*
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Base de donnée en ligne

#13

Message par TT22 »

Ouai, la solution du php avec un code est pas mal.
Et pour éviter que quelqu'un pirate le code, il suffit d'en faire un qui change (par exemple en fonction de la date, de l'IP, etc...)
Cordialement,
TT22
servabat
Niveau 4
Niveau 4
Messages : 69
Enregistré le : sam. 02 avr. 2011 16:26
Status : Hors ligne

Re: [..] Base de donnée en ligne

#14

Message par servabat »

Salut,

tu peut voir sinon du coté de MySql http://www.autoitscript.com/forum/topic ... ysql-udfs/
De cette façon, le score est transmis de façon plus sécurisée (pas par l'url) et directement stocké dans la BDD.

Tu peut aussi par mesure de sécurité encrypter les données et les décrypter pour un panneau d'affichage ou la lecture sur un logiciel (les données serait donc cryptées à l'envoi et sur la BDD).

Il te faudrais 3 champs dans la BDD, "ID" (champs clée pour l'incrémentation), "Joueur", "Score".
Et tu pourrais executer la commande:
INSERT INTO 'table_Score' VALUES ($i, $Joueur, $Score)
Avatar du membre
sablier94
Niveau 4
Niveau 4
Messages : 87
Enregistré le : lun. 20 sept. 2010 10:18
Localisation : Suisse
Status : Hors ligne

Re: [..] Base de donnée en ligne

#15

Message par sablier94 »

Oui mais elle ne sera pas en ligne alors ? :?
Avatar du membre
Manwe
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mer. 08 oct. 2008 09:21
Status : Hors ligne

Re: [..] Base de donnée en ligne

#16

Message par Manwe »

En fait ta base MySQL est sur le serveur Web.
Tu aurais une page PHP qui permettrai de mettre des nouveaux scores, avec la requête INSERT ci-dessus.
Tu aurais une ou plusieurs pages PHP pour voir les scores, avec du code PHP qui irait lire les scores dans la BDD (SELECT * FROM Table_Score WHERE joueur='toto' ), et qui renverrait du html avec les scores correspondant au joueur toto.

J'avais un bon site qui expliquait bien PHP-MySQL, faut que je te retrouve ca.
Un clavier azerty en vaut deux.
Avatar du membre
Manwe
Niveau 4
Niveau 4
Messages : 57
Enregistré le : mer. 08 oct. 2008 09:21
Status : Hors ligne

Re: [..] Base de donnée en ligne

#17

Message par Manwe »

Un forum pour poster les scores en PHP-MySQL ca ne t'irait pas ?
1520 au ping pong sur Wii Sport Resort. :mrgreen:
Un clavier azerty en vaut deux.
servabat
Niveau 4
Niveau 4
Messages : 69
Enregistré le : sam. 02 avr. 2011 16:26
Status : Hors ligne

Re: [..] Base de donnée en ligne

#18

Message par servabat »

Salut,

voila un exemple de script qui devrait marcher :

Code : Tout sélectionner

#include <mysql.au3>
#include <Crypt.au3>

;Variables à la fin d'un jeux (la premiere valeur de chaque sous array correspond au nom de la colone
 Local $Data[3][2] = [["Joueur", "TT22"], ["Score", "9392423993"], ["Jeux", "rami"]]
 Local $i, $j
 For $i = 0 to UBound( $Data, 1) - 1
   For $j = 0 to UBound($Data, 2) - 1
      ConsoleWrite("$Data[" & $i & "][" & $j & "]:=" & $Data[$i][$j] & @LF)
   Next
   ConsoleWrite(@LF)
 Next
;Ceci peut se formuler plus clairement :
; $Joueur[2] = ["Joueur", "TT22"]
; $Score[2] = ["Score", "9392423993"]
; $Jeux[2] = ["Jeux", "rami"]
;----------------------------------------------
;Les noms des colonnes :
Local $iMax=3
Local $i
Local $row[$iMax] = [$Data[1][1], $Data[2][1], $Data[3][1]]
For $i = 0 to $iMax - 1
    ConsoleWrite($row[$i] & @LF)
Next
Local $iMax=3
Local $i
Local $value[$iMax] = [$Data[1][2], $Data[2][2], $Data[3][2]]
For $i = 0 to $iMax - 1
    ConsoleWrite($value[$i] & @LF)
Next
;A noter que l'on aurait put définir directement les array $row et $value, mais l'array $data peut parfois etre utile,
;pour un affichage dans le jeux par exemple

;Paramêtres de la BDD MySql
$username = "root" ;==> Nom d'utilisateur de la BDD
$password = "xxxx" ;==> Mot de passe de la BDD
$database = "jeux" ;==> Nom de la base de données
$server = "sql.zoulou.com" ;==> Accès sql de l'hebergeur
$table = "score" ;==> La table de scores

;-----parametre du script-----
;Deux solution pour eviter les triches : $encrypt permet de crypter le score
;Et il sera donc stocké sous forme cryptée sur la BDD
;$vKey permet d'envoyer une clée de verification contenant un mix des différentes informations,
;les données ne seront pas sous forme crypté sur la BDD
$crypt_pass = "BravoEcho" ;==> Clée de cryptage; doit être utilisée pour le décryptage aussi

$encrypt = False ;True pour activer l'encryption, False pour ne pas l'activer
If $encrypt = True Then
    ;_Crypt_Startup() -- n'est plus néssécaire
    $hashpass = _Crypt_DeriveKey($crypt_pass, $CALG_AES_256)
    $value[2] = _Crypt_EncryptData($value[2], $crypt_pass, $CALG_USERKEY)
    _Crypt_DestroyKey($crypt_pass)
    ;_Crypt_Shutdown()
EndIf

$vKey = False
If $vKey = True Then
    $key = StringLeft($value[1], 2)&StringLeft($value[2],2)&StringRight($value[2],2)&StringLeft($value[3],3)
    $hashpass = _Crypt_DeriveKey($crypt_pass, $CALG_AES_256)
    $key = _Crypt_EncryptData($key, $crypt_pass, $CALG_USERKEY)
    _Crypt_DestroyKey($crypt_pass)
EndIf

;Connection à la BDD
$MySqlConn = _MySQLConnect($username, $password, $database, $server)
Switch @error
    Case 2
        MsgBox(16, "Driver non présent", "Le driver MySql ODBC n'est pas présent sur cet ordinateur")
    Case 1
        For $i = 1 to 4 ;Boucle de ré-éssai
            Sleep(500)
            $MySqlConn = _MySQLConnect($username, $password, $database, $server)
            If $MySqlConn <> 0 Then
                ExitLoop
            EndIf
        Next
        If $MySqlConn = 0 Then
            MsgBox(16, "Erreur", "Connection à la base de donnée impossible, verifiez votre connexion internet...")
        EndIf
EndSwitch

;Requete
$result = _AddRecord($MySqlConn, $table, $row, $value)
If $result = 0 Then ;Ou If @error = 2, dans ce cas, pas besoin de la variable $result
    $result = _Query($MySqlConn, "INSERT INTO "&$table&"("&$row[1]&", "&$row[2]&", "&$row[3]&") VALUES("&$value[1]&", "&$value[2]&", "&$value[3]&")")
    If $result = 0 Then ;Ou If @error = 1, dans ce cas, pas besoin de la variable $result
MsgBox(16, "Erreur", "Le score n'a pas pus être envoyé, verifiez votre connexion internet...")
    EndIf
EndIf

;vKey Si "True"
If $vKey = True Then
    $result = _AddRecord($MySqlConn, $table, "vKey", $key)
    If $result = 0 Then ;Ou If @error = 2, dans ce cas, pas besoin de la variable $result
        $result = _Query($MySqlConn, "INSERT INTO "&$table&"(vKey) VALUES("&$key&")")
        If $result = 0 Then ;Ou If @error = 1, dans ce cas, pas besoin de la variable $result
    MsgBox(16, "Erreur", "Le score n'a pas pus être envoyé, verifiez votre connexion internet...")
        EndIf
    EndIf
EndIf

;Fermeture de la connexion MySql
_MySQLEnd($MySqlConn)
Sur la BDD Jeux, il doit y avoir :
Une table Score, avec une colonne ID (qui est auto-incrémentée et master key), une colonne Joueur, une colonne Score et une colonne jeux (et une colonne vKey si $vKey est sur True)

@+
Avatar du membre
aurel2108
Niveau 4
Niveau 4
Messages : 90
Enregistré le : dim. 17 juil. 2011 21:19
Status : Hors ligne

Re: [..] Base de donnée en ligne

#19

Message par aurel2108 »

En effet servabat, cependant, je me permet de te rappeler que mettre des infos confidentielles (telles que le mot de passe) dans un script AutoIt est fortement déconseillé. ;)
Ne rien dire même quand on sait peut dés fois être la meilleure des solutions. (aurel2108)
Répondre