21-12-2010, 12:16 PM
(Modification du message : 04-02-2011, 08:20 AM par NicoMSEvent.)
Vu le grand nombre de demandes pour les techniques de base, je me lance, et je vous donne un petit tutorial qui se veut être simple, agrémenté de liens vers le Site du Zéro afin de peaufiner vos connaissances.
Ceci est une esquisse, j'éditerai ce sujet pour clarifier, expliquer les points sombres, et ajouter des liens.
La programmation d'un jeu tourne bien souvent autour d'un objet principal (on reparlera d'objets par la suite), et cet objet est le joueur.
Qu'est ce que devrait faire un joueur sur votre jeu? ... Avant de jouer?
S'inscrire!
En effet, chaque joueur à un état d'avancement différent, il a des ressources à lui, un score, des vies... enfin, tout ce qui lui est propre, et qui lui permet de se différencier des autres joueurs. Mais pour ça, il faut savoir le reconnaitre entre les autres. Comme les visiteurs sont anonymes, nous allons leur demander des information uniques afin de pouvoir les reconnaitre.
Donc, en résumant, il faut qu'on stocke les informations suivantes concernant ce joueur :
Identifiant : numéro unique qui nous permettre de repérer rapidement dans notre système notre joueur (le joueur n'a a priori aucun intérêt à connaitre cet identifiant, car ce n'est pas utile)
Nom du joueur, Mot de passe, E-mail : chaines de caractères que le visiteur va nous fournir
Score : ici, pour mon exemple, je vais utiliser un score (on pourrait mettre n'importe quoi d'autre comme des points de vie), et que le joueur ne maitrise par directement.
Le plus simple serait de commencer par le stockage de ces données. Je vais directement utiliser une base de données. MySQL puisque c'est une base de données qui est présente sur la majorité des hébergeurs.
1°)Le SQL? C'est quoi ça? Un langage qui permet de manipuler des données!
(lien vers le SdZ : tutorial SQL)
L'utilisation de MySQL, PHPMyAdmin, et les autres outils de base (client FTP) feront l'objet d'un autre tutorial (en construction, dès qu'il sera fini je remplacerai ceci par le lien).
Nous avons une table qui pourrait être crée comme ceci (ou par des choix divers dans l'interface de PHPMyAdmin)
On va d'abord vérifier que le nom ou l'email n'existent pas déjà (il existe d'autres moyens qui seront abordés dans un tutorial a venir) :
Si je n'ai aucune ligne qui s'affiche, c'est que le nom et l'email ne sont pas utilisés.
On va pouvoir inscrire notre nouveau joueur.
C'est bien joli, mais on n'a pas encore notre site qui va permettre l'inscription! C'est là qu'intervient le HTML (et le PHP).
2°)Le HTML est un langage qui comporte des <balises>, qui va servir a l'affichage, et le PHP lui est exécuté par le serveur pour nos traitements.
(lien vers le SdZ : tutorial xHTML)
Dans ce formulaire, on retrouve ceci
(lien vers le SdZ : tutorial formulaires HTML) :
-Le TEXT normal
-PASSWORD qui correspond au mot de passe
-SUBMIT qui va envoyer les informations sur le serveur lorsqu'on clique dessus.
Mais comment va-t-on récupérer ces informations?
3°)Le PHP va nous permettre de récupérer les informations du formulaire, et les enregistrer
(lien vers le SdZ : tutorial PHP)
Voilà, ça sera tout pour aujourd'hui, le visiteur est inscrit!
Demain, on verra le module d'identification! (ou comment les visiteurs vont entrer dans le jeu)
Ceci est une esquisse, j'éditerai ce sujet pour clarifier, expliquer les points sombres, et ajouter des liens.
La programmation d'un jeu tourne bien souvent autour d'un objet principal (on reparlera d'objets par la suite), et cet objet est le joueur.
Qu'est ce que devrait faire un joueur sur votre jeu? ... Avant de jouer?
S'inscrire!
En effet, chaque joueur à un état d'avancement différent, il a des ressources à lui, un score, des vies... enfin, tout ce qui lui est propre, et qui lui permet de se différencier des autres joueurs. Mais pour ça, il faut savoir le reconnaitre entre les autres. Comme les visiteurs sont anonymes, nous allons leur demander des information uniques afin de pouvoir les reconnaitre.
Donc, en résumant, il faut qu'on stocke les informations suivantes concernant ce joueur :
Identifiant : numéro unique qui nous permettre de repérer rapidement dans notre système notre joueur (le joueur n'a a priori aucun intérêt à connaitre cet identifiant, car ce n'est pas utile)
Nom du joueur, Mot de passe, E-mail : chaines de caractères que le visiteur va nous fournir
Score : ici, pour mon exemple, je vais utiliser un score (on pourrait mettre n'importe quoi d'autre comme des points de vie), et que le joueur ne maitrise par directement.
Le plus simple serait de commencer par le stockage de ces données. Je vais directement utiliser une base de données. MySQL puisque c'est une base de données qui est présente sur la majorité des hébergeurs.
1°)Le SQL? C'est quoi ça? Un langage qui permet de manipuler des données!
(lien vers le SdZ : tutorial SQL)
L'utilisation de MySQL, PHPMyAdmin, et les autres outils de base (client FTP) feront l'objet d'un autre tutorial (en construction, dès qu'il sera fini je remplacerai ceci par le lien).
Nous avons une table qui pourrait être crée comme ceci (ou par des choix divers dans l'interface de PHPMyAdmin)
CREATE TABLE joueurs (
`id` INT NOT NULL AUTO_INCREMENT ,
`nom` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 200 ) NOT NULL ,
`motdepasse` VARCHAR( 50 ) NOT NULL ,
`score` INT NOT NULL DEFAULT '0',
PRIMARY KEY ( `id` )
) ENGINE = MyISAM
On va d'abord vérifier que le nom ou l'email n'existent pas déjà (il existe d'autres moyens qui seront abordés dans un tutorial a venir) :
SELECT id,nom,email FROM joueurs WHERE nom='%s' OR email='%s'
On va remplacer les %s par les valeurs qu'on souhaite tester, mais on verra ça plus loin.Si je n'ai aucune ligne qui s'affiche, c'est que le nom et l'email ne sont pas utilisés.
On va pouvoir inscrire notre nouveau joueur.
INSERT INTO joueurs (nom,email,motdepasse,score) VALUES ('%s','%s','%s',0)
C'est bien joli, mais on n'a pas encore notre site qui va permettre l'inscription! C'est là qu'intervient le HTML (et le PHP).
2°)Le HTML est un langage qui comporte des <balises>, qui va servir a l'affichage, et le PHP lui est exécuté par le serveur pour nos traitements.
(lien vers le SdZ : tutorial xHTML)
<form action="inscription.php" method="post">
<label for="nom">Nom : </label><input id="nom" name="nom" type="text" />
<label for="email">E-mail : </label><input id="email" name="email" type="text" />
<label for="motdepasse"> Mot de passe : </label><input id="motdepasse" name="motdepasse" type="password" />
<input type="submit" value="S'inscrire" />
</form>
Voilà donc un peu de HTML. J'ai un FORMulaire avec différentes entrées (INPUT) qui vont permettre d'entrer les différentes informations. Il existe différentes sortes d'entréeDans ce formulaire, on retrouve ceci
(lien vers le SdZ : tutorial formulaires HTML) :
-Le TEXT normal
-PASSWORD qui correspond au mot de passe
-SUBMIT qui va envoyer les informations sur le serveur lorsqu'on clique dessus.
Mais comment va-t-on récupérer ces informations?
3°)Le PHP va nous permettre de récupérer les informations du formulaire, et les enregistrer
(lien vers le SdZ : tutorial PHP)
<?php // un script PHP commence par ceci, le serveur web va identifier ce qui suit comme du PHP
$_POST['nom']; // il nous allons utiliser ici les noms des entrées que nous avons utilisé dans le formulaire
//afin d'éviter des futurs problèmes de sécurité (injection de SQL), on va utiliser la fonction : mysql_real_escape_string (voir documentation PHP)
$nom=mysql_real_escape_string($_POST['nom']);
//il faudra faire ceci pour toutes les entrées
$email=mysql_real_escape_string($_POST['email']);
$motdepasse=mysql_real_escape_string($_POST['motdepasse']);
//on va vérifier que l'utilisateur a bien rempli toutes les entrées :
if ($nom!='' && $email!='' && $motdepasse!='' ){
$sql=sprintf("SELECT id,nom,email FROM joueurs WHERE nom='%s' OR email='%s'",$nom,$email);
//vous vous souvenez le SQL? c'est ici qu'il entre en oeuvre, et c'est comme ça qu'on va remplacer les %s par les valeurs.
//on se connecte a la base de donnée
$db = mysql_connect ("mon_serveur_sql", "mon_login", "mon_mot_de_passe");
//et ici on va lancer l'exécution du SQL sur le serveur
$req=mysql_query($sql,$db);
$cpt=0;
//maintenant, on va parcourir la liste des résultats
while( $res=mysql_fetch_assoc($req) ){
$cpt++;
}
//si il y en a, on met un message d'erreur, sinon on insère le nouveau joueur,
//en n'oubliant pas de crypter le mot de passe! (fonction PASSWORD de MySQL)
if($cpt>0){
echo"Erreur:l'adresse e-mail ou le nom est déjà utilisé<br/>";
}
else{
mysql_query(sprintf("INSERT INTO joueurs (nom,email,motdepasse,score) VALUES ('%s','%s',PASSWORD('%s'),0)"
,$nom,$email,$motdepasse),$db)
echo"Inscription effectuée<br/>";
}
}
else{ //si des données manquent (pas entrées par le visiteur)
echo "Toutes les entrées n'ont pas été complétées<br/>";
}
// fin du script PHP
?>
Voilà, ça sera tout pour aujourd'hui, le visiteur est inscrit!
Demain, on verra le module d'identification! (ou comment les visiteurs vont entrer dans le jeu)
Je signale que je ne détiens pas la vérité unique et absolue, je peux me tromper. La critique peut aussi être constructive. Critiquez moi!
La quête d'Ewilan
http://easy2hack.ma-soiree.be
La quête d'Ewilan
http://easy2hack.ma-soiree.be