Messagerie


comment envoyer un score dans une BdD

890 messages

mercredi 1 juin 2016 à 17:41
Hello,

j'avais déjà posé cette question il y a quelques temps mais je piétine donc pardon... je repose ou reformule la question ;)

Je fais un jeu qui va s'interfacer avec un site ou plusieurs. Mais à chaque fois, le joueur sera connecté avant d'arriver à cette page contenant le jeu.
Lorsqu'il a terminé le jeu, je souhaite envoyer son score dans la base de donnée dans la bonne ligne (celle avec son Id unique).

Quelqu'un sait-il, peut il faire ça ?

Merci de vos lumières ;)
Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 2 juin 2016 à 07:04
Il y a plusieurs tuto sur le forum officiel Clickteam :
http://community.clickteam.com/threads/87185-Online-High-Score-Tutorial
http://community.clickteam.com/threads/84503-A-Guide-to-saving-high-scores-online
890 messages

jeudi 2 juin 2016 à 08:58
Merci Cyberclic ;) je les connaissais. Le soucis n'est pas d'envoyer dans ma base un pseudo en créant une ligne supplémentaire à chaque fois dans la BdD. Le soucis est de récupérer automatiquement les infos d'une session web pour stoquer le score dans la ligne correspondante au joueur.
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
jeudi 2 juin 2016 à 09:53
Salut salut,

Ça ne dépend pas de Fusion. Il faut voire du coté du serveur, PHP MySQL. Essaye plutôt par là https://www.google.fr/search?q=php+modifier+une+entr%C3%A9e+dans+une+base+de+donn%C3%A9e&ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&ei=seNPV9uuJ4jAaJr7i-AP
890 messages

jeudi 2 juin 2016 à 10:02
Je sais que cela ne dépend pas de fusion Seyjin ;) merci de ton lien.
ce sont vos connaissances en php que je sollicite.
Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
jeudi 2 juin 2016 à 19:14
Ton problème ne vient pas Fusion ou de PHP. Ton problème c'est que tu ne semble pas maîtriser les requêtes SQL.
Pour modifier une ligne, il faut faire un Update.

http://sql.sh/cours/update

En gros, dans ton fichier PHP, tu devrais avoir un truc comme ça :
mysql_query("UPDATE score SET pseudo = '" . $pseudo. "', score = '" . $scrore . "' WHERE id = "$id)

le code complet :
<?php
// Variables de connexion à la base de données MySQL
$adresse = ''; // Adresse de la base de données SQL
$utilisateur = ''; // Nom de l'utilisateur
$motpasse = ''; // Mot de passe
$basedonnee = ''; // Nom de la base de données SQL

// Connexion à la base de données
$bd = mysql_connect($adresse, $utilisateur, $motpasse);
mysql_select_db($basedonnee, $bd);

// Récupération des variables provenant de MMF
$pseudo = stripslashes($_POST['pseudo']);
$score = stripslashes($_POST['score']);
$id = stripslashes($_POST['id']);

// Condition de vérification des variables "pseudo", "score" et "id" pour pouvoir exécuter la commande SQL de modification.
if (isset($_POST['pseudo']) && isset($_POST['score']) && isset($_POST['id']))
{
// Si oui, enregistrement du pseudo et score dans la table "score" de la base de données.
mysql_query("UPDATE score SET pseudo = '" . $pseudo. "', score = '" . $scrore . "' WHERE id = " . $id );
}

// Déconnexion de la base de données
mysql_close();
?>
Modifié le jeudi 2 juin 2016 à 19:31 par Cyberclic
890 messages

vendredi 3 juin 2016 à 09:18
Hello Cyberclic !
C'est exact ! Un grand merci  :love pour ton aide :)

Mon soucis est que ce ne doit pas être mon appli qui génère le pseudo, mais je dois le récupérer en entrée de jeu par exemple. Peut être à partir de la session ? Par contre j'ai lu qu'il ne faut pas utiliser la fonction file_get_content ou utiliser Curl pour récupérer le pseudo et/ou l'Id car on peut bloquer ce genre d'appel sur un serveur.

890 messages

vendredi 3 juin 2016 à 09:52
J'ai trouvé un tuto qui parle de créer un espace membre. Dans ce tuto, il y a un une partie qui utilise une fonction actualisation de la session mais je ne suis pas sûr que cela récupère bien l'id de l'internaute dans la base...

<?php
function actualiser_session()
{
if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id']) != 0) //Vérification id
{
//utilisation de la fonction sqlquery, on sait qu'on aura qu'un résultat car l'id d'un membre est unique.
$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_id = ".intval($_SESSION['membre_id']), 1);

//Si la requête a un résultat (c'est-à-dire si l'id existe dans la table membres)
if(isset($retour['membre_pseudo']) && $retour['membre_pseudo'] != '')
{
if($_SESSION['membre_mdp'] != $retour['membre_mdp'])
{
//Dehors vilain pas beau !
$informations = Array(/*Mot de passe de session incorrect*/
true,
'Session invalide',
'Le mot de passe de votre session est incorrect, vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}

else
{
//Validation de la session.
$_SESSION['membre_id'] = $retour['membre_id'];
$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
$_SESSION['membre_mdp'] = $retour['membre_mdp'];
}
}
}

else //On vérifie les cookies et sinon pas de session
{
if(isset($_COOKIE['membre_id']) && isset($_COOKIE['membre_mdp'])) //S'il en manque un, pas de session.
{
if(intval($_COOKIE['membre_id']) != 0)
{
//idem qu'avec les $_SESSION
$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_id = ".intval($_COOKIE['membre_id']), 1);

if(isset($retour['membre_pseudo']) && $retour['membre_pseudo'] != '')
{
if($_COOKIE['membre_mdp'] != $retour['membre_mdp'])
{
//Dehors vilain tout moche !
$informations = Array(/*Mot de passe de cookie incorrect*/
true,
'Mot de passe cookie erroné',
'Le mot de passe conservé sur votre cookie est incorrect vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}

else
{
//Bienvenue :D
$_SESSION['membre_id'] = $retour['membre_id'];
$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
$_SESSION['membre_mdp'] = $retour['membre_mdp'];
}
}
}

else //cookie invalide, erreur plus suppression des cookies.
{
$informations = Array(/*L'id de cookie est incorrect*/
true,
'Cookie invalide',
'Le cookie conservant votre id est corrompu, il va donc être détruit vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}
}

else
{
//Fonction de suppression de toutes les variables de cookie.
if(isset($_SESSION['membre_id'])) unset($_SESSION['membre_id']);
vider_cookie();
}
}
}

function vider_cookie()
{
foreach($_COOKIE as $cle => $element)
{
setcookie($cle, '', time()-3600);
}
}
?>
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 36 visiteurs au total

Derniers messages