Articles taggés PHP
PHP : Identification avec MySQL
1Un nouveau screencast pour les débutants, sur l’identification et la restriction d’accès à certaines pages avec PHP et MySQL.
Les fichiers sources sont disponibles : Source : Identification PHP MySQL
A noter que j’ai changé une petite chose, l’enregistrement en session se fait dans la classe et non dans identification.php. Je vous laisser regarder les sources ;)
ERRATUM
J’ai parlé tout au long du tuto de MEDIUMINT, mais j’avais en tête SMALLINT. Du coup je rectifie ce que j’ai dit, le MEDIUMINT (5) non signé va nous permettre d’enregistrer jusqu’à 99 999 utilisateurs. Largement suffisant pour nous. Le SMALLINT (5) non signé lui nous permettrait d’enregistrer 65 535 utilisateurs, clairement suffisant aussi pour la plus grande partie des cas. Merci Olivier d’avoir mis le doigt sur cette erreur de ma part ;)
Introduction à PHP
1Un second screencast qui tente d’expliquer les bases de PHP, les variables, les boucles, les tableaux. Ce n’est pas le plus évident à réaliser, contrairement à ce que je pensais. Mais je vous le livre quand même, il y a quelques bonnes choses à prendre dedans.
Freelance : le bon tarif journalier
0Pour les freelance il est des fois délicat de se situer dans un marché où les prix peuvent fluctuer très rapidement en fonction de l’offre et de la demande. Suite à l’effet de crise le tarif des prestations à baisser au sein des SSII et il n’est pas forcément aisé de se vendre au juste prix. Pour vous aider le site freelance-info.fr vous propose une grille de tarif que je trouve à titre personnel très bien conçue. Vous pouvez y accéder via ce lien : tarifs jour de facturation des freelance. Vous y trouverez non seulement le tarif, mais également la répartition des missions par année d’expérience, et par intermédiaires. De plus pour ceux qui cherche une description précise et concise du poste qu’ils cherchent à pourvoir il y a une description pour chaque métier. Une très bonne chose pour les freelance et en plus c’est gratuit donc c’est encore mieux.
PHP : Compiler et installer un module (extension)
1J’ai voulu m’amuser un peu, et répondre à la question de quelqu’un, donc j’ai fait un petit screencast sur l’installation d’un module PHP sous unix / linux / OS X. Sans grande prétention mais ça m’a amusé :) Si ça tente certains j’en referais d’autres ;)
Y a site web et site web voire PHP et PHP
1Depuis toujours le métier de développeur web a été plus ou moins méprisé. Ce qui revient souvent dans les conversations c’est les phrases comme « Ah mais donc en fait je peux moi aussi faire mon site web » ou « Ah vous faites pas le contenu, vous faites quoi alors ? ». Je vais donc aujourd’hui un peu éclaircir le sujet et répondre à ces questions qui ne rendent pas hommage à ceux qui travaillent durement pour vous servir.
La première chose à savoir c’est à mon sens que c’est le contenu qui fera le succès d’un site. Et les équipes qui rédigent le contenu des sites sont clairement la clé de cette réussite. Toutefois pour y parvenir il leur faut ce fameux site web, site internet, blog peu importe la forme en fin de compte. Ce qu’il faut comprendre c’est qu’un site web ce n’est pas seulement l’affichage de ces textes et images. C’est aussi tout un système qui permet de gérer ce contenu, mais qui gère également les auteurs, la mise en page, la mise en avant de certains éléments, la possibilité de changer certains éléments, de gérer des sondages, la publication du contenu en fonction des auteurs, encoder de la vidéo en flash et j’en passe. C’est une véritable suite bureautique en ligne.
Comme je viens de vous le montrer un site web ne se limite pas à l’affichage du contenu, outre la gestion des contenus on trouve également des fonctionnalités propre à chaque site, comme comparer des produits, calculer des couts de revient, souscrire à un contrat, répondre à un sondage, donner son avis sur le contenu, imprimer le contenu, publier son propre contenu un tas de fonctionnalités qui ne sont pas simplement de l’affichage de contenu mais qui demande des calculs et de la gestion de droit en fonction des utilisateurs par exemple. C’est toutes ces fonctionnalités qui permettent de faire un site internet.
Ou est ce que je veux en venir ?
C’est assez simple en fait, le métier de développeur web pourrait s’apparenter à celui de pilote de rally ou de chirurgien. En effet, si le web est accessible à tout le monde et qu’il existe des solutions clés en main pour créer son site internet nous sommes loin de ce qu’est notre métier, ou en tout cas ce qu’est le mien. Dans toute profession ou discipline il existe des niveaux. Ainsi ce n’est pas parce qu’on a le permis et qu’on sait conduire qu’on est Sebastien Loeb, de même ce n’est pas parce que l’on sais soigner une plaie ou même que qu’on a son brevet de secouriste qu’on est chirurgien. Et c’est encore plus complexe que ça il y a comptable et expert comptable, médecin et chirurgien, de même on a des intégrateurs, des développeurs et des ingénieurs au sein de notre métier. Et comme vous le savez à poste égal on a encore des différences de niveau entre les individus.
Vous devez commencer à comprendre que finalement faire des sites web ce n’est pas forcément si simple.
Je vais prendre un exemple plus concret, dans ma société (Opal CMS). Nos clients disposent d’un outils de gestion de contenu plus ou moins complet en fonction de leur besoin ça comprend la gestion de leurs documents comme des actualités à des dossiers multipages, la gestion de tous les types de médias, comme les images – avec la possibilité dans la partie administration de rechercher une image directement sur le net et de l’importer de façon transparente -, les fichiers audio, les fichiers vidéos. Pour certains ils ont la possibilité de tout simplement filmer ce qu’ils ont envie et d’envoyer le fichier sur le serveur. Notre outil transforme la vidéo en flash comme sur youtube ou dailymotion. Ils ont un système complet de workflow, c’est à dire de gestion du processus de publication, chaque utilisateur a des droits qui lui permet de signaler si son article est prêt à paraitre, alors qu’un autre utilisateur se chargera de le mettre en ligne. Certains clients ont des demandes particulières comme gérer l’import de flux RSS ou AFP de façon automatisée ou la possibilité de gérer des formules de calcul pour des applications particulières et d’autres la possibilité de gérer leurs commandes et leur stock. Je fais un peu de pub pour illustrer mon propos mais ça vous montre qu’un site internet ne se limite pas à afficher des actualités.On peut désormais utiliser le web pour gérer énormément de chose. Exemple très concret les opérateurs de téléphonie mobile gère la vente des téléphones et la souscription des contrats directement via des applications web.
Autres point important entre ce que monsieur tout le monde peut faire et ce que nous sommes amenées à faire, c’est travailler sur des applications scalable à haute performance. C’est à dire que l’application web est optimisée pour gérer beaucoup de demande, en effet entre un site personnel qui fait 10 visites par jour et des sites comme lemonde qui tourne plutôt autour du million de visites il y a une grosse différence. C’est pour ça que nous mettons en place des solutions performante et scalable, c’est à dire des solutions capable d’évoluer avec la demande qui seront capable d’être réparti sur des dizaines de serveurs de façon transparente pour le client et pour l’utilisateur sans que cela engendre des coûts pharaoniques.
Voila, vous en savez un peu plus sur ce que nous faisons ;) Rendons à César ce qui appartient à César et vive les développeurs et ingénieurs du web qui nous permettent à tous de profiter du contenu de chacun.
Oui une question ?
Pourquoi j’ai pas parlé de Google dans les applications web complexes ?
Je sais pas … :D
Bon surf ;)
Fluent interface : oui mais y’a un mais
0Une des grandes “modes” du moment c’est la programmation en fluent interfaces. kézako ?
Les fluent interface sont des classes qui sont programmés de façon à ce que chaque fonction retourne $this. Oui bon on va pas chipoter mais c’est grosso modo ça y’a certes un peu plus de subtilité que ça mais si vous ne connaissez pas les fluent interface vous avez grosso modo une idée de ce que c’est.
Le but est d’obtenir un code plus lisible pour nous autres codeurs, car grâce à cette pirouette que nous permet la programmation orientée objet on peut transformer ceci:
<?php $foo = new Bar(); $foo->setParamA(0); $foo->setParamB(‘my_string’); $foo->execute(); ?>
en quelque chose de nettement plus sexy :
<?php
$foo = new Bar();
$foo->setsetParamA(0)
->setParamB(‘myString’);
->execute();
?>
C’est vachement plus simple à lire surtout quand on commence à appeler une dizaine de fonctions sur un objet.
Alors pourquoi ce billet. Pour vous mettre en garde, si cette méthode et très pratique pour nous elle l’est moins pour vos serveurs. Car sans fluent interface vous pouvez tester chaque retour de fonctions et donc vous arrêtez dès que quelque chose cloche. Avec les fluent interface vous serez obligé de passer dans tous vos tests. Alors vous me direz que je chipote et je suis entièrement d’accord.
Mais comme je pense à vous, je vous donne ma solution pour faire les choses bien comme il faut. Passez à PHP5 et utilisez les exceptions. Dès qu’une erreur bloquante pour la suite se produit vous levez une nouvelle exception. Il ne vous restera plus qu’à encadrer votre code d’un bloc “try/catch” pour faire ça tout proprement.
Comment craquer du MD5 en PHP
0Et oui c’est possible avec une méthode en plus toute simple et optimisée que je viens de découvrir dans les commentaires de la doc PHP en ligne. Merci à cet utilisateur au génie incommensurable. Je ne vous fais pas languir plus longtemps.
<?php
/**
* i made a php script that can guess a hashed string’s value,
* but it takes forever with more than 2 characters in the password
*/
set_time_limit(0);
$randpass = chr(rand()).chr(rand());
print “RANDOM PASSWORD: $randpass”;
print “\n”;
$password = md5(“$randpass”);
$guesswrd = “”;
$tries = 0;
$start = microtime(true);
while($password != md5($guesswrd)){
$guesswrd = chr(rand()).chr(rand());
$tries+=1;
}
$end = microtime(true);
$time = $end-$start;
print “GUESSED PASSWORD: $guesswrd”;
print “\n”;
print “It took $tries tries and $time seconds”;
?>
Je crois que l’expression appropriée est : ROFL !
Zend-Framework 1.6 RC1
0Une petite news PHP, je vais essayer de tenir un rythme régulier de publication.
Donc ca fait quelques jours que la Release Candidate 1 du Zend Framework version 1.6 est disponible. Je dois avouer que je ne suis pas un des plus grands fans du ZF pour diverses raisons, mais je dois tout de même lui conserder qu’il est très bien construit et qu’il offre une base solide pour le développement d’applications propres. On un retrouve un MVC, une couche d’abstraction de BDD (pas le meilleur à mon sens), et une multitude d’outils comme la gestion d’ACL et j’en passe. Bref c’est un bon outils.
Mais il y a un truc que je trouve marrant dans la dernière RC et ca vaut le coût de le citer. C’est le nouveau composant Zend Text. Ce composant sert à … faire de l’ASCII Art grâce aux « polices » disponibles sur FIGLet :D Non je me moque pas promis je trouve ca fendard c’est tout ;)