mercredi 27 février 2008
27
02
2008
Vous avez des fichiers à protéger et une interface d'administration en parallèle avec protection au backoffice via PHP et sessions.
Pour que vos dossiers ne soient pas accessible par tous le monde si l'url d'un fichier est découverte,
Trois solutions s'offrent à vous :
- Soit je mets mes fichiers en bdd
- Soit je les sors de l'arborescence web et les rapatrie ensuite en php avec header appropriés
- Soit je protège tous mes dossiers avec un htaccess
Mon exemple concernera la troisième solution.
[ Lire la suite ]
mardi 29 janvier 2008
29
01
2008
Une erreur si récurrente que tout le monde la pose encore sur tous les forum 
Les fonctions php telles que header(), setcookie() ou session_start() sont des fonctions qui manipulent les entêtes http d'une page.
Les entêtes http sont là pour spécifier au navigateur client quel type de page il va devoir afficher.
Avant l'appel de ces fonctions il ne faut donc pas générer le moindre flux vers le client.
Que ce soit html ou bien un simple espace blanc ou saut de ligne avant la balise <?php, le serveur renverra l'erreur Warning: Cannot modify header information - headers already sent by ... (ou similaire) ne pouvant plus modifier les entêtes déjà envoyés.
Certains serveurs ne seront pas touchés si leur configuration php contient la variable output_buffering à on
Il est aussi possible de forcer la configuration grâce à une ligne dans un htaccess : PHP_FLAG output_buffering on
Cela permet de faire patienter le flux (bufferisation) si une fonction devant modifier les header est appelée avant.
vendredi 25 janvier 2008
25
01
2008
Voici les sources de la pipette faite il y a plus d'un an, j'avais laissé ça dans un placard et du coup pas le temps de m'y replonger.
cf. Une pipette pour le web (16/11/2006)
[ Lire la suite ]
25
01
2008
<?php
if($redirect)
{
header("Location: http://developpeur.mediabox.fr");
}
unlink('mon_fichier_tres_important.pdf');
ma_fonction_qui_nexiste_pas();
unset($_SESSION);
mysql_query("DROP DATABASE mb_db", $connexion); // : )
?>
Essayez ceci pour voir 
Bon effectivement je sort l'artillerie lourde, mais il faut savoir que la fin d'une page php continue d'être exécutée sur le serveur malgré une redirection via un header Location.
Du coup vous pouvez faire échouer votre redirection si une erreur survient, faire une manipulation non souhaitée ou redéclarer des variables et ensuite vous demander à quelle endroit tout ceci a été modifié.
Donc un petit conseil :
<?php
if($redirect)
{
header("Location: http://developpeur.mediabox.fr");
exit(); // Important !
}
unlink('mon_fichier_tres_important.pdf');
ma_fonction_qui_nexiste_pas();
unset($_SESSION);
mysql_query("DROP DATABASE mb_db", $connexion); // : )
?>
Stoppez vos scripts après un header 
jeudi 11 octobre 2007
11
10
2007
A l'utilisation du petit module d'upload de JeanPhi, j'ai eu besoin de retourner le nom du fichier uploadé renommé à la volée par mon script PHP.
Problème car la classe n'accepte pas l'utilisation de session dans la page appelée !
Alors on envisage de passer par bdd ou fichier texte temporaire mais bon très lourd pour retourner simplement quelques caractères...
Autres alternatives ? ->
filereference-and-sessions-a-bug-from-hell
-> Problème avec divers navigateur
Après de nombreuses recherches, rien n'était prévu pour gérer des retours via la class filereference.
Mais un nouveau petit ecouteur est sortit avec Flash CS3 : onUploadCompleteData
Du coup, un simple
myListener.onUploadCompleteData = function(myFileReference, retour) {
stat.text = "Le transfert est maintenant termine !";
flash.external.ExternalInterface.call("module._getMyLastFile", retour);
prog.text = "";
};
récupère le echo 'mon nouveau nom de fichier'; dans ma page d'upload PHP.
Simple mais très très peu documenté
merci à MB et Tonic 
jeudi 16 novembre 2006
16
11
2006
J'ai cherché il y a quelque temps une pipette permettant de récupérer la couleur d'images uploadées dans le cadre d'une interface d'administration et je n'avais pas trouvé.
Finalement, je me suis amusé à en développer une car le principe est en définitive pas si compliqué que ça 
[ Lire la suite ]
dimanche 5 novembre 2006
05
11
2006
Sur le forum dreamweaver, une question récurente réapparait fréquemment qui est la mise en page et l'affichage de données à la sortie de base de données.
Simple ? Oui, mais pour les personnes se lançant pied joins dans le domaine de la programmation web, cela parait à première vue beaucoup plus compliqué ;).
Et rappelons nous que ce sont finalement nos bases d'apprentissage du couple Php / Mysql 
Effectivement, après des heures d'applications de balises Html au milieu de son incompréhensible code Php (j'en fais trop peut-être ? ^^) avec un <td> par-ci, un </tr> par là ... et le résultat ? vous devinez ? oui on est d'accord alors voyons ça calmement 
[ Lire la suite ]