Aller au contenu

Leaderboard

Popular Content

Showing content with the highest reputation on 19/08/2015 in all areas

  1. Si vous souhaitez vous lancer dans l'apprentissage du PHP, ce petit guide va vous aider à vous orienter vers les ressources dont vous aurez besoin tout au long de votre formation à ce nouveau langage. Les outils nécessaire : Un éditeur de texte (Sublim Text, Notepad++, Bloc note).Un serveur web avec PHP (xampp est un logiciel contenant tous les outils nécessaires pour ce faire).Un navigateur web (Firefox; Chrome) pour accéder à vos applications web avec éventuellement quelques outils de débug (Firebug). Sur Melinyel : Cours d'initation aux rudiments du PHP : Ce guide contient l'essentiel pour débuter en PHP. Il va vous permettre d'apprendre les rudiments de ce langage Cours : Concevez votre site web avec PHP et MySQL : Ce cours complet créé par Mathieu Nebra d'OpenClassrooms va vous permettre d'atteindre un bon niveau en PHP. Il est a noter que plusieurs mois d'apprentissage sont nécéssaire avant d'acquérir la certification finale. Tutoriels : Créer un système de Connexion / Inscription en PHPFaire son propre BB-CodeCréer un moteur de recherche de baseGestion d'image en PHP Documentations : Documentation officielle en français : Cette documentation est votre amie en toute circonstance. Elle vous permettra de comprendre certaines fonctions dont vous aurez besoin.
    1 point
  2. Bonjour, Un petit sujet assez court, récapitulatif expliquant à quoi servent les mises à jour nocturnes, que vous aurez peut-être remarqué si vous venez sur Melinyel aux heures tardives. Nous attendons de finir l'ensemble de nos travaux pour faire une annonce conséquente sur Melinyel et nos projections, néanmoins voici les avancées techniques : Comme vous l'avez tous vu et lu dans l'annonce postée, le forum est évidemment passé à la version 4 d'Invision Power Board. Cette nouvelle mouture est bien plus rapide, bien plus optimisée et extrêmement agréable à utiliser. Très déconcertant au début, vous apprécierez néanmoins les nombreuses améliorations qu'elle apporte par rapport à IPB 3 y compris en terme de stabilité. Pour nos besoins futurs, l'infrastructure de Melinyel a été augmenté (en terme de caractéristiques techniques). Il n'y a ceci dit jamais eu de problèmes de lags ou de ralentissement et nous veillons à ce qu'il n'y en ai jamais. Dans cette idée d'optimisation et de vitesse, un service de cache a été mis en place côté serveur en plus du travail de cache que fait déjà Invision Power Board. Lorsque vous visiterez une page du forum :Il y a de grande chance pour que le contenu ait été pré-généré par un autre utilisateur et que le serveur vous affiche instantanément une page statique de manière bien plus fluide.Vous êtes le premier à visiter cette page, elle sera mise en cache pour tout les autres utilisateur Néanmoins, les robots d'indexation de Google / bots parcourent continuellement le forum, la mise en cache intégrale des milliers de message devrait se faire assez rapidement. Melinyel aura bientôt de nouvelles améliorations techniques, notamment en ce qui concerne le traitement et l'optimisation d'image (ImageMagick + PHP-FPM) Nous avons encore affiner l'analyse des nouvelles inscriptions pour éviter les bots :Blocage et prévention des bots côté serveur en fonction des requêtes.Vérification via la liste des IP bannies de Melinyel.Vérification avec la base de donnée d'Invision Power Board concernant les spams.Vérification avec la base de donnée de Stop Forum Spam.Captcha2 de Google.A venir : question / réponses personnalisées (« Quel est le 2ieme mot de cette phrase ? » par exemple). Si un bot passe par la suite, c'est un humain. Un spammeur, mais un humain. Nous prévoyons d'installer le SSL sur l'ensemble du forum. Encore une fois, nous prenons notre temps pour cette nouveauté afin de pouvoir l'instaurer quand nous serons certains qu'il n'y aura pas d'erreur (exemple : image appelée sans SSL, etc...). Voilà ! Les nuits sont plus courtes que prévues, et bientôt nous attaquons notre programme concernant l'émulation !
    1 point
  3. Merci pour ce tuto, j'ai fait mon premier robot grâce aux explications de ce tuto (L293D notamment). Depuis je suis passé aux volants (multirotors) en attendant la suite de ton tuto sur les CNY71. Merci encore et bonne continuation !
    1 point
  4. Bonjour à tous, Aujourd’hui je vais vous montrer comment coder un moteur de recherche de base, vous pouvez donc aussi bien améliorer la structure de vos tables que la condition de recherche elle même. Contexte: Le moteur de recherche sert à trouver un joueur et afficher ses statistiques. Structure table: CREATE TABLE `players` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `guild` text NOT NULL, `token` int(11) NOT NULL, PRIMARY KEY (`id`) ) AUTO_INCREMENT=1 ; Le formulaire de recherche (search.php): <form action="./search.php" method="GET"> <label for="name">Nom du joueur</label> <input type="text" name="name"> <input type="submit" value="Rechercher"> </form> Je ne m'attarde pas sur le html vu que c'est un tuto php/my-sql. à la suite du code html vous allons ajouter du php: <table width="100%"> <tr> <th>#</th> <th>Nom</th> <th>Points</th> </tr> <?php $page = 0; if (isset($_GET['name']) { $page = 1; // Page par défaut affichée $np_page = 25; // Nom de résultat par page $name = addslashes($_GET['name']); // suppression faille sql $icxn = mysqli_connect("127.0.0.1", "root", "toor", "game"); //connexion mySQLi // vérification du numéro de la page si elle est indiqué dans l'url en "?page=n" if (isset($_GET['page'])&&is_numeric($_GET['page'])&& $_GET['page']>0&&$_GET['page']<9999999) $page = $_GET['page']; $fourchette = ($page - 1) * $np_page; $iquery = mysqli_query($icxn, "SELECT * FROM `players` WHERE `name` LIKE '%$name%' ORDER BY `name` ASC LIMIT $fourchette, $np_page"); while ($char = mysqli_fetch_array($iquery)) { echo <<<LINE <tr> <td>{$char['id']}</td> <td><b>{$char['name']}</b></td> <td>{$char['token']}</td> </tr> LINE; } } ?> </table> <?php if ($page!=0) { echo "page(s): "; $iquery_count = mysqli_query($icxn, "SELECT * FROM `players` WHERE `name` LIKE '%$name%'"); $count = mysqli_nums_rows($iquery_count); for ($i = 1; $i < $count/$np_page; $i++) { echo '<a href="./search.php?page='.$i.'">'.$i.'</a>&nbsp;'; } } ?> Conseil pour améliorer: -Si la table est beaucoup avec votre moteur faite une colonne de plus où il y a une simplification des caractères (ex: "é" => "e"; "â" => "a"; etc). -Attention aux caractères html utilisiez la fonction strip_tag() ou autre sur ce qui causer des faille xss par exemple si le client peu choisir le nom de son personnage et mettre du code html dedans c'est mort. -Supprimez les caractères "%" et "_" si ils sont présent dans $name et instauré une limite au niveau du nombre de caractères pour la recherche exemple: minimum 4 caractères, pour évites de charger trop de chose. Version pdo pour les gens qui aiment la pdo: <table width="100%"> <tr> <th>#</th> <th>Nom</th> <th>Points</th> </tr> <?php $page = 0; if (isset($_GET['name']) { $page = 1; // Page par défaut affichée $np_page = 25; // Nom de résultat par page $name = $_GET['name']; $cxn = new PDO('mysql:host=127.0.0.1;dbname=game', 'root', 'toor'); //connexion mySQL // vérification du numéro de la page si elle est indiqué dans l'url en "?page=n" if (isset($_GET['page'])&&is_numeric($_GET['page'])&& $_GET['page']>0&&$_GET['page']<9999999) $page = $_GET['page']; $fourchette = ($page - 1) * $np_page; $query = $cxn->prepare("SELECT * FROM players` WHERE `name` LIKE '%:name%' ORDER BY `name` ASC LIMIT :fourchette, :npp"); $query->bindValue(':name', $name, PDO::PARAM_STR); $query->bindValue(':fourchette', $fourchette, PDO::PARAM_INT); $query->bindValue(':npp', $np_page, PDO::PARAM_INT); $query->execute(); while ($char = $query->fetch()) { echo <<<LINE <tr> <td>{$char['id']}</td> <td><b>{$char['name']}</b></td> <td>{$char['token']}</td> </tr> LINE; } } ?> </table> <?php if ($page!=0) { echo "page(s): "; $query_count = $cxn->prepare("SELECT * FROM `players` WHERE `name` LIKE '%:name%'"); $query_count->bindValue(':name', $name, PDO::PARAM_STR); $query_count->execute(); $count = $query_count->rowCount(); for ($i = 1; $i < $count/$np_page; $i++) { echo '<a href="./search.php?page='.$i.'">'.$i.'</a>&nbsp;'; } } ?> Bonne programmation à tous! Cordialement, Mars073
    1 point
×
×
  • Créer...