Aller au contenu

Leaderboard

Popular Content

Showing content with the highest reputation on 10/03/2015 in all areas

  1. C'est le genre de musique qu'on peut trouver dans un générique ou dans un court métrage des moments guys d'un film. Personnellement j'aime bien ce style. Je précise quand même qu'il n'a pas de nom j'ai écris "funnystep" parce que certains anglais l'ont appelé ainsi Voila à quoi ça ressemble : Qu'en pensez-vous ?
    1 point
  2. Ohhhh, de la pub gratuiiite <3. Pas tout à fait! Mon projet à pour but une adaptation full-cloud des utilisations classiques d'un updater. CAD: Plus besoin de mettre à jour l'updater client, vue qu'il reçois les informations en temps réel . De plus, il est beaucoup plus paramétrable, vue que l'interface elle même est générée via du jscript (au passage, j'ai recodé le launcher minecraft avec . ~300 lignes de jscript) Tout rejoins mes projets, voyons #hype
    1 point
  3. Bonjour Une très grande nouvelle aujourd'hui, car nous avons ENORMEMENT avancé depuis mon dernier message. On a pu tester complètement notre framework et réparer beaucoup de bugs. Ce qui est une étape très importante et émouvante! Nous allons bientôt publier une première alpha du projet, donc nous sommes encore plus enthousiastes! Mais, plus important encore, NOUS AVONS BESOIN DE VOUS! En effet, nous allons lancer un stress-test dans quelques jours (la date n'est pas encore fixée) et nous avons besoin d'un maximum d'utilisateurs. Pour participer, merci de m'envoyer un mp! A bientôt!
    1 point
  4. Bonjour, voici une petite méthode pour faire de l'ajax simple sans aucun plugin : le DSL Dans l'idée nous allons apprendre à créer une page qui affiche un nombre et un bouton pour incrémenter ce nombre. Afin de stocker ce nombre, nous allons le ranger bien au chaud dans une BDD. Notre page devra donc : incrémenter ce nombre dans la BDD sans rechargement de la page mettre à jour l'affichage du nombre, toujours sans recharger la page (sinon c'est trop simple ) L'utilisation d'une BDD juste pour un nombre peut paraitre exhaustive, mais l'idée est d'appliquer la méthode avec plusieurs nombres, possédants chacun un id... on verra ça après Nous allons utiliser deux pages : index.php et incrementation.php. Voici index.php : <?php $bdd = new PDO('mysql:host=kpsoftware.fr;dbname= toto','jean-michel','fjhbqfkqsfhgsjkgbs'); ?> /* connexion à la BDD */ <div style="text-align: center;"> <span class="leNombre"> <?php $nombre=$bdd->query('SELECT nombre FROM nombre'); $nombre=$nombre->fetch(); echo $nombre['nombre']; ?> </span> /* on à notre nombre ! */ <input value="Plus un !" type="button"/> </div> <script> /* les choses sérieuses commencent ici */ function addEvent(element, event, func){ if (element.attachEvent) { element.attachEvent('on'+event, func); } else { element.addEventListener(event, func, true); } } /* ceci est notre fonction pour ajouter des évènement en javascript */ (function(){ var elements = document.getElementsByTagName('input') for (var i=0;i<elements.length;i++){ addEvent(elements[i],'click',function(e){ /* on ajoute un évènement sur les "input" */ var target=e.target || e.srcElement; if(target.value == 'Plus un !'){ /* quand un "input" est cliqué, on teste sa "value" */ /* si cette "value" est "plus un !", alors on créer un script, dont la source est une page php : incrementation.php. Il ne reste plus qu'à l'ajouter ! */ var scriptElement = document.createElement('script'); scriptElement.src ='incrementation.php'; document.body.appendChild(scriptElement); } }); } })(); /* à ce stade, incrementation.php à été exécuté, je vous invite à aller voir cette page avant de lire la fin de index.php */ function refreshNombre(newNombre){ var spanElements = document.getElementsByTagName('span'); var newSpan = document.createTextNode(' ' + newNombre + ' '); /* on créer notre nouveau span contenant le nouveau nombre */ for (var i=0;i<spanElements.length;i++){ var classSpan = spanElements[i].className; if (classSpan == "leNombre"){ /* on test pour trouver le bon span */ spanElements[i].replaceChild(newSpan.cloneNode(false),spanElements[i].firstChild); /* et là on remplace le firstChild (le texte) de spanElements[i] ( le span contenant l'ancien nombre ) par un clone de newSpan (celui créer juste au dessus contenant le nouveau nombre */ } } } </script> voici maintenant incrementation.php : <?php header("Content-type: text/javascript"); $nombre=$bdd->query('SELECT nombre FROM nombre'); $nombre=$nombre->fetch(); $newNombre=$nombre['nombre']+1; //on récupère le nombre $nombre->closecursor(); $upNbr=$bdd->prepare('UPDATE nombre SET nombre = :newNombre'); $upNbr->execute(array('newNombre'=>$newNombre)); $upNbr->closecursor(); // on l'incrémente ?> refreshNombre(<?php echo $newNombre ?>); /* on execute enfin la dernière fonction de index.php qui va se charger de rafraichir le nombre sur la page, il n'y à eu aucun reload de la part du navigateur ! */ Si les commentaires ne sont pas assez explicatifs dites-le moi ! je me ferais un plaisir de détailler tout ça ! Bien, si vous avez compris l'idée de l'appel d'une page externe via JS pour exécuter un code php sans reload de page, vous avez tout compris. Mais pour exploiter pleinement la puissance du DSL et de la BDD, il nous faudrait avoir plusieurs bouton et nombres dynamiques. Pour cela il suffirait d'envoyer au script incrementation.php une id afin de transformer la requête SQL en : $upNbr=$bdd->prepare('UPDATE nombre SET nombre = :newNombre' WHERE id= :id); $upNbr->execute(array('newNombre'=>$newNombre, 'id'=>$_GET['id'])); $upNbr->closecursor(); et on change la fonction refresh pour qu'elle contienne un paramètre en plus : l'id function refreshNombre(id,newNombre){ var spanElements = document.getElementsByTagName('span'); var newSpan = document.createTextNode(' ' + newNombre + ' '); for (var i=0;i<spanElements.length;i++){ var classSpan = spanElements[i].className; var idSpan = classSpan.substring(classSpan.lastIndexOf('a')+1); if (idSpan == id){ spanElements[i].replaceChild(newNombre.cloneNode(false),spanElements[i].firstChild); } } } avec son appel : refreshNombre(<?php echo $_GET['id']; ?>,<?php echo $newNombre; ?>); Avez-vous vu la subtilité du : var idSpan = classSpan.substring(classSpan.lastIndexOf('a')+1); ? En fait, en HTML il est impossible de mettre un nom de class commençant par un chiffre... du coup, on met un "a" devant et on utilise "substring" pour découper ce "a" on prend la dernière apparition de "a" et on ajoute 1 au rang, il ne nous reste plus que l'id ! celui-ci est donc afficher sur index.php comme ceci : <span class="a<?php echo $nombre['id'];?>"> <?php echo $nombre['nombre']; ?> </span> bien sûr la requere SQL change légèrement : SELECT * FROM nombre Voilà voilà ! DSL dans toute sa grandeur ! Si vous avez des questions n'hésitez pas !
    1 point
  5. Je vois que l'on confond souvent la différence entre une ressource GET et POST. Les requêtes GET peuvent être mise en cache. Les données sont passées dans l'URL et ont une longueur réduite (env 2kb selon le navigateur). Une donnée sensible ne doit jamais être transmise dans un GET même en HTTPS car l'URL n'est pas cryptée. Une requête GET peut être ajouté à l'historique et être mise en favoris. En Ajax et HTML5 l'historique du navigateur est pas automatique mais peut être manipulé. Exemple du chargement partiel des pages de Github. Les requêtes POST ne peuvent pas être mise en cache, dans l'historique, ou en favoris. Les données sont dans l'entête de la requête HTTP et peuvent être cryptées donc totalement sécurisées. Vous pouvez également posté la concaténation de la Bible, du Coran et des écrits du Dalai lama dans la même requête POST si le serveur en face ne rend pas son dernier soupir :-) Si vous hésitez, pour faire simple : Récupération de données : GET Envoi et traitements de données : POST Dans les 2 cas n'oubliez pas de vous protéger contre les failles de sécurités : Tuto complet de Mars (et ça repart) : Simple guide line :
    1 point
×
×
  • Créer...