# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Archives de catégorie : PHP
Ip du client quand on a un proxy type ngnix
public function getClientIP(){
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)){
return $_SERVER["HTTP_X_FORWARDED_FOR"];
}else if (array_key_exists('REMOTE_ADDR', $_SERVER)) {
return $_SERVER["REMOTE_ADDR"];
}else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) {
return $_SERVER["HTTP_CLIENT_IP"];
}
return '';
}
Récupérer une branche Git sur son local
Travailler sur une nouvelle branche du dépôt distant sur Git
git checkout --track -b origin/new_branch
Cette commande permet de créer une branche locale, liée à la branche distante
Export d’un fichier csv (empêcher la suppression du 0 dans excel)
$output.= '=MAJUSCULE("0600000000")' . ";" ;
Le fait de faire ça au lieu d’avoir dans la cellule :
6000000000
Nous allons avoir :
0600000000
Excel supprime les « zéro » qui considère inutile. Dans le fichier pourtant nous avons bien nos 0 devant.
Magento: debug des pages blanches
Il arrive parfois que sur Magento, on se retrouve avec une page blanche, sans erreur, sans log. C’est souvent dû à un problème avec les Layouts qui ne génère jamais d’erreur.
Pour trouver la source du problème, il faut donc afficher une erreur. Après quelques recherches sur notre ami G*****, j’ai trouvé deux solution complémentaire, il suffit d’exécuter le code suivant avant notre code exécuté, dans mon cas je l’ai inséré dans la fonction du module.
Afficher les erreurs PHP lié au manipulation des Layouts :
// —————————————————————————————————-
// – Display Errors
// —————————————————————————————————-
ini_set(‘display_errors’, ‘On’);
ini_set(‘html_errors’, 0);
// —————————————————————————————————-
// – Error Reporting
// —————————————————————————————————-
error_reporting(-1);
// —————————————————————————————————-
// – Shutdown Handler
// —————————————————————————————————-
function ShutdownHandler() {
if (@is_array($error = @error_get_last())) {
return(@call_user_func_array(‘ErrorHandler’, $error));
};
return(TRUE);
}
;
register_shutdown_function(‘ShutdownHandler’);
// —————————————————————————————————-
// – Error Handler
// —————————————————————————————————-
function ErrorHandler($type, $message, $file, $line) {
$_ERRORS = Array(
0x0001 => ‘E_ERROR’,
0x0002 => ‘E_WARNING’,
0x0004 => ‘E_PARSE’,
0x0008 => ‘E_NOTICE’,
0x0010 => ‘E_CORE_ERROR’,
0x0020 => ‘E_CORE_WARNING’,
0x0040 => ‘E_COMPILE_ERROR’,
0x0080 => ‘E_COMPILE_WARNING’,
0x0100 => ‘E_USER_ERROR’,
0x0200 => ‘E_USER_WARNING’,
0x0400 => ‘E_USER_NOTICE’,
0x0800 => ‘E_STRICT’,
0x1000 => ‘E_RECOVERABLE_ERROR’,
0x2000 => ‘E_DEPRECATED’,
0x4000 => ‘E_USER_DEPRECATED’
);
if (!@is_string($name = @array_search($type, @array_flip($_ERRORS)))) {
$name = ‘E_UNKNOWN’;
};
return(print(@sprintf(« %s Error in file \xBB%s\xAB at line %d: %s\n », $name, @basename($file), $line, $message)));
}
$old_error_handler = set_error_handler(« ErrorHandler »);
Créer un log qui contient la requête, l’action du controller, les handles (nameSpace des templates) qui sont appelés, ainsi que le XML du layout qui va être chargé, à insérer dans le code de votre fonction :
$this->loadLayout();
$req = Mage::app()->getRequest();
$info = sprintf(
« \nRequest: %s\nFull Action Name: %s_%s_%s\nHandles:\n\t%s\nUpdate XML:\n%s »,
$req->getRouteName(),
$req->getRequestedRouteName(), //full action name 1/3
$req->getRequestedControllerName(), //full action name 2/3
$req->getRequestedActionName(), //full action name 3/3
implode(« \n\t »,$this->getLayout()->getUpdate()->getHandles()),
$this->getLayout()->getUpdate()->asString()
);
// Force logging to var/log/layout.log
Mage::log($info, Zend_Log::INFO, ‘layout.log’, true);
Sources :
- http://magento.stackexchange.com/questions/95/debugging-layout-loading
- http://stackoverflow.com/questions/1475297/phps-white-screen-of-death
Supprimer contenu fichier vim
Pour supprimer de la ligne 10 à 20 :
:10,20d
Pour supprimer de la ligne 10 à la fin
:10,$d
Pour tout supprimer:
:0,$d
ou
:$ puis dgg
Vider le dossier session de magento
Créer le fichier de batch en étant connecté sur le ssh grâce à la commande :
vim session_cleanup.sh
Ensuite écrire le code suivant dans le fichier :
#!/bin/sh find chemin/vers/le/fichier/var/session/ -name 'sess_*' -type f -mtime +1 -exec rm -rf {} \;
Explications :
- #!/bin/sh : Définir le type de script qui est utilisé.
- /home/hifissimo/public_html/www.hifissimo.com/var/session/ : chemin vers votre dossier de session du le serveur.
- -name ‘sess_*’ : le nom de fichier ou dossier recherché.
- -type f : le type (dossier / fichier …).
- -mtime +1 : la date supérieur à 48h.
- -exec rm -rf {} \; : on lance la commande de suppression sur les résultats.
Url de la doc du find : http://pwet.fr/man/linux/commandes/find
Puis il faut ajouter les droits d’exécution du fichier sh :
chmod u+x chemin/vers/le/fichier/session_cleanup.sh
Ajouter le fichier dans les cron :
crontab -e
t
0 3 * * * /chemin/vers/le/fichier/session_cleanup.sh
Couleur dans la console linux en PHP
Voici une classe qui permet de mettre de la couleur sur du texte en console.
la classe :
class Colors { private $foreground_colors = array(); private $background_colors = array(); public function __construct() { // Set up shell colors $this->foreground_colors['black'] = '0;30'; $this->foreground_colors['dark_gray'] = '1;30'; $this->foreground_colors['blue'] = '0;34'; $this->foreground_colors['light_blue'] = '1;34'; $this->foreground_colors['green'] = '0;32'; $this->foreground_colors['light_green'] = '1;32'; $this->foreground_colors['cyan'] = '0;36'; $this->foreground_colors['light_cyan'] = '1;36'; $this->foreground_colors['red'] = '0;31'; $this->foreground_colors['light_red'] = '1;31'; $this->foreground_colors['purple'] = '0;35'; $this->foreground_colors['light_purple'] = '1;35'; $this->foreground_colors['brown'] = '0;33'; $this->foreground_colors['yellow'] = '1;33'; $this->foreground_colors['light_gray'] = '0;37'; $this->foreground_colors['white'] = '1;37'; $this->background_colors['black'] = '40'; $this->background_colors['red'] = '41'; $this->background_colors['green'] = '42'; $this->background_colors['yellow'] = '43'; $this->background_colors['blue'] = '44'; $this->background_colors['magenta'] = '45'; $this->background_colors['cyan'] = '46'; $this->background_colors['light_gray'] = '47'; } // Returns colored string public function getColoredString($string, $foreground_color = null, $background_color = null) { $colored_string = ""; // Check if given foreground color found if (isset($this->foreground_colors[$foreground_color])) { $colored_string .= "33[" . $this->foreground_colors[$foreground_color] . "m"; } // Check if given background color found if (isset($this->background_colors[$background_color])) { $colored_string .= "33[" . $this->background_colors[$background_color] . "m"; } // Add string and end coloring $colored_string .= $string . "33[0m"; return $colored_string; } // Returns all foreground color names public function getForegroundColors() { return array_keys($this->foreground_colors); } // Returns all background color names public function getBackgroundColors() { return array_keys($this->background_colors); } }
Utilisation:
<?php // Create new Colors class $colors = new Colors(); // Test some basic printing with Colors class echo $colors->getColoredString("Couleur du texte \"purple\" avec un fond \"yellow\"", "purple", "yellow") ;
Ressources Magento
Des liens utiles pour Magento :
-ressources et tutoriel moderne : http://www.creare.co.uk/blog/magento
magento requete
Supprimer les clients :
SET FOREIGN_KEY_CHECKS=0;
— reset customers
TRUNCATE hf_customer_address_entity;
TRUNCATE hf_customer_address_entity_datetime;
TRUNCATE hf_customer_address_entity_decimal;
TRUNCATE hf_customer_address_entity_int;
TRUNCATE hf_customer_address_entity_text;
TRUNCATE hf_customer_address_entity_varchar;
TRUNCATE hf_customer_entity;
TRUNCATE hf_customer_entity_datetime;
TRUNCATE hf_customer_entity_decimal;
TRUNCATE hf_customer_entity_int;
TRUNCATE hf_customer_entity_text;
TRUNCATE hf_customer_entity_varchar;
TRUNCATE hf_log_customer;
TRUNCATE hf_log_visitor;
TRUNCATE hf_log_visitor_info;
ALTER TABLE hf_customer_address_entity AUTO_INCREMENT=1;
ALTER TABLE hf_customer_address_entity_datetime AUTO_INCREMENT=1;
ALTER TABLE hf_customer_address_entity_decimal AUTO_INCREMENT=1;
ALTER TABLE hf_customer_address_entity_int AUTO_INCREMENT=1;
ALTER TABLE hf_customer_address_entity_text AUTO_INCREMENT=1;
ALTER TABLE hf_customer_address_entity_varchar AUTO_INCREMENT=1;
ALTER TABLE hf_customer_entity AUTO_INCREMENT=1;
ALTER TABLE hf_customer_entity_datetime AUTO_INCREMENT=1;
ALTER TABLE hf_customer_entity_decimal AUTO_INCREMENT=1;
ALTER TABLE hf_customer_entity_int AUTO_INCREMENT=1;
ALTER TABLE hf_customer_entity_text AUTO_INCREMENT=1;
ALTER TABLE hf_customer_entity_varchar AUTO_INCREMENT=1;
ALTER TABLE hf_log_customer AUTO_INCREMENT=1;
ALTER TABLE hf_log_visitor AUTO_INCREMENT=1;
ALTER TABLE hf_log_visitor_info AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;