Accueil
jQuery - Utiliser des caractères spéciaux dans les noms des sélecteurs
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
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
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
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
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"
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
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
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
« \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);
Lire ...
Installer Certbot sous Debian et Apache
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
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
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".
Lire ...Rechercher
Tags
Articles récents
- Quel est le but de l'attribut "role" en HTML ?
- Changer la couleur de l'espace réservé (placeholder)
- Attention à cet email d’arnaque !
- Supprimer un fichier d'un référentiel Git sans le supprimer du système de fichiers local
- JS - Récupérer le dernier élément d'un tableau
- JS - Prévisualiser une image avec son upload
- PHP - Convertir une chaîne de caractères en un booléen
- PHP : Vérifier si une session a déjà été démarrée
- Créer un APK ou un AAB en ligne de commandes
- L'opérateur !! en Javascript