Accueil

jQuery - Utiliser des caractères spéciaux dans les noms des sélecteurs

Wakonda - jQuery Posté le 9 avril 2018

Si vous tentez d'utiliser certains caractères spéciaux en jQuery, par exemple dans vos noms de sélecteur, cela engendrera une erreur.

Exemple, le code suivant ...

$("#test=").attr("id");

... produira une erreur comme celle-ci :

Uncaught DOMException: Failed to execute '$' on 'CommandLineAPI': '#test=' is not a valid selector.
    at <anonymous>:1:1

En effet, jQuery interdit un certain nombre de caractères dans le nom des sélecteurs :

#;&,.+*~':"!^$[]()=>|/

Heureusement, il est possible de passer outre. Pour cela, il suffit simplement de les échapper en utilisant un double backslash. 

Pour vous faciliter la tâche, voici une regex que vous pourrez utiliser :

/([ #;&,.+*~\':"!^$[\]()=>|\/@])/

Ainsi, pour rendre fonctionnel l'exemple précédent, on utilisera le code suivant :

$("#test=".replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,'\\$1')).attr("id");

 

Lire ...

Linux - Donner les droits d'accès à un dossier

Wakonda - Linux Posté le 8 avril 2018

Pour donner les droits d'accès à un dossier, vous pouvez utiliser la ligne de commande suivante :

sudo chown -R user:user /path/to/folder

Il faut, bien entendu, adapter cette commande à votre situation.

Si vous ne connaissez pas le nom de l'utilisateur actuellement, lancez la commande suivante :

whoami

 

Lire ...

RoR - A server is already running

Wakonda - Ruby on Rails Posté le 10 mars 2018

Après avoir mis en ligne l'un de mes sites Internet développé en Ruby On Rails, je suis, un jour, tombé sur une erreur  du serveur. C'était la suivante :

A server is already running. Check /tmp/pids/server.pid

Pour la résoudre, il existe deux manières très simples.

La première consiste à tuer le processus incriminé :

kill -9 $(lsof -i tcp:3000 -t)

Pour la seconde, il suffit simplement de supprimer le fichier "server.pid" :

rm server.pid

 

Lire ...

WampServer + Php - Installer XDebug

Wakonda - PHP Posté le 10 mars 2018

Pour installer XDebug sous WampServer 3 et PHP 7.1.*, commencez par vous rendre sur le site Internet de XDebug. Puis cliquez sur "download". Choisissez la version qui correspond à votre installation et téléchargez la DLL. Si vous ne savez pas laquelle choisir, affichez un phpinfo() sur votre navigateur web préféré, sélectionnez tout et copiez le. Collez-le dans le champ texte présent à ce lien : https://xdebug.org/wizard.php. Cliquez enfin sur le bouton "Analyse my phpinfo() output". Ce petit programme vous indiquera quelle version vous devez choisir.

Une fois le fichier DLL téléchargé, coupez-le et collez-le dans le dossier "ext" là où se trouve votre PHP (C:\wamp64\bin\php\php7.1.9\ext, par exemple). Ouvrez maintenant votre fichier php.ini et ajoutez les lignes suivantes à la fin de ce dernier :

[xdebug]
zend_extension = c:\wamp64\bin\php\php7.1.9\ext\php_xdebug-2.6.0-7.1-vc14-x86_64.dll

xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="c:/wamp64/tmp"
xdebug.show_local_vars=0

Adaptez la configuration ci-dessus à votre installation.

Une fois ces étapes terminées, redémarrez Wamp et le tour est joué.

Remarque :

Si vous travaillez sous Symfony 4.* en dev, il vous faudra également redémarrer le serveur à l'aide de la commande suivante :

 php bin/console server:run

 

Lire ...

MySQL - Appliquer un fichier MySQL en ligne de commande

Wakonda - MySQL Posté le 4 mars 2018

Habituellement, lorsque l'on souhaite importer une table dans une base de données depuis un fichier SQL, on peut utiliser la commande suivante :

mysql -u <username> -p <databasename> < <filename.sql>

Toutefois, comment fait-on si l'on souhaite appliquer un fichier SQL qui contient les commandes SQL servant aussi à créer les base de données ? Pour se faire, il faut commencer par se connecter à MySQL (toujours en ligne de commande) :

mysql -u root -p

Le paramètre "root" représente, bien évidemment, le nom de l'utilisateur. Une fois connecté, il suffit de lancer la commande suivante :

source /path/to/sql/file/file.sql

 

Lire ...

Erreur : "this is incompatible with sql_mode=only_full_group_by"

Wakonda - MySQL Posté le 21 janvier 2018

Cette erreur apparaît depuis la version 5.7 de MySQL. Avant cette version, MySQL autorisait de ne pas avoir les mêmes colonnes présentes dans le SELECT et dans le GROUP BY. Maintenant, et pour se rapprocher des comportements des autres SGBDR, MySQL refuse ce comportement.

Pour pallier à ce problème, deux options s'offrent à nous : soit faire en sorte d'avoir les mêmes colonnes dans le SELECT et le GROUP BY, soit désactiver l'option "only_full_group_by" et ainsi retrouver le comportement d'avant.

Pour désactiver l'option, il suffit de lancer la requête SQL suivante :

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

 

Lire ...

MySQL - Supprimer la totalité des tables d'une base de données sans erreur

Wakonda - MySQL Posté le 21 janvier 2018

Pour supprimer l'ensemble des tables d'une base de données sans qu'il y ait d'erreurs (notamment les erreurs provoquées par les contraintes de clés étrangères), il suffit simplement de lancer la requête suivante :

SET FOREIGN_KEY_CHECKS = 0;
SET GROUP_CONCAT_MAX_LEN=32768;
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables
  FROM information_schema.tables
  WHERE table_schema = (SELECT DATABASE());
SELECT IFNULL(@tables,'dummy') INTO @tables;

SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET FOREIGN_KEY_CHECKS = 1;

 

Lire ...

PHP - Augmenter la taille d'upload des fichiers grâce au HTACCESS

Wakonda - Apache, PHP Posté le 21 janvier 2018

Il existe plusieurs techniques pour augmenter la taille maximale de téléchargement en PHP. La plus classique est, bien entendu, de passer par le fichier php.ini. Il est également possible d'utiliser un fichier .htaccess.

Pour ce faire, créez-le (ou modifiez-le si vous en avez déjà un) et ajoutez-y les deux lignes suivantes :

php_value post_max_size 30M
php_value upload_max_filesize 30M

 

Lire ...

Filtrer sur la totalité des types d'espace en PHP

Wakonda - PHP Posté le 14 janvier 2018

« \s » permet de filtrer le caractère d'espace. Seulement, il existe une multitude de types de caractère représentant l'espace et ce filtre ne prend pas en compte les caractères au-delà de la table ASCII (donc supérieur à 128).

Parmi les différents types d'espace, on retrouve les suivants :

  • U+0020 Space
  • U+00A0 No-break space
  • U+1680 Ogham space mark
  • U+180E Mongolian vowel separator
  • U+2000 En quad
  • U+2001 Em quad
  • U+2002 En space
  • U+2003 Em space
  • U+2004 Three-per-em space
  • U+2005 Four-per-em space
  • U+2006 Six-per-em space
  • U+2007 Figure space
  • U+2008 Punctuation space
  • U+2009 Thin space
  • U+200A Hair space
  • U+202F Narrow no-break space
  • U+205F Medium mathematical space
  • U+3000 Ideographic space
  • U+0009 Horizontal tab
  • U+000A Linefeed
  • U+000B Vertical tab
  • U+000C Formfeed
  • U+000D Carriage return
  • U+0085 Next line
  • U+0009 Horizontal tab
  • U+000A Linefeed
  • U+000C Formfeed
  • U+000D Carriage return

En PHP, pour qu'il soit tous pris en compte sans exception, il faudra utiliser le filtre « /\s/u ». « /u » permet de prendre en compte les caractères UTF-8.

Par exemple, si l'on souhaite supprimer la totalité des espaces d'une chaîne de caractères, on pourra utiliser le code suivant :

$new_string = preg_replace('/\s/u', '', $old_string);

Pour plus d'explication

Lire ...

Installer Certbot sous Debian et Apache

Wakonda - Apache, Linux Posté le 28 décembre 2017

Pour celles et ceux qui ne le savent pas "Certbot" est un outil développer par l'EFF (Electronic Frontier Foundation) permettant d'obtenir, en une simple ligne de commande, un certificat SSL gratuit de Let's Encrypt.

Sous Debian 8 (Jessie), l'installation se fait par une simple ligne de commande :

sudo apt-get install python-certbot-apache -t jessie-backports

Toutefois, en tentant de l'installer, il se peut que vous tombiez sur l'erreur suivante :

Reading package lists... Done E: The value 'jessie-backports' is invalid for APT::Default-Release as such a release is not available in the sources

Pour remedier à cela, il suffit de modifier le fichier "/etc/apt/sources.list" et d'y ajouter la ligne suivante :

deb http://ftp.debian.org/debian jessie-backports main

Pour que cela soit pris en compte, il faut ensuite lancer :

sudo apt-get update

Pour installer certbot-auto, lancez successivement les trois commandes suivantes :

user@webserver:~$ wget https://dl.eff.org/certbot-auto
user@webserver:~$ chmod a+x ./certbot-auto
user@webserver:~$ ./certbot-auto --help
Lire ...

Lister l'ensemble des routes en Ruby on Rails

Wakonda - Ruby on Rails Posté le 28 décembre 2017

Pour lister la totalité des routes de votre site Internet développée en Ruby on Rails, il suffit simplement de lancer la commandes (après vous êtes placés à la racine de votre projet :

rake routes

 

 

Lire ...

Gérer une base SQLite avec Adminer

Wakonda - PHP, SQLite Posté le 17 décembre 2017

Adminer est une application web offrant une interface graphique et permettant de gérer un grand nombre de SGBD différents tels que MySQL, SQLite, PostgreSQL ou encore Oracle. Il est très simple d'installation et d'utilisation. En effet, il se présente sous la forme d'un simple et unique fichier PHP qu'il suffit de télécharger et de coller dans votre serveur web.

Pourtant, nativement, il est nécessaire de surcharger les méthodes "login" et "databases" pour pouvoir gérer ses bases SQLite. Voici un exemple de code pour ceci :

<?php
function adminer_object() {
    class AdminerSoftware extends Adminer {
        function login($login, $password) {
            global $jush;
            if ($jush == "sqlite")
                return ($login === 'admin') && ($password === 'changeme');
            return true;
        }
        function databases($flush = true) {
            if (isset($_GET['sqlite']))
                return ["/path/to/first.db", "/path/to/second.db"];
            return get_databases($flush);
        }
    }
    return new AdminerSoftware;
}
include "./adminer-4.2.5.php";

Bien entendu, dans le code ci-dessus, il vous faudra remplacer le chemin vers votre fichier Adminer ainsi que les chemins vers votre ou vos bases de données (le retour de la fonction "databases".

Pour télécharger Adminer

Lire ...

Rechercher

Tags

Publicité

Suivez-nous

Aidez-nous !


Loading…
Loading the web debug toolbar…
Attempt #