Aller au contenu

AntoineViau

Webmaster Régulier
  • Compteur de contenus

    86
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par AntoineViau

  1. Bon aller hop, c'est parti pour une grande session de blindages supplémentaires... Pffff. Le pire étant que je suis blacklisté chez OVH, qui est aussi l'hébergeur de mon dédié. J'ai signalé aux RBL que je suis de nouveau "propre" et j'ai envoyé un mail au support OVH. J'espère qu'ils vont faire vite... Antoine
  2. Ok, je pense que j'ai pigé. C'est de l'injection de header au sein du contenu du message. Néanmoins, en regardant le code de phpmailer, je vois que à priori il passe par la fonction mail de php qui prend en paramètres : bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] ) Le header et le body sont donc séparés... Y a une gruge que j'ai loupé ? Ca voudrait dire que les serveurs STMP lisent les données en "raw" sans faire de réelle distinction entre header et body ? Antoine
  3. AntoineViau

    Hack pour du spam...

    Hello tous, Je me suis fait hacké (détourné serait plus juste) mon site (www.pieces-motos.com) de façon assez classique. Ils ont utilisé la page de contact pour envoyer du spam. Pas plus dérangeant que ça puisque la page de contact permet simplement aux visiteurs de rentrer en contact avec moi. Le code PHP (qui utilise phpmailer) envoie simplement le message sur mon adresse à moi, uniquement. Donc, que je reçoive du spam par là, c'est très normal. En revanche, ce qui est plus douloureux c'est que d'autres reçoivent du spam par ce système !!! Et je ne vois pas comme ils ont fait ! En gros, mon code donne ça : $mailer = new phpmailer(); $mailer->AddAddress($site["email_contact"]); $mailer->Subject = "Message venant du site"; $mailer->Body = $_POST["msg"]; etc. On voit donc que je suis bien le seul destinataire du site. Si encore c'était du POST je comprendrais, mais là... Et chose étonnante, les spams envoyé gardent le subject que j'ai fixé ("Message venant du site"). Ils arrivent donc à changer le destinataire et même à en mettre plusieurs mais à toucher au sujet. Bizarre. Quelqu'un aurait une idée ? Antoine PS : Bien évidemment, les variables-paramètres sont désactivées dans PHP.
  4. Heu c'est pas vraiment ce que je cherche mais c'est gentil de proposer Je cherche parmi les "standards" du marché en matière de statistiques. Notamment pour pouvoir écrire des arguments du genre "450 000 pages vues au mois de novembre (source : Xiti/EStat/etc.)" Bref, un nom connu et solide qui fait autorité dans le domaine. Evidemment, je cherche aussi l'outil qui me permettra d'avoir une vision claire de mes stats ainsi que des infos complètes (le beurre, l'argent du beurre, etc.) Antoine
  5. Hello tout le monde ! Jusqu'ici j'utilisais phpMyVisites (version 1.3 puis 2.x) et j'en étais globalement assez content. Néanmoins, vu les traffics des divers sites que j'ai en charge, et pour des raisons de "légitimité", je compte m'orienter vers une solution payante. J'aurais voulu savoir si certains d'entre vous ont testé plusieurs services (Xiti, e-stats, etc.) et ce qu'ils en ont pensé. D'autre part, quels sont les services qui font autorités quand on veut argumenter avec des chiffres (auprès d'une régie pub par exemple). Les sites sont essentiellement du e-commerce avec un peu de communication par newsletter. Je n'ai, à priori, pas besoin d'options monstrueuses (genre expert-business-ROI-pro) et je veux surtout un service fiable et rapide. Merci Antoine
  6. Je parlais de la console de debug Javascript de FF. Antoine
  7. A mon tour... Pour travailler, outre les navigateurs (IE, FF...) et les plugins qui vont bien (Debug Console, IETab, etc.) j'utilise à 95% deux logiciels : - TotalCommander qui est un gestionnaire de fichiers (j'aurais énormément de mal à m'en passer) - UltraEdit pour l'édition et la gestion de projet (au sens large du terme) qui regroupe les principaux éléments dont j'ai besoin pour bosser : coloration syntaxique intelligente (même avec plusieurs langages dans un même source, genre PHP/JS/HTML) et un arbre de projet tout simple mais très efficace. Je ne suis pas graphiste mais pour des petites manipulations qui ne demandent pas de créativité (hors de mes compétences) j'utilise PaintShop Pro version 5 (vieille version, très simple, très efficace) ainsi que xnView pour la consultation. De temps en temps un peu de PhotoShop. Pour écrire des newsletters en HTML j'utilise aussi une vieille version de Namo Web Editor qui est nettement moins usine à gaz que DreamWeaver Sinon, de façon plus large : je bosse avec Apache/PHP/MySQL mais sans framework pré-installé. Je préfère installer et configurer moi-même chaque composant. Aussi bien sous Windows (conception) que sous Linux Debian/Suse (production). Antoine
  8. Hello Dudu ! D'abord merci pour les compliments, ça fait plaisir. J'ai globalement de bons retour de la part des forums de motards. C'est encourageant. Bon je vais tout de suite casser le mythe : les graphismes ne sont pas de moi J'ai fait appel à un collègue qui a un peu bossé dans la pub et qui m'a pondu contre une somme modique les diverses images (les fonds, les boutons, etc.) Néanmoins, tout le reste (CSS) est de moi. Et justement pour parler de CSS et de sémantique, je suis tout à fait d'accord pour dire que c'est assez tag-soup, mais il y a une bonne raison à cela : l'incompatibilité de box-model entre IE et FF. Peut-être n'ai je pas pris la meilleure méthode, mais c'est avec celle là que je me sens le plus à l'aise et surtout, par les encapsulations successives j'ai un peu plus de liberté pour la conception CSS. N'oublie pas que l'ensemble provient d'un framework qui me permet de gérer autant de sites de petites annonces que je veux. Or, je ne tiens pas à ce qu'ils se ressemblent tous. Donc j'ai décomposé comme un sagouin afin de pouvoir tout bouger dans tous les sens. Le coup du H1 dans le div, c'est un cas typique... Avec le padding la taille change dans FF mais pas dans IE. Or, tout le design est fait au pixel (je sais, c'est mal pour l'accessibilité, j'en parle plus tard). Donc pour caler au petit poil, j'encapsule. Concernant l'accessibilité, le framework est prévu pour avoir plusieurs styles pour un seul site. Dans le cas de pieces-motos il n'y en a qu'un seul, mais je peux, si je veux en créer un second qui sera accessible par un select en haut à droite (la méthode classique). Et sinon, tu as raison... Tout le site est conçu dans une optique de référencement de façon la plus propre possible. Y a bien un ou deux display:none dans les coins, mais bon... Rien de tragique Et y a bien du H2 mais dans d'autres pages Antoine
  9. Malheureusement, ma technique ne fonctionne que sur un dédié. Pour le mutualisé, faut jongler avec les expressions régulières ou, en plus cradingue, utilisé le ErrorDocument (toujours dans htaccess) pour rediriger toutes les pages. Mais je crains que ça ne soit assez pénalisant pour le référencement puisque l'entête est celle d'une 404 systématiquement... Maintenant, les expressions régulières, ça a l'air super pénible au premier abord, mais avec un peu de pratique et de patience on arrive vite à faire fonctionner le bazar. Prévoir de l'aspirine au début quand même Antoine
  10. Merci Dan ! (bien remis de W3Campus ?) Erreurs corrigées. En fait c'est l'image cachée de phpMyVisites (que je n'active pas en localhost) qui n'avait pas de ALT. J'en ai profité pour y placer du contenu de référencement Antoine
  11. - Yep, j'ai encore un peu de nettoyage à faire ici et là. Le JS en fait partie. - Pour le flux RSS, je viens de vérifier et je n'ai rien trouvé en localhost. Bizarre... - Quand tu parles de dossiers virtuels, j'imagine que tu parles d'URL-Rewriting. Pour être précis, j'ai grandement profité du fait que je suis en dédié et que j'ai un accès total sur la config Apache. De cette façon j'ai pu zapper les expressions régulières dans un htaccess. En fait, au lieu de donner un dossier pour mon DocumentRoot, j'indique directement index.php Ca fait que toute requête passe par ce fichier qui peut donc faire ce qu'il veut. J'explique tout ça sur mon blog Antoine
  12. Hello tout le monde, Je viens vous présenter mon dernier bébé, non pas pour critique (d'abord c'est interdit, ensuite c'est trop tard : le mal est fait ) mais parce qu'il a quelques particularités qui pourraient en intéresser certains. Il s'agit donc de PIECES-MOTOS.COM, le site des petites annonces pour pièces détachées motos (et hop un backlink ). Il est plutôt dans la norme en ce qui concerne l'utilisation, mais a été conçu dans une orientation "simple". Il y a notamment une interface de recherche en Javascript dont je suis assez content et quelques pincées de Web 2.0 ici et là. Les quelques particularités techniques qui le compose : - conception selon les standards, "dans la mesure du possible". A une exception près il n'y a aucun tableau. - écriture XHTML sémantique de chez sémantique. Chaque donnée (ou presque) est encapsulée dans des balises XHTML strictement identifiées. - séparation stricte entre contenu/structure/présentation. - Optimisation "propre" mais "lourde" pour le référencement. - Linux/Apache/MySQL/PHP sur un dédié chez OVH Bref, CTRL+U sous FF sera votre ami si vous voulez voir comment j'ai procédé. A noter, le site est en fait généré à partir d'un framework/application que j'ai écrit. Ce framework s'appelle DMP (Dedicated Market Place) et permet de créer autant de sites de petites annonces spécialisées dans autant de langues que l'on veut. Le premier est donc un site de pièces motos en français. Et si demain je veux faire un site de petites annonces de bouteilles de parfum en anglais et en allemand il n'y a quasiment aucune une ligne de code à taper sauf pour les CSS. Ca se fait à grands coups de clic dans une interface d'administration et entrant tous les textes dans les langues désirées. Je pense écrire une série de petits articles sur la conception W3C/CSS "dans la vraie vie" en me basant sur cette expérience. Je ne peux pas dire que ça a été facile (voire parfois totalement insupportable) mais globalement, les standards et les méthodes de conception qui vont avec sont assez merveilleuses pour manipuler des "ensembles de site". Et l'écriture en elle-même, au niveau XHTML/CSS est un vrai bonheur pour peu que l'on travaille avec un peu de rigueur. Antoine
  13. Pour Paybox je peux te répondre car j'utilise ce système. J'en suis d'ailleurs très content. Le walk-though du paiement en ligne est le suivant : - utilisateur va sur une page où on lui propose de payer. Cette page contient un formulaire avec un certain nombre de champ INPUT TYPE=HIDDEN (ou TEXT) qui indiquent les paramètres de la commande (prix, numéro de commande, email client, etc) - en validant ce formulaire, il y a appel au programme CGI fourni par Paybox (que tu auras installé sur ton serveur) qui va rediriger le client et toutes les infos vers la section sécurisée où il faut entrer son numéro de carte de crédit. - Une fois que le numéro est entré et validé par le client, Paybox va envoyer une requête HTTP à une URL de ton choix, contenant en paramètres le numéro de commande, le numéro d'autorisation et le numéro de transaction. Le format de cette URL peut être customisé par tes soins. - C'est donc en recevant cette requête que tu sais que le paiement a bien eu lieu et a été validé par Paybox et donc que tu peux mettre l'annonce en ligne. Antoine
  14. A noter : pour tester les performances de compression gzip à l'envoi des données il existe des outils en ligne. Par exemple : http://www.gidnetwork.com/tools/gzip-test.php Cela permet d'évaluer l'intérêt de la compression. Généralement, si la machine serveur n'est pas une antiquité (la compression consomme des resources) c'est TRES intéressant. Et si, comme moi, vous avez du code Javascript généré, ou des longues listes, c'est carrément jackpot ! Je développe actuellement un site avec un moteur de recherche multi-critères dans des SELECT, bourré de données. Non compressée, la page fait environ 300 Ko. Après compression gzip, elle descend à 40 Ko !!! Signalons aussi que le gzip peut être activé au niveau de PHP, ce qui permet de sélectionner les pages à compresser ou non et optimiser la consommation de resources. Ca se passe par ob_gzhandler en conjonction avec ob_start. Et si on veut taper dans tous les fichiers PHP, on active zlib.output_compression dans le php.ini La compression c'est bien, mangez-en ! Antoine
  15. Hello again, Maintenant que j'ai mis en place mon système de monitoring, je vous fait un petit récapitulatif. Alors que j'étais parti pour faire du C/C++, plonger dans les entrailles du kernel, fabriquer des daemon à coups de GCC, et tout le toutim... je me suis rendu compte que c'est autrement plus simple, voire enfantin. Comme beaucoup de choses sous Linux, il s'agit d'utiliser les outils existants et de les combiner entre eux afin d'obtenir ce qui nous intéresse. Et la structure hyper modulaire du système est vraiment adaptée à ce genre de jonglage. Ca peut paraître un peu "bancal" au début, mais finalement ça marche bien. Personnellement, j'ai tout basé sur MRTG. Le principe du monitoring avec un outil comme MRTG est vraiment très basique. MRTG est juste un soft dont le rôle est de générer des images de graphiques à partir de données qu'on lui donne à intervalle régulier. Un fichier de configuration permet d'indiquer comment obtenir les les données et comment les afficher. Le fichier de configuration comprend notamment la commande à appeler pour obtenir les données à l'instant t. Et sous quelle forme doivent être les données ? Première ligne : valeur 1 Deuxième ligne : valeur 2 (pour un graphique à double courbes) Troisième ligne : uptime des données (temps de fonctionnement) Quatrième ligne : nom de la source de données Les deux dernières lignes n'ont rien à voir avec les calculs. C'est juste pour afficher "La source de données était alors en marche depuis uptime" Maintenant que l'on sait comment donner à manger à MRTG, il faut savoir où aller chercher les données. Et là encore, on ne se complique pas la vie : on utilise les outils Linux qui retournent des informations en texte et on va pêcher ce dont on a besoin. Exemple concret, obtenir un graphique de l'espace disque restant au cours du temps. Sous Linux c'est la commande "df -h" qui indique l'espace disque sous forme "human readable" en retournant ce texte : Filesystem Size Used Avail Use% Mounted on /dev/hda1 3.0G 2.8G 99M 97% / /dev/hda2 34G 33M 32G 1% /home Par un quelconque moyen on va récupérer le nombre qui nous intéresse. La plupart des scripts utilisent du Perl, mais rien n'empêche de passer par du PHP ou du C. C'est une question de goût. Voici un petit exemple (vite et mal codé) en php : <?php exec("df -h",$res); $line = $res[2]; $t = split(" ",$line); $j = 0; for($i=0; $i < count($t); $i++) { if ( $t[$i] != "" ) { if ( $nchamp == 4 ) { break; } $nchamp++; } } sscanf($t[$i],"%d%%",$avail); echo $avail."\n"; echo "0\n"; echo "Espace disque restant\n"; echo "Disque hda2"; ?> Ce petit de code (immonde) récupère la sortie de la commande "df -h", prend la dernière ligne, puis extrait la valeur du champ "% Available". Et affiche ensuite les 4 lignes destinées à MRTG. Le reste se situe au niveau de la configuration de MRTG avec notamment l'appel de la commande : Target[monserveur_espace]: `php -f /srv/www/mrtg/df.php` Le reste du fichier de configuration : taille du graphique, type de données (absolues, relatives, pourcentage), valeur maximum, affichage vers la droite ou la gauche, titres des abscisses et ordonnées, titres des légendes, etc, etc. Vous trouverez tout à cette adresse : http://people.ee.ethz.ch/~oetiker/webtools...ference.en.html Une fois que tout cela est mis en place, il faut exécuter MRTG à intervalle régulier, donc, typiquement, par une crontab du genre : */5 * * * * /opt/bin/mrtg/bin/mrtg /srv/www/mrtg/mrtg.cfg Pour conclure : il suffit d'extrapoler pour avoir des graphs sur tout et n'importe quoi. Vous trouvez facilement des scripts tout fait (en perl) pour les informations standards (CPU, mémoire, connexion TCP, etc.) mais rien ne vous empêche de générer vos propres graphiques qui correspondent à vos besoins spécifiques : graphs de ventes, cpu d'un user particulier, requêtes sql, etc. Antoine
  16. Hello à nouveau, Je viens d'installer et configurer MRTG par le package OVH. C'est assez sympathique ! A priori, j'ai maintenant toutes les infos qu'il me faut. Pour ceux que ça intéresse : http://guides.ovh.com/InstallMRTGSys/ Mais aussi : http://www.bitbybit.dk/mysqlfaq/mrtg-mysql-load/ Antoine
  17. Je plussoies concernant Oreon. Je viens de l'installer et c'est une sacré usine à gaz ! Et ce, d'autant plus que les pré-requis sont assez stricts : Apache 2.x et PHP 4.x. Concernant l'installation, mis à part un peu de tripatouillage de code, ça s'est fait assez rapidement. En revanche, pour comprendre l'interface et le fonctionnement, bah heu... faut quel diplôme ? Je pense que c'est un outil adapté pour du monitoring "lourd". En ce qui me concerne, je suis un admin "simple", je veux juste suivre les éléments les plus standards sans me prendre la tête. ozMonitor est bien, mais comme il est externe, il ne pourra pas me dire si j'abuse en mémoire ou en CPU load. Je vais jeter un coup d'oeil sur le package d'OVH et éventuellement le coupler avec ozMonitor. En tous cas, merci à tous pour les infos. Antoine
  18. Hello ! J'ai un dédié chez OVH sous Debian. J'ai le minimum vital compilé, installé et configuré par mes soins (Apache, PHP, MySQL, etc.) et tout tourne à merveille. Néanmoins, mon dédié est entré depuis peu en phase "de production" et je n'ai pas encore de quoi évaluer à quel point je lui en demande beaucoup ou pas. D'où ma venue en ces lieux : quels sont les outils de monitoring que vous utilisez pour vérifier tous les loads ? (CPU, trafic, connections, mémoire, etc.) Attention, je ne pense pas à des outils d'affichage temps réel (comme la commande top) mais à des systèmes de logs avec historiques. Merciiiiii Antoine
  19. Hello ! Laisse moi deviner... Tu es chez Free ? J'ai le même problème (et je suis chez Free) et c'est simplement, je pense, les DNS de Free qui déconnent de temps en temps. Autrement dit, toutes les connexions faites "à la main en IP" (xxx.xxx.xxx.xxx au lieu de www.domaine.com) peuvent passer, mais sinon Niet! Ca me le fait très régulièrement, ça revient toujours au bout de quelques minutes (rarement plus de 3 ou 4). C'est pénible mais pas dramatique étant donné que les connexions et transferts en cours sont maintenus. Antoine
  20. C'est simplement interdit pour raisons de sécurités. Tu es donc condamné à faire tes requêtes sur ton propre domaine. Si l'on pouvait faire des requêtes sur d'autres domaines, y aurait de quoi foutre un sacré bordel sur web ! Antoine
  21. Hello à tous, J'ai créé et je maintiens depuis maintenant deux ans un site. J'aimerais pouvoir me situer d'un point de vue quantitatif. Je vous ai donc sorti les stats du mois de janvier (réalisée avec phpmyvisites) afin de déterminer si j'ai un gros site, un site "normal" ou autre... - 80 000 visites - 65 000 visiteurs uniques - 290 000 pages vues - 70% des visites issues de moteurs de recherche (dont 75% de Google) Quelques points de repère supplémentaires : il s'agit du site d'une maison d'édition spécialisée qui publie 13 revues ainsi que des livres. Les sujets "spécialisés" sont relativement éclectiques : histoire militaire, figurines, histoire automobile, jeux, etc. Le site n'est, pour le moment, qu'une boutique en ligne un peu améliorée. Il est en français uniquement, la version anglaise est en cours. La question de fond est de savoir le "poids" de mon site en terme de fréquentation pour évaluer l'intérêt de la pub en ligne et aussi pour argumenter auprès de mon boss Quelques stats hors-sujet mais qui pourront en intéresser certains : - 80% de Windows XP (et 8% de Windows 2000, 7% de Windows 98) - 80% de IE 6 - 14% de Mozilla (FF, NS...) - 56% de 1024x768 - 15% de 1280x1024 Antoine
  22. Si ça t'intéresse (toi ou quelqu'un d'autre), j'ai composé une liste de pays en fançais et en anglais que j'ai mis à disposition sur mon blog. C'est au format CSV : fichier texte où les champs sont séparés par des tabulations. Ca se relit très bien dans Excel et il y a meme une fonction PHP qui lit automatiquement ce format. La liste de 236 pays en français et anglais est ici Antoine
  23. 100% d'accord. A la limite c'est le "test" numéro 1 pour un développeur : le mec capable de dire "ça je sais pas faire, mais je pourrais apprendre". Autre point important : observer comment un candidat évalue ses plannings. C'est un concept récurrent en développement : ce qu'on croyait mettre 3 semaines à faire prend 3 jours et inversement ce qu'on pensait faire en 3 jours prend 3 mois ! Antoine
  24. Oulala, s'il n'y a personne chez vous qui fait déjà du développement ça complique les choses parce qu'on peut vous raconter n'importe quoi (déjà vu, déjà fait ). Je vous conseille de vous baser sur les références en espérant que le mec ne pipeaute pas trop (déjà vu, déjà fait, aussi). Sinon, il peut être intéressant de faire appel à un professionnel de la profession en tant que "consultant-recruteur". Si ça coûte trop cher ou que c'est trop compliqué de faire venir à chaque candidature le consultant, vous pouvez lui demander de vous faire un petit questionnaire/test sur mesure (en fonction de vos besoins) à faire passer au candidat. C'est une pratique assez courante dans le domaine du développement où certaines compétences sont plus utiles que d'autres en fonction de ce qui est précisément demandé. Par exemple, lorsque je travaillais dans le jeu vidéo, ma spécialité étant la conception de moteurs 3D, j'étais nettement moins "performant" dans gestion d'IA ou de gameplay mais pas forcément "inopérant". On m'a fait passer un test pour évaluer si j'étais apte aux besoins de dev. Et je l'étais Sinon, autre solution, plus ou moins liée à l'idée de "consultant-recruteur", la cooptation basée sur la confiance. Antoine
×
×
  • Créer...