Elément cliqué en js

Posté le jeu. 30 juin 2011 • Tags : javascript, code

Pour savoir quel élément est cliqué j’utilise ce petit bout de javascript :

function checkclick(e) {
    e = e || window.event;
    var o = e.target || e.srcElement;
    console.log(o);
}
document.onclick=checkclick;

Pratique pour faire du débug.


Patch & diff

Posté le lun. 30 mai 2011 • Tags : diff, patch, cli, linux

Patch permet de “patcher” un fichier, dossier, projet ! Pratique lorsque vous distribuez du code et que vous voulez le mettre à jour. Comment l’utiliser ? Dans un premier temps nous allons faire un différentiel de notre version actuelle du projet et de la nouvelle version (celle patchée). :

diff -u version1.php version2.php > mon_patch

Notre fichier de patch est “mon_patch” si vous ouvrez celui-ci vous aurez le différentiel entre les deux fichiers. Comment le lire ? Les lignes avec des + devant sont les nouvelles lignes celles avec des - sont celles à supprimer. Ce n’est pas plus difficile que ça ! Maintenant j’applique mon patch sur mon fichier version1.php grâce à la commande suivante :

Lire la suite


Split & Vsplit dans vim

Posté le dim. 29 mai 2011 • Tags : vim, file

Très souvent lorsque j’utilise Vim je sépare ma fenêtre en 2,3,4 pour pouvoir ouvrir plusieurs fichiers en même temps.

Il y a 2 méthodes :

  • la division de la fenêtre horizontale en utilisant :

:split (ou :new) puis : :e le_fichier_a_ouvrir

  • la division de la fenêtre verticalement en utilisant :

:vsplit puis : :e le_fichier_a_ouvrir

Et comme lors de l’utilisation du diff (CTRL + W puis W) pour changer de fenêtre (gauche à droite ou droite à gauche ou haut en bas ou bas en haut) ou bien en utilisant (CTRL + W puis une flèche directionnelle).

Lire la suite


Différences entre des fichiers avec Vim

Posté le jeu. 19 mai 2011 • Tags : vim, diff, cli

J’ai souvent besoin de voir les différences entre plusieurs fichiers… J’utilise souvent la commande diff dans un terminal, mais mon éditeur texte favori “Vim” sait aussi très bien faire un différentiel. Utilisation avec le terminal :

diff fichier1 fichier2

Celui-ci retournera les différences directement dans le terminal (pas pratique pour l’édition).

Utilisation avec vim :

vim -d fichier1 fichier2

Ensuite il suffit d’utiliser (CTRL + W puis W) pour changer de fenêtre (gauche à droite ou droite à gauche) ou bien en utilisant (CTRL + W puis flèche de droite ou gauche) suivant la direction où on veut aller.

Lire la suite


Migration d'une base de données Mysql

Posté le sam. 14 mai 2011 • Tags : mysql, linux, sql

Pour faire mes migrations de base de données j’utilise en ligne de commande mysqldump et mysql.

Dans un premier temps je sauve ma base database dans le fichier dump.sql J’utilise l’utilisateur mysql : utilisateur avec son mot de passe p4ss :

Au lieu de :

mysqldump -u utilisateur -p p4ss database > dump.sql
mysqldump -u utilisateur -p database > dump.sql

⚠️ À ne pas reproduire : ne mettez jamais le mot de passe en argument de la commande (visible dans l’historique du shell et dans ps aux) ; d’ailleurs -p p4ss avec un espace ne le passe même pas, p4ss serait lu comme nom de base. Laissez -p seul pour le prompt interactif, ou utilisez un ~/.my.cnf en 600.

Lire la suite


Petit tips pour les utilisateurs de VIM et PHP

Posté le mer. 13 avril 2011 • Tags : php, vim, cli

Lorsque je code en PHP, pour tester s’il y a des erreurs généralement dans la console je tape la commande :

php -l fichier_a_tester.php

Lorsque j’utilise VIM j’utilise la même commande (sans sortir de vim). Pour la faire il suffit de faire “ESC” pour passer en mode commande de VIM puis :

:!php -l %

Ce qui produira exactement le même résultat qu’en console.

:! (permet l’execution d’une commande système dans vim)

Lire la suite


Surround avec Vim

Posté le sam. 9 avril 2011 • Tags : vim, html

J’ai ajouté quelques plugins dans ma configuration de Vim dont : surround.vim.

Ce plugin permet d’ajouter des balises ou tout autre élément autour d’un texte.

Comment l’utiliser ?

VS<b> permet d’ajouter les balises <b> et </b> avant et après la ligne courante et d’indenter celle-ci.

vims<a> permet d’ajouter le tag <a> </a> autour du mot sur lequel vous vous trouvez.

cst<b> permet de changer le tag <a> (change surround tag) par <b>

Lire la suite


T_PAAMAYIM_NEKUDOTAYIM

Posté le mar. 8 mars 2011 • Tags : php

Voilà à quoi correspond cette erreur pour ceux qui demandent :

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /path/file.php on line 3695

Le Paamayim Nekudotayim est l’opérateur de résolution de portée.

Dans la doc PHP :

L’opérateur de résolution de portée (aussi appelé Paamayim Nekudotayim) ou, en termes plus simples, le symbole “double deux-points” (::), fournit un moyen d’accéder aux membres statics ou constants.


Protection de fichier tel qu'un htaccess en PHP

Posté le ven. 11 février 2011 • Tags : php, code

Faire un système de protection (tel que htaccess) direct dans un fichier PHP :

Au lieu de :

if (!empty($_SERVER["PHP_AUTH_USER"]) &&
$_SERVER["PHP_AUTH_USER"] == "login" &&
$_SERVER["PHP_AUTH_PW"] == "password") {
<?php
// Identifiants stockés dans un fichier de config non versionné (hors du repo)
$config = require __DIR__ . '/auth-config.php'; // ['user' => 'login', 'pass_hash' => password_hash('password', PASSWORD_DEFAULT)]

if (!empty($_SERVER["PHP_AUTH_USER"]) &&
hash_equals($config['user'], $_SERVER["PHP_AUTH_USER"]) &&
password_verify($_SERVER["PHP_AUTH_PW"], $config['pass_hash'])) {
    // code protégé ici
} else {
    header('WWW-Authenticate: Basic realm="Restricted area"');
    header('HTTP/1.0 401 Unauthorized');
    exit('Access Denied');
}

⚠️ À ne pas reproduire : ne jamais coder les identifiants en dur, ils finissent versionnés et exposés dans le repo. Sortez-les dans une config non versionnée et comparez un hash avec hash_equals() / password_verify() ; le == sur un secret est aussi sensible aux attaques par timing.

Lire la suite


jQuery attr() avec onclick par click()

Posté le ven. 7 janvier 2011 • Tags : code, jquery, javascript

Après avoir perdu 2h… J’ai découvert que la méthode attr() de jQuery fonctionne pas avec l’attribut “onclick”…

Edit : Avec jQuery pour modifier le contenu d’un onclick il faut faire .attr(‘onClick’,‘valeur’) ou faire de la façon suivante.

Remplacer donc :

var mavar = 'fonctionAffichage();';
$("#code").attr("onclick","mavar");

Par ce que je conseillais à l’époque… mais qu’il ne faut surtout pas faire :

var mavar = 'fonctionAffichage();';
$("#code").removeAttr('onclick').click(function() { eval(mavar); });

⚠️ Il ne faut pas utiliser eval() : exécuter une chaîne de code, c’est une porte ouverte à l’injection ou au XSS dès que cette chaîne contient la moindre donnée non maîtrisée. On attache une référence de fonction, jamais une chaîne à évaluer, et on oublie au passage l’attribut onclick inline.

Lire la suite