php

[PHP] Sécuriser CKFinder dans Zend Framework

CKFinder est le filemanager de CKEditor, lors de sa configuration, il faut le sécuriser, pour cela, il a une fonction "CheckAuthentication()" qui retourne false par défaut.

dans le cadre d'un zend framework, le sécurisation peut se faire comme suit :

session_start();
function CheckAuthentication()
{
	// WARNING : DO NOT simply return "true". By doing so, you are allowing
	// "anyone" to upload and list the files in your server. You must implement
	// some kind of session validation here. Even something very simple as...

	// return isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];

	// ... where $_SESSION['IsAuthorized'] is set to "true" as soon as the
	// user logs in your system. To be able to use session variables don't
	// forget to add session_start() at the top of this file.

	//return true;

    return !empty($_SESSION['Zend_Auth']['storage']);
}

[PHP]Faire un str_replace sur tout un tableau

voici la fonction :

function str_replace_array($search, $replace, $subject) {
    if(is_array($subject)) {
        foreach($subject as $index => $val) {
            $subject[$index] = str_replace_array($search, $replace, $val);
        }
        return $subject;
    } else {
        return str_replace($search, $replace, $subject);
    }
}

Tags:

trim array

en PHP 5.2 :

function trimArray(&$input){
    return is_array($input) ? $input = array_map('trimArray', $input) : trim($input);
}
trimArray($mon_tab);

en PHP 5.3 :

array_walk_recursive($mon_tab, function (&$val) {
    $val = trim($val);
});

Tags:

[PHP] Supprimer les accents des caractères accentués

nous avons vu dans un précédent snippet comment remplacer les caractères accentués d'une chaine par leur équivalent html.

ici nous allon voir une petite fonction pour les remplacer par leurs équivalents sans les accents :)

function removeAccents($string)
    {
        return iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string);
    }

à noter un fonctionnement bizarre sous windows, donc attention, fonctionnel sous Linux seulement.

si vous voulez un tuto complet sur le sujet, un bon article ici : http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-acc...

EDIT :
Après quelques tests plus poussés, iconv semble un peu à la ramasse, rien ne vaut une bonne vielle fonction maison pour faire le boulot :

function _removeAccents ($text) {
        $alphabet = array(
            'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A',
            'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I',
            'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U',
            'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss','à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a',
            'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i',
            'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u',
            'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f',
        );

        $text = strtr ($text, $alphabet);

        // replace all non letters or digits by -
        $text = preg_replace('/\W+/', '-', $text);

        return $text;
    }

[PHP] calcul de l'age à partir de la date de naissance

tout est dans le titre :)

getAgeFromBirthday($birthday) {
      list($annee, $mois, $jour) = split('[-.]', $birthday);
      $today['mois'] = date('n');
      $today['jour'] = date('j');
      $today['annee'] = date('Y');
      $annees = $today['annee'] - $annee;
      if ($mois >= $today['mois']) {
        if ($mois == $today['mois']) {
          if ($jour > $today['jour']) $annees--;
        } else {
          $annees--;
        }
      }
      return $annees;
    }

Tags:

Pages

Subscribe to RSS - php