Remplacer toutes les occurrences HTTP d’une base de données MySQL en HTTPS

15 février 2019

Utiliser un CMS tel que WordPress a ses avantages mais aussi ses inconvénients car moult éléments y sont stockés avec leur URL et même leur protocol.
Or, avec le passage de tous les sites en HTTPS (merci Let’s Encrypt!), certains liens vers des contenus hébergés pourtant en interne sont affichés en HTTP et génèrent donc une alerte (puisque aucun contenu HTTP ne peut être contenu ou affiché depuis une page en HTTPS.

Pour remédier à cela, voici un petit script qui va scruter toutes les tables d’une base de données et, pour chacun de ses champs, remplacer les occurences de « http://www.domain.com » en « https://www.domain.com »:

  1.  
  2. //Se connecter au préalable à la base de données désirée      
  3. "SHOW TABLES""\r\n"‘:’;
  4.    
  5.     $query = "select concat(
  6.   ‘UPDATE ‘, table_name, ‘ SET ‘,
  7.   column_name,
  8.   ‘ = REPLACE(‘, column_name, ‘,  »http://www.domain.com »,  »https://www.domain.com »);’)
  9. from information_schema.columns
  10. where table_name = ‘""’;"‘.’;
  11.     }
  12. }
  13.  

(Librement adapté de: https://stackoverflow.com/questions/3145076/replace-all-fields-in-mysql)

En bonus, voici également les 2 petites lignes à ajouter dans votre .htaccess pour rediriger vos visiteurs vers la version sécurisée de votre site automatiquement:

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.domain.com/$1 [R,L]

Récupérer dans un seul champ toutes les résultats d’une recherche

30 mai 2018

Outre la concaténation de plusieurs champs d’un même résultat d’une recherche comme ceci

  1. span class= »st0″>’ ‘

Il est également possible de concaténer des champs provenant de plusieurs lignes différentes d’une même table:

  1. span class= »st0″>’, ‘‘1000’

Dans cet exemple, nous récupérons directement sous forme d’une chaîne de caractères la liste des noms des personnes ayant le code postal 1000.
Il est évidemment possible de modifier le séparateur et de spécifier l’ordre d’affichage de ces voisins:

  1. span class= »st0″>’/’‘1000’

Notez qu’il pourrait toutefois être nécessaire d’étendre la taille de cette chaîne de caractère selon vos besoins, soit de manière fixe:

  1.  

Soit en fonction de votre propre requête:

  1. span class= »st0″>’/’

Astuce donnée sur StackOverflow

Pointer un élément dans un tableau pour en extraire les éléments adjacents

20 octobre 2016

Tout est dans le titre, mais encore plus dans le code:

  1. span class= »st0″>"un", "deux", "trois", "quatre", "cinq", "six""trois"//trois
  2. //quatre
  3. //deux