Unable to get value of the property 'closed': object is null or undefined lors du login en local avec Internet Explorer
Si vous souhaitez développer un site qui met en place de l’authentification Facebook, vous allez surement être confronté à ce problème sous Internet Explorer.
En effet, la configuration par défaut d’Internet Explorer pour les sites intranet pose problème lors de l’authentification via le SDK Javascript de Facebook.
Le code :
<div id="fb-root"></div>
<pre>
<script type="text/javascript">// <![CDATA[
window.fbAsyncInit = function () {
FB.init({
appId: 'VOTRE_APPID',
channelUrl: '//CHANNEL_URL', // Channel File
status: true, // check login status
// enable cookies to allow the server to access the session
cookie: true,
xfbml: true // parse XFBML
});
// whenever the user logs in, we tell our login service
FB.Event.subscribe('auth.login', function () {
alert('OK');
});
};
(function () {
var e = document.createElement('script');
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
} ());
// ]]></script>
<fb:login-button perms="email" size="large"></fb:login-button>Sous Firefox ou encore Chrome, lorsque vous cliquez sur le bouton de connexion, un pop-up apparait vous demandant de vous authentifier sur Facebook. Après la connexion le pop-up se ferme et le message “OK” apparait à l’écran.
continuer la lectureCorriger l’erreur de getimagesize() de PHP causée par un .htaccess
L’utilisation de la fonction getimagesize() en php est très pratique pour récupérer les dimensions d’une image passée en paramètre.
Si votre site est protégé par un .htaccess qui restreint l’accès à certaines personnes, vous devez avoir une erreur du type :
Warning: getimagesize(http://www.domain.com/images/fleur.png): failed to open stream: HTTP request failed! HTTP/1.1 401 Authorization Required in /home/domain.com/httpdocs/page.php on line 36
Comme l’erreur l’indique, il y a un problème d’autorisation pour accéder à l’image. Pour corriger cette erreur, il suffit de spécifier le **nom d’utilisateur **et le mot de passe nécessaires pour le .htaccess.
continuer la lecturePlayer video flash personnalisé
Dans le cadre d’un projet web, j’avais besoin d’un player video en flash assez beau pour éviter de devoir passer Youtube ou DailyMotion.
Après quelques recherches je suis tombé sur ce site qui propose un player qui prend les videos en .flv et qui est entièrement personnalisable via une multitude de petits paramètres (mode plein écran, liste de lecture, taille du player, etc…).
Il suffit donc de télécharger le player ici, de l’installer sur votre site. Via le “Generator” disponible ici, personnalisez votre player et copier/coller ensuite le code généré sur votre site web.
Lier une base de données et un ASPxGridView avec Linq To SQL
Suite de mes articles sur les technologies .NET et DXperience. Le but est ici de lier efficacement une base de données à un ASPxGridView grâce à **Linq To SQL **graphiquement.
Petite précision, mon OS et mon IDE (Visual studio) sont en anglais, si le votre est en français, vous n’aurez pas exactement les mêmes mots, mais vous vous y retrouverez sans problème.
Voici les étapes et quelques explications concernant le screencast.
continuer la lectureGénérer de la documentation pour PHP
La documentation relative à un ensemble de classes dans un langage de programmation est très importante car elle permet à d’autres personnes de comprendre rapidement l’architecture de votre application sans avoir à parcourir tous les fichiers. C’est un gain de temps appréciable !
Cette documentation peut également vous être utile, si vous abandonnez le développement d’un projet pendant quelques temps et que vous souhaitez vous y replonger.
Heureusement des outils existent pour générer automatiquement de la documentation. Un ensemble de paramètres est à inscrire dans votre code, l’outils de documentation récupérera ces éléments pour générer un document en HTML, PDF, etc…
continuer la lectureCacher les erreurs PHP sur n’importe quel hébergement (mutualisé ou dédié)
En phase de développement, l’affichage des erreurs est un gain de temps non négligeable, en revanche sur un site en production, il est fortement conseillé de supprimer l’affichage des erreurs PHP pour des raisons de sécurité.
Exemple d’erreur :
Fatal error: require() [function.require]: Failed opening required ‘WS_RdOOT/lib/comment.class.php’ (include_path=’.:/Applications/MAMP/bin/php5/lib/php’) in/Applications/MAMP/htdocs/fds_local/index.php on line 8
Ce simple message peut donner des informations sur l’architecture de votre application (site web) et ainsi faciliter le travail des pirates.
continuer la lectureAmérliorer les performances de WordPress sur les mutualisés OVH
Une petit astuce rapide à mettre en place venant du blog du spécialiste Worpress, Amaury Balmer. Cette astuce ne concerne que les personnes disposant d’un blog sous Wordpress et d’un hébergement mutualisé chez OVH.
L’astuce consiste à modifier le fichier .htaccess à la racine de votre blog et d’y rajouter les ligne suivantes :
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5Ces ligne auront pour effet de désactiver REGISTER_GLOBALS et les MAGIC_QUOTES, de passer de la version 4 (par défaut) à la version 5 de PHP et d’activer le ZEND_OPTIMIZER pour un gain de rapidité.
continuer la lectureUtiliser cURL au lieu de file_get_contents() avec TinyURL en PHP
TinyURL est un service permettant de raccourcir les URL afin de pouvoir les publier sur des sites comme Twitter qui ne permettent des messages que 140 caractères maximum.
Par exemple https://www.aymericlagier.com peut être raccourci en http://tinyurl.com/ms75l4. Pratique pour les URL à rallonge.
L’API de TinyURL permet de générer des URL raccourcies automatiquement via un script PHP. Pour obtenir l’URL raccourcie, il suffit de faire :
<?php
$url = file_get_contents(‘http://tinyurl.com/api-create.php?url=https://www.aymericlagier.com’);
echo $url;
?>
Cependant sur certains hébergements comme 1&1, la fonction file_get_contents() est désactivée, ce qui rend impossible l’utilisation du script ci-dessus. Il existe une solution pour contourner le problème, cURL :
Changer la configuration de PHP et Apache sur les mutualisés 1&1
Après l’article sur la modification de la configuration PHP sur les mutualisés OVH ici voici un article sur la configuration des mutualisés 1&1.
En effet, par défaut PHP est en version 4 ce qui peut poser des problèmes pour l’utilisation entre autres des try/catch ou de la librairie SimpleXML. Pour mettre PHP en version 5 par défaut, il faut rajouter à la racine de votre serveur un fichier .htaccess avec la ligne suivante :
continuer la lecture[PHP] Changer la configuration PHP des mutualisés OVH
Sur les offres mutualisés OVH (http://www.ovh.com), il n’est pas possible de modifier les fichiers de configuration comme le célébre php.ini.
Certaines limitations découlent de ce problème, comme le version par défaut de PHP qui est 4. Pour utiliser des fichiers développés en PHP 5 il faut donc par défaut mettre l’extension .php5.
Ou encore le paramètre _r__egister_globals _qui est à On par défaut et qui peut ouvrir la porte à certaines failles de sécurité ou bugs. En effet, si un formulaire utilise la variable _$POST[‘id’] et qu’une variable de votre code se nomme $id, les 2 variables ne feront qu’une. Concernant la sécurité, comme $POST['id'] = $id et que $_GET['id'] = $id aussi, alors $_POST['id'] = $_GET['id']. Un utilisateur mal intentionné peut donc aisémment injecter des données dans votre script.