L'héritage important

1 April 2020

.content {
    height: inherit !important;
}

Je ne sais pas à quoi cela peut bien servir. Mais c’est important !


if if if

14 February 2020

if-if-if

Quel genre de psychopathe écrit ce genre de code et ne ce demande pas s’il n’y a pas un problème ?


Wtf javascript ?

4 February 2019

Vous reprendrez bien un peu de WTF en Javascript ?

wtf javascript comment


Clé aléatoire

24 February 2017

  $boundary = "-----=".md5(uniqid(rand())); // clé aléatoire de limite

Quand tu veux absolument faire un truc unique, mais que tu te rate de peux.

Explication :

La fonction md5 une fonction de hachage, qui pourrait alors créer des collisions !
De faite, une chaine MD5 ne peut être considérée comme unique…


Anti-hack des arguments

23 February 2017

//-- anti hack des arguments --------------------------------------
function check_arg($key,$type='s',$pardefaut='',$len=80) {

 // change l'odre de $_REQUEST[$key]

 if($key=="email") {
   if(isset($_GET[$key] )) { $arg = $_GET[$key]; }
   else {
     if(isset($_POST[$key] )) $arg = $_POST[$key];
     else
       if(isset($_COOKIE[$key] )) $arg = $_COOKIE[$key];
       else if(isset($_SESSION[$key] )) $arg = $_SESSION[$key];
     else $arg=$pardefaut;
   }
 }
 else {
  if(isset($_REQUEST[$key])) $arg = $_REQUEST[$key];
  else $arg=$pardefaut;
 }

  switch ($type) {
    case 's': // string
        $arg = substr($arg,0,$len);
      break;
    case 'sd': // string database
      $trans = array("%" => "", "," => "", ";" => "");      // anti hack db
      $arg =  trim(strtr(substr($arg,0,$len),$trans));
      break;
    case 'n':  // nombre
      $arg = $arg + 0;
    default:
      $arg = trim($arg);
  }

  return($arg);
}

Si quelqu’un comprend ce qui ce passe, qu’il n’hésite pas à m’éclairer… Mention spécial pour ce passage :\

 $trans = array("%" => "", "," => "", ";" => "");       // anti hack db
 $arg =  trim(strtr(substr($arg,0,$len),$trans));

Quand tu n'as pas comprit le principe des clés primaire en AUTO_INCREMENT

28 October 2016

J’ai trouvé ceci dans le code d’un plugin Joomla.
Je ne comprenais pas pourquoi j’avais une erreur de clé primaire dupliquée. Voilà pourquoi :

$db->setQuery("SELECT MAX(  `extension_id` ) as id FROM  `#__extensions` WHERE  `type` =  \"plugin\" AND (`extension_id` > 8000 AND `extension_id` < 10000)");
$id = $db->loadResult();
if (empty($id) or $id='') $id = 9998;
$id = $id + 1;
// Enable mod_
$db->setQuery("INSERT INTO #__extensions (extension_id, name, type, element, folder, enabled, access, protected, manifest_cache, params)
VALUES (".((int)$id).", '******', 'plugin', 'cp', 'system', 1, 1, 1, '{\"name\":\"******\",\"type\":\"plugin\",\"creationDate\":\"December 2006\",\"author\":\"*******\",\"copyright\":\"**********\",\"authorEmail\":\"********\",\"authorUrl\":\"*******\",\"version\":\"3.0.0\",\"description\":\"*******_COPYRIGHT_DESCRIPTION\",\"group\":\"\"}', '{}')");
$db->query();

Visiblement, le concept de clé primaire en AUTO_INCREMENT est - j’espère plutôt “était” - inconnu du créateur de ce plugin.


Formidablement illisible...

22 September 2016

J’ai trouvé ce bout de code dans le plugin formidable de SPIP, je cherchais un moyen d’exporter les réponses d’un formulaire.

Franchement comment savoir ce que contient $exporter ? Ça pourrait être n’importe quoi…
Je suis pas toujours super chaud pour mettre des fonctions dans des variables. S’il est possible de faire une structure de if … else, je pense que c’est plus souhaitable. Bien sur, il y a beaucoup de cas ou c’est très pratique, mais ici, j’ai comme un doute.

<?php
if ($id_formulaire > 0
    and $type_export
    and $types_echange = echanges_formulaire_lister_disponibles()
    and $exporter = $types_echange['exporter'][$type_export]
){
    $exporter($id_formulaire);
}