Aller au contenu

real34

Actif
  • Compteur de contenus

    47
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par real34

  1. Bonjour, Ce que nous faisons pour assurer une mise à jour facilitée de nos applications est de garder le coeur de CakePHP intact sur notre serveur, en dehors du webroot. Si tu as Git il te suffit de faire un git clone git://github.com/cakephp/cakephp.git et le tour est joué. Utiliser Git a également l'avantage de rendre les mises à jour ultra simples (git pull). Ensuite viens ton application. Pour la créer il suffit simplement d'avoir l'équivalent du dossier "app" dans ton webroot. Si tu développes en local, tu peux utiliser la ligne de commande pour générer un nouveau projet : cake bake monprojet Bien qu'il soit en théorie "mieux" de ne rendre que le dossier "webroot" accessible par le web, en pratique je ne vois aucun problème à avoir tout ton dossier app ... car le .htaccess de la racine du dossier redirige toutes les requêtes vers le webroot (voir https://github.com/cakephp/cakephp/blob/master/app/.htaccess). Maintenant tu n'as plus qu'à renseigner le chemin vers ton dossier cake dans le fichier "monprojet/webroot/index.php" et le tour est joué ! Si tu es à l'aise avec Capistrano j'ai mis en ligne la recette de déploiement que nous utilisons en interne : https://gist.github.com/2310646 - c'est encore améliorable je pense, mais nous avons plusieurs applications qui sont déployées avec sans problème.
  2. Bonjour à tous, Je viens vous demander conseil en désespoir de cause après avoir passé plusieurs heures à trifouiller les configurations d'un nouveau serveur et les résultats de Google sans succès. Diverses solutions ont été testées, et au final je n'arrive plus à comprendre ce que je peux oublier alors peut-être qu'un oeil extérieur pourrait m'aiguiller ... Voici un résumé de ma situation (qui semble somme toute assez commune). Je souhaite déployer une application PHP utilisant PEAR sur ce nouveau serveur CentOs. PHP ayant été compilé "--without-pear" j'ai donc installé yum et ensuite PEAR, puis quelques packages nécessaires. Le problème est que lorsque j'accède à mon site j'ai toujours la même erreur : Comme vous le voyez il semble que "/usr/share/pear" soit bien dans le include_path et ce dossier contient pour sûr mes fichiers : [root_AT_xxxx]# ls /usr/share/pear/ Archive Console data doc MDB2 MDB2.php OS PEAR pearcmd.php PEAR.php peclcmd.php System.php test XML Il semble également que la restriction open_basedir et le fait que Plesk soit installé puisse poser des problèmes, alors j'ai effectué des modifications à divers endroits d'après les messages trouvés sur le net (sans succès malheureusement). Voici le récap des modifications faites, dites moi si j'ai oublié quelque chose : Dans /etc/php.ini, j'ai ajouté le path vers le dossier pear pour ces deux instructions > include_path (initialement à ".:") > open_basedir (initialement commentée) Dans /var/www/vhosts/mondomaine.com/conf/httpd.include > php_admin_value open_basedir ... x4 Malheureusement il semble qu'en exécutant "websrvmng" (cf ci-dessous) cette config soit écrasée. Du coup j'ai également créé un fichier "vhost.conf" Dans /var/www/vhosts/mondomaine.com/conf/vhost.conf <Directory /var/www/vhosts/mondomaine.com/httpdocs> php_admin_value open_basedir /var/www/vhosts/mondomaine.com/httpdocs:/tmp:/usr/share/pear </Directory> Voilà toutes mes configs. Après modifications des fichiers du virtual host j'ai exécuté la commande suivante (pour que Plesk mette à jour d'autres configs) /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=mondomaine.com Et bien entendu redémarré Apache /etc/init.d/httpd restart Enfin, je vous met un récapitulatif de ce que m'affiche un phpinfo() au cas où celà pourrait être utile : N'hésitez pas à demander toute autre information nécessaire ... Pensez-vous que j'ai oublié ou mal compris quelque chose ? En dernier recours je pourrais copier le dossier d'install PEAR dans un dossier accessible depuis le domaine, mais je pense qu'il est plus propre de le laisser dans le dossier d'origine d'où mon obstination ! Merci d'avance à ceux qui prendront un peu de temps pour m'aider ! Le chemin de l'admin serveur est encore un peu embrouillé pour moi ... et c'est en buttant sur de tels points qu'on apprend ! Pierre
  3. Après avoir testé rapidement différents frameworks, j'ai arrêté mon choix sur CakePHP pour plusieurs raisons : Il est basé sur le principe "des conventions plutôt que de la configuration", donc pas besoin de configurer 30 trucs à travers divers fichiers XML Les conventions sont un ensemble de bonnes pratiques ... et ne sont donc pas contraignantes une fois qu'on les connait (au contraire même, celà améliore ton code) Oblige à avoir une architecture MVC permettant une meilleure évolutivité de l'application Le grand nombre d'helpers, composants et autres utilitaires livrés de base (Authentification, Création de formulaire, Validation des données, Ajax, envoi de mails ...) et la génération automatique des actions CRUD (Ajout, édition, suppression) La souplesse du framework qui permet si on le souhaite de régler le moindre détail pour passer au delà de la génération "magique" des pages La facilité de création de tests ... c'est à mon sens un critère important La communauté accueillante et développée, riche en ressources ... je préfère largement ça à un framework soutenu par une entreprise (Symfony, ZF, CI ...) Depuis, j'ai appris à vraiment le maîtriser (je dirai qu'en une semaine on peut être opérationnel sur le framework si l'on connait MVC et la POO, sinon il faudra un peu plus de temps) et vois à quel point ce framework permet de faire des choses propres et puissantes rapidement. Quant à ceux qui parlent de performances, je ne préfère pas entrer dans le débat mais c'est en règle générale dû à une mauvaise utilisation du framework (et non au framework en lui-même) En tout cas, je pense sincèrement que baser ses développements sur un framework permet d'acquérir une meilleure qualité de code et de pouvoir capitaliser plus facilement. Le choix d'un framework est quelque chose de personnel, sachant que le passage de l'un à l'autre est assez rapide (les concepts sont les mêmes): seules les subtilités sont à apprendre ... mais cela se règle par la pratique. Ainsi si tu aimes travailler avec le framework de Drupal n'hésites pas ... si tu préfères développer un module sous un autre framework, les fonctionnalités classiques (blogs, cms) sont assez rapides à mettre en place et tu auras exactement (et seulement) ce dont tu as besoin. C'est pour cette raison que je préfère un framework à un CMS classique (pour des applications comme la GED et autres, là par contre c'est différent ) Pierre
  4. Bonsoir, Je reviens donc sur vos réponses comme prévu afin de reformuler vos remarques pour voir si je les ai bien comprises ... et essayer de trouver une solution à chaque problème. A priori je n'ai pas d'intérêt à ce que le site soit hyper bien indexé (car ma part du travail est effectuée, n'étant pas en charge du référencement), mais bien de pouvoir être sûr de mes arguments lorsque je dirai au client que ce sont les conseils qu'il a eu auprès de ses référenceurs (et que j'ai appliqués à la lettre) qui justifient le peu de pages indexées. Le but est aussi de faire ma culture personnelle 1. Les actualités AFP : Visiblement celà fait du duplicate content car elles sont également présentes sur d'autres sites. D'après ce qui a été dit, je pense que ces pages sont indexées dans le supplémental index de google car sur une recherche "normale" elles apparaissent toutes. Historiquement nous avions réalisé un module de gestion de news que le client a voulu remplacer par un partenariat avec l'AFP pour avoir du "contenu ciblé et facile" ... à mon sens ce contenu est inutile car : pas spécifique (des centaines de site ont le même contenu) et pas vraiment ciblé (cela ne parle pas des normes, mais de l'actu High-Tech). Propositions : Laisser les pages telles quelles sachant que cela ne fait rien gagner mais rien perdre non plus Revenir à l'ancien module et demander au client de faire ses actualités spécifiques lui-même (beaucoup à y gagner ?) Ajouter un noindex sur chaque page d'actualité ? => Sinon, psychodays qu'entends-tu par "attention au menu de pagination sous la rubrique actualité" ? 2. Les meta keywords : En effet, le client ne souhaitait pas saisir de mots-clés lui-même pour chaque article (et j'ai pensé qu'il serait difficile d'automatiser ce processus là, mais peut-être est-ce une erreur ?) et nous avons suivi les conseil d'un référenceur pour ajouter une liste de mots-clés sur certaines pages. Par contre, j'avoue que pour le coup je ne sais pas trop comment gérer dynamiquement les mots-clés sur des pages spécifiques comme la liste des actualités, les résultats de recherche, chacune des normes (calcul automatique des mots-clés ?) ... Des conseils ? 3. Le multilingue: Actuellement le client n'a pas fait trop d'efforts pour pousser cet aspect multilingue et je pense en effet qu'il y a pas mal de chemin à faire dans ce sens. Les freins que je vois actuellement sont : les actualités disponibles qu'en Français, beaucoup d'articles ne sont disponibles qu'en une seule langue (avec parfois du contenu "anglais" dans les champs "français" ... bref un beau bordel), quelques détails de contenu non traduit (notamment tous les textes fournis par le référenceur qui ne sont que dans une seule langue). Propositions : Supprimer les drapeaux et garder le site en Français uniquement => quel serait d'après-vous la répercussion au niveau référencement ? Flagrante ? Forcer le client à fournir une traduction de son site dans toutes les langues afin d'éviter le duplicate content Laisser tel quel ... et tant pis ! (est-ce un problème majeur ?) 4. Les nofollow : Initialement nous n'avions pas intégré de nofollow au site, et ceux-ci ont été intégrés de manière à ce que tout le "flux du PageRank" (désolé pour ce terme non technique) aille dans les pages principales : accueil, actualités, nouveautés, veille et plan du site. Vu que le site est "à plat" il n'y a pas énormément d'alternatives et je ne vois pas trop d'autres stratégies ... Je pense en effet que le nofollow vers la section "Brochures" pourrait être supprimé et qu'il faudrait en mettre sur les actualités (cf proposition du noindex dans le 1.) mais les autres ne me semblent pas rediriger vers des contenus importants Question : qu'en pensez-vous ?! 5. Les catégories (arborescence de normes) : Dès la proposition initiale j'avais mentionné l'aspect "désorganisation" lié au manque de catégorie, et j'ai peut être fait une erreur professionnelle en n'insistant pas plus sur ce point (devoir de conseil) ... qu'en pensez-vous ? Néanmoins, le client a supprimé le classement par catégories du Cahier des charges car il n'était pas en mesure de les classer (les données de chaque article ne contiennent pas cette information visiblement). De ce fait le site a toujours été conçu sans cet aspect là ... et intégrer la gestion par catégories impliquerait du développement supplémentaire (et assez conséquent) qui serait donc facturé. C'est la principale raison pour laquelle je n'ai pas encore souhaité lui affirmer que c'était le principal problème de son site ... car si cela n'a aucun effet je passerai pour un incompétent (c'est pas vraiment le cas j'espère ). Questions : Pensez vous que c'est le manque de lien vers des articles (autres que dans le sitemap.xml) qui fait qu'il y a si peu d'articles référencés (car c'est sur eux que le problème se pose) ? Pensez-vous qu'il soit possible d'améliorer le référencement de manière notable en gardant cette structure à plat ? Quels seraient les résultats (nettement visibles, flagrants ...) de l'ajout d'une gestion thématique des normes ? Est-ce que cela justifierait l'investissement du client ? Quelle est ma responsabilité pour ne pas lui avoir fait part de ce problème plus tôt et de manière insistante (devoir de conseil) ? Voici la grande liste de questions que je me pose suite à ce projet ... qui je dois l'avouer traîne depuis bien trop longtemps à mon goût, pour des raisons dont je ne pense pas être responsable mais qui se retournent finalement contre moi. J'espère ne pas vous avoir pris trop de temps ... et que l'un d'entre vous aura la gentillesse de me conseiller. Merci d'avance, Pierre
  5. Bonjour à tous et merci pour toutes ces informations constructives ! Cela confirme mes pensées (le partenariat avec l'AFP, les catégories de normes, l'aspect multilingue et tous ces nofollow qu'un référenceur nous a fait ajouter). Vous m'avez fait également découvrir le "siloing" et je vais me documenter un peu dessus. Je prendrai du temps pour répondre à chacun des points évoqués ce soir, afin de continuer à avancer dans la bonne direction ... le reste cela sera une discussion avec le client, car maintenant mes pensées ont été confirmées
  6. Bonjour à tous, Ce message est en quelque sorte une suite à mon précédent message concernant un problème survenu avec le référencement du site http://www.normadoc.com ... et en plus c'est mon 42ème Le site a été réalisé depuis pas mal de temps désormais, avec son lot d'itérations supplémentaires concernant l'ajout de fonctionnalités. Néanmoins nous avons eu beau faire appel à plusieurs fois à divers référenceurs ayant effectués chacun un audit afin de donner leurs conseils sur l'optimisation du site et leurs conseils n'ont (sans aucun préjugé) rien apporté de nouveau à ce que je savais déjà conçernant le référencement : urls, redirections, sitemap, nofollow (d'autant plus qu'il semble que cela soit désormais inutile) ... Nous avons toujours de gros problèmes pour faire augmenter le nombre de page référencées dans google (et le client ne juge que par ça), et là j'avoue avoir atteint mes limites en terme d'optimisation. C'est pour cette raison que j'apprécierai fortement quelques conseils pour infirmer / confirmer mes suppositions, afin de pouvoir orienter la suite du projet. Le site comporte actuellement plus de 29000 articles, mais seules environ 970 pages sont référencées. Voici les points clés du référencement : Plan du site avec des liens principaux Sitemap.xml soumis à Google Webmaster Tools (contenant uniquement la liste des articles) Robots.txt en place Différenciation au maximum du contenu (meta description, title ...) Travail de rewriting sur les liens, ainsi que de texte cliquable Liens nofollow répartis à divers endroits "stratégiques" Si vous le souhaitez je peux vous ouvrir un accès à GWT afin que vous puissiez m'aider à effectuer un diagnostic, néanmoins actuellement voici mon analyse sur ce problème : Les articles référencés sont (je pense) ceux qui apparaissent dans la catégorie Nouveauté Seul le moteur de recherche du site permet d'accéder aux produits, mis à part un lien depuis le plan de site et les urls du sitemap. A mon avis (ce que je conseille depuis le début mais que le client ne veut / peut pas effectuer) ce site manque cruellement d'une navigation par catégories de normes Les actualités sont gérées par l'AFP avec un partenariat : les 70 dernières actualités sont présentes. Conséquence de ceci, certaines pages (trop anciennes) disparaissent et deviennent donc inaccessibles (404) ce qui apparait dans GWT comme problèmes de contenu ... est-ce très gênant ? Les "slugs" des liens sont générés à la volée en fonction du titre du produit. Ainsi si le webmaster modifie un titre, le lien vers le produit changera (redirection gérée par un code HTTP de redirection). Par contre, une conséquence directe est que certains liens du sitemap pointent quelquefois vers une page de redirection (erreurs d'explorations sitemap dans GWT). Est-ce grave ? Je reste à votre disposition pour plus d'informations, et apprécierai vraiment tout type de conseil concernant ce site car j'avoue être à court d'idées ... et pense ne pas pouvoir faire beaucoup plus dans l'état actuel des choses. De plus, mon manque d'expertise dans ce domaine me bloque dans mes propositions et conseils car je ne peux pas assurer que ceux-ci permettront à coup sûr d'améliorer le référencement ! Merci d'avance pour votre aide ! Pierre
  7. Bonjour, En fait le délai de chargement des pages a fait de suite remonter le nombre de pages indexées (de 400 à 800), cependant depuis ce moment là le nombre de page stagne. J'ai ensuite essayé de vérifier que toutes les requêtes été optimisées (une seule ralentissait pas mal d'autres pages). Enfin j'ai ajouté des redirections 301 à certains endroits pour éviter que 2 urls différentes pointant vers le même contenu soient indexées. En effet j'ai des urls de type "article-ID-slug-du-nom-article" ce qui faisait qu'une infinité d'urls pouvaient pointer vers la même page. Par exemple "article-401-toto-tata" et "article-401-titi-tutu" et "article-401-t" pointaient vers la même page (seul l'id était significatif). J'attends encore un peu pour voir si le nombre de pages indexées se remet à augmenter, mais sinon j'avoue ne plus savoir quoi faire ... sur 30000 articles, seuls 700 sont référencés
  8. Est-ce que cet avertissement est vraiment gênant ?
  9. Bonjour, Je vous confirme que le nombre de pages indexées est en hausse ... cela a semble-t-il résolu mon problème ! Merci pour votre aide, vous pouvez marquer ce message en résolu (ou m'indiquer comment l'éditer car je n'ai pas trouvé) si vous le souhaitez. Pierre
  10. Bonjour, Après ma séance de travail du matin je suis parvenu à optimiser ma requête SQL de recherche et l'affichage de la page est nettement plus rapide. Le soucis de délai dépassé pour google devrait disparaitre. Si ce n'est qu'une question de temps il n'y a aucun problème, mais j'aimerai votre avis pour savoir : 1 - Si il faut que je regarde d'autres choses (notamment comment déterminer le duplicate content de manière précise) 2 - Combien de temps pensez-vous que cela prenne pour que Google se rende compte de son erreur ultime () et ré-indexe mon site ? Merci d'avance pour vos informations ! Pierre
  11. Merci à vous deux pour vos réponses, Oui, merci je vais quoi qu'il arrive travailler là-dessus car c'est vraiment affreux ... je ne pensais pas qu'une augmentation du nombre de norme fasse un tel effet :/ Je t'ai envoyé quelques informations supplémentaires en MP. Concernant le duplicate content, j'ai normalement essayé de différencier au maximum les pages de chaque norme (description, titre et mots-clés fortement liés au descriptif du document). Néanmoins pour les pages de recherche, il n'y a pas de différence ... je vais peut-être rajouter un titre contenant la requête ou quelque chose comme cela ! Par contre, connaitrais-tu un bon outil permettant de vérifier le duplicate content ? (Google WT ne me fait rien remonter de dramatique)
  12. Bonjour, Je suis en charge d'un site internet proposant des normes à la vente. Jusqu'à présent, celui-ci proposait environ 8000 normes et le nombre de pages référencées augmentait petit à petit (>1500) ce qui me semblait normal au sens où le principal moyen de toutes les référencer est de passer par un sitemap.xml. Néanmoins, dans le cadre d'un nouveau partenariat le nombre de normes proposé a doublé (16800 normes). Depuis cette date, le nombre de pages indexées diminue à vue d'oeil (470 actuellement) d'une manière très inquiétante. Il y a (d'après mes conclusions) deux phénomènes pouvant avoir engendré un problème : * Ayant ajouté les nouvelles normes en même temps au sitemap, un nombre important de contenu (liens) a été ajouté rapidement * Notre page de recherche (utilisant une librairie PEAR pour la gestion de la pagination et ayant une requête assez complexe à effectuer) met un temps énorme à répondre dans le cas de l'affichage de toutes les normes. Conséquence, dans Google Webmaster Tools tous les accès à ces pages listant tous les articles (actuellement 240, mais potentiellement 16800 articles / 20 par page = 840) indique "délai dépassé" ... J'aurai souhaité votre aide pour savoir ce qui aurait pû être la cause de cette chute vertigineuse et si vous voyez une solution : * Dois-je augmenter petit à petit le nombre d'urls du sitemap ? * Dois-je exclure l'url de recherche avec chaine vide par robots.txt ? * Le nombre de page remontera-t-il rapidement par la suite ? * ... dans tous les cas améliorer la gestion de cette page de recherche me semble être primordial Merci d'avance pour votre aide.
  13. J'ai déjà tenté avec des autoload, mais il fallait que je le fasse évoluer pour que cela cherge les classes dans les sous dossiers (de manière récursive) pour s'adapter à PEAR. En effet c'est pas pratique ... au moins j'ai la confirmation que sans ini_set() et sans PEAR d'installé, il est impossible (ou pas évident du tout) d'utiliser PEAR : je me sens moins bête ! Merci pour ces informations ... et adieu Hebergeur-Discount !
  14. Bonjour, Je rédige ce message dans 2 buts distincts. Le premier est d'avertir certains développeurs familiers avec la librairie PEAR pour ne pas réinventer la roue à chaque fois, la seconde est pour avoir une solution à mon problème. Devant travailler sur un projet qui serait (je ne l'ai su qu'après) hébergé sur hebergeur-discount.com j'ai comme d'habitude basé mes classes sur la librairie PEAR. Le problème est qu'une fois en ligne, il me fut impossible de faire marcher ces scripts : pourtant leur offre stipule bien explicitement "PEAR" dans la catégorie "PHP" ... Après envois de mails dont la réponse fut très froide ("Il nous est impossible d'installer PEAR sur nos serveurs. Cordialement") et appels à leur hotline ("Voyez avec le service technique"), je me pose devant un problème : comment utiliser PEAR sur cet hébergeur ? Bien entendu ... "pour des raisons de sécurité" la fonction ini_set() est désactivée donc impossible de modifier l'include_path. 1) Avis aux développeurs utilisant PEAR : évitez de travailler avec cet hébergeur ... j'imagine également au vu de leur diplomatie que les autres problèmes doivent être réglés bizarrement ! 2) Demande d'aide : à part changer d'hébergeur, est-il possible d'utiliser PEAR sans soucis en évitant de modifier à la main tous les fichiers de la librairie pour modifier les include ? (la fonction ini_set étant désactivée) Merci d'avance pour votre aide. Pierre
  15. real34

    Easyphp et sessions

    Cela vient peut-être du fait que mysql_fetch_array te renvoie un tableau indexé par des indices numériques (d'après la doc cela peut se configurer). Essaie avec mysql_fetch_assoc() ... tu auras directement ton $_SESSION['username'] de créé (enfin normalement !)
  16. Bonjour, A ce que je vois, personne ne semble inspiré par mon problème ! J'ai cherché et un jour (par miracle) cela a remarché. Cependant je ne comprends toujours pas pourquoi ! Aujourd'hui, cela replante ... même erreur, mêmes symptomes, tout pareil ! Je n'ai rien changé !!!! Il me semble après d'autres suppressions de fonctionnalités (au fur et à mesure) que le problème pourrait venir d'une variable de Droits que je passe en session (dans mon objet Auth). Voici ce que j'ai comme code lors de l'appel de ma méthode de callback onLogin() : public function onLogin($username = null, &$auth = null) { $this->setAuthData('droits', new Droits($this->options_auth['dsn'], $this->getAuthData('droits')), true); } Cela crée un objet 'Droits' et le stocke dans une variable de session associée à Auth ... Dans mon constructeur, j'ai ceci qui est exécuté la première fois (mais la seconde fois, cela plante avant !) // Gestion des droits de l'utilisateur if(!($this->getAuthData('droits'))){ // Construction des droits de l'utilisateur if($this->getAuth()){ $this->setAuthData('droits', new Droits($dsn, $this->getAuthData('droits')), false); } else { $this->setAuthData('droits', new Droits($dsn), false); } } Il semble que le problème vienne finalement d'un objet $mdb2 que je gardais dans mon instance de 'Droits' (en session). J'en ai conclu qu'il valait mieux que je garde simplement le dsn de la connexion et que je la recrée à chaque fois ! Pensez-vous que le problème vienne vraiment de là ?? Est-il vraiment mauvais d'avoir un objet de type "ressource" de connexion à la bd dans un objet ?
  17. Bonjour à vous ! Je me tourne vers vous car j'ai un problème carrément incompréhensible suite à des modifications de mon site. Pour être honnête je ne sais pas d'où cela peut venir (peut-être du Vendredi 13 ) En effet, ce matin j'étais en train de modifier mes pages (pour information, passer une variable normale en un tableau et les conséquences que cela entraine). Lors de mes tests tout marchait impeccable, et une fois que j'ai eu terminé, j'ai continué les mêmes tests que précédemment et j'ai obtenu une erreur. Je m'apercevrai plus tard que le problème survient lorsque l'utilisateur visite la 2nde page du site (càd que sa session est créée et qu'il actualise la page). Voici mon erreur : Ce message est issu de mon __autoload, il signifie qu'un objet MDB2_Driver_Datatype_mysql a tenté d'être créé et que la classe n'a pas été déclarée. Je n'ai aucunement créé un objet de ce type dans mes scripts, et j'ai bien modifié mon php.ini pour le faire inclure les librairies PEAR (et le fichier MDB2/Driver/Datatype/mysql.php existe bien !). J'ai donc essayé de voir d'où cela pouvait bien venir ... je suis arrivé jusqu'à ma classe "Membre" qui est étendue de la classe PEAR "Auth". Je l'utilise depuis le début du développement du projet (2 semaines) sans avoir jamais rencontré de problèmes. Le problème vient plus précisément de l'appel au constructeur de Auth. J'ai donc rajouté des lignes de debug dans Auth.php et voici d'où vient exactement le problème : // Start the session suppress error if already started echo session_id(); if(!session_id()){ echo 'toto'; print_r($_SESSION); session_start(); // <------------ Ici le problème !!! echo 'tata'; print_r($_SESSION); // Affiche Array() la première fois if(!session_id()) { // Throw error include_once 'PEAR.php'; PEAR::throwError('Session could not be started by Auth, ' .'possibly headers are already sent, try putting ' .'ob_start in the beginning of your script'); } } echo session_id(); // Affiche bien l'id de session la 1ère fois Lorsque la page est générée une première fois, tout marche impeccablement bien. Si on l'actualise, les lignes de debug avant le "session_start()" sont bien exécutées, et celles après NON ! Celaveut dire qu'on rentre bien (même une fois la session créée !!) dans le if(!session_id()) ... mais que le session_start() fait quelquechose de bizarre ! Je ne vois pas d'où cela peut venir, car le fichier de session est bien présent dans le dossier 'wamp/tmp' et si je le supprime, cela remarche. Je veux bien débugguer mais là j'arrive à une ligne atomique sur laquelle je n'ai aucun contrôle ... J'ai vraiment besoin de vos compétences pour m'aider à y voir plus clair dans mon problème et de votre expérience pour voir d'où cela peut venir !! Merci d'avance à vous tous !
  18. Ben dis-donc ... c'est toujours quand on est désespéré qu'on trouve la solution ! Ca fait un jour que je cherche et dès que je demande ... je trouve! Vu qu'il n'y a pas beaucoup de questions de ce type sur le net, je laisse mon message avec la solution : tout se passe dans le constructeur, il faut que le dernier champ (un booléen) soit à true. On a donc : $form_add = new HTML_QuickForm_DHTMLRulesTableless('add_cat', 'post', $_SERVER['REQUEST_URI'], null, null, true); Désolé pour la gêne occasionnée
  19. Bonjour à tous ! J'ai un problème avec des formulaires Quickform. En effet, j'ai découvert cette librairie récemment et je la trouve très pratique pour générer des formulaires (c'est un peu son but !!), et je l'utilise donc dans mon projet actuel. Or je n'ai pas la science infuse et j'ai passé pas mal de temps dans la doc !!! Mais si je me tourne vers vous aujourd'hui, c'est car j'ai un problème auquel je n'ai pas pu répondre dans le cadre de mes recherches sur le net. Je pense que l'erreur est toute bête, mais je n'arrive pas à voir d'où elle vient ... J'ai 3 formulaires Quickform sur la même page : un pour la modif, un pour l'ajout et un pour la suppression de catégories. Le problème est que lorsque j'en valide un, tous les champs s'entremêlent et c'est un bordel pas possible dans les variables passées ... Par exemple : à la base, les 3 formulaires cherchaient à se valider quelque soit le bouton 'submit' que j'utilisais. J'ai donc rajouté un champ hidden 'do' qui prenait suivant le formulaire les valeurs 'modif', 'suppr', 'add' ... Or le champ 'do' a toujours la valeur 'add' (la dernière dans la déclaration des formulaires). Je suis donc totalement perdu, d'autant plus que mes formulaires ont des noms différents et des noms d'objets QuickForm différents également ... Vous trouverez ci-dessous mon code, et n'hésitez pas à me poser d'autres questions pour plus de précisions ! <?php /* ********** Déclaration du formulaire de modification de la catégorie ********** */ $form_modif = new HTML_QuickForm_DHTMLRulesTableless('modif_cat', 'post', $_SERVER['REQUEST_URI']); $form_modif->setRequiredNote('<span class="required">*</span> '.$lang->put('obligatoire', 'Formulaires', 'Champs obligatoires')); $form_modif->setDefaults(array( 'intitule' => $cat->intitule, )); // Déclaration des éléments $form_modif->addElement('header', null, 'Modification de l\'intitulé'); $form_modif->addElement('hidden', 'do', 'modif'); $form_modif->addElement('text', 'intitule', 'Intitulé de la catégorie : '); $form_modif->addElement('submit', null, 'Modifier'); // Déclaration des règles $form_modif->addRule('intitule', 'Entrez le nom de la catégorie', 'required'); $form_modif->addRule('intitule', 'Pas plus de 100 caractères', 'maxlength', 100); // Déclaration des filtres $form_modif->applyFilter('__ALL__', 'trim'); /* ********** Fin du formulaire de modification de la catégorie ********** */ /* ********** Déclaration du formulaire de suppression de la catégorie ********** */ $form_suppr = new HTML_QuickForm_DHTMLRulesTableless('suppr_cat', 'post', $_SERVER['REQUEST_URI']); $form_suppr->setRequiredNote('<span class="required">*</span> '.$lang->put('obligatoire', 'Formulaires', 'Champs obligatoires')); // Déclaration des éléments $form_suppr->addElement('header', null, 'Suppression de la catégorie'); $txt_suppr = '<p>Cliquez sur le bouton ci-dessous afin de supprimer définitivement la catégorie et ses sous-catégories. <br /><strong>/!\ ATTENTION tout le contenu sera supprimé si vous ne sélectionnez pas une catégorie dans laquelle les intégrer</strong></p>'; $form_suppr->addElement('static', 'label', $txt_suppr); $sel_nv_cat =& $form_suppr->addElement('select', 'nouvelle_cat', 'Nouvelle catégorie pour les produits de cette catégorie : '); $sel_nv_cat->addOption('--------', null); $sel_nv_cat->addOption('Supprimer tout le contenu', '-1'); $sel_nv_cat->loadQuery($page->Dsn(), 'SELECT id, intitule FROM '.Categorie::TABLE_SQL, 'intitule', 'id'); $form_modif->addElement('hidden', 'do', 'suppr'); $form_suppr->addElement('submit', null, 'Supprimer'); // Déclaration des règles $form_suppr->addRule('nouvelle_cat', 'Sélectionnez une nouvelle catégorie', 'required'); /* ********** Fin du formulaire de suppression de la catégorie ********** */ /* ********** Déclaration du formulaire d'ajout d'une catégorie ********** */ $form_add = new HTML_QuickForm_DHTMLRulesTableless('add_cat', 'post', $_SERVER['REQUEST_URI']); $form_add->setRequiredNote('<span class="required">*</span> '.$lang->put('obligatoire', 'Formulaires', 'Champs obligatoires')); $form_add->setDefaults(array( 'intitule' => '', )); // Déclaration des éléments $form_add->addElement('header', null, 'Ajout d\'une sous-catégorie de '.$cat->intitule); $form_add->addElement('text', 'intitule', 'Intitulé de la catégorie : '); $form_add->addElement('submit', null, 'Ajouter'); $form_modif->addElement('hidden', 'do', 'add'); // Déclaration des règles $form_add->addRule('intitule', 'Entrez le nom de la catégorie', 'required'); $form_add->addRule('intitule', 'Pas plus de 100 caractères', 'maxlength', 100); // Déclaration des filtres $form_add->applyFilter('__ALL__', 'trim'); /* ********** Fin du formulaire d'ajout de la catégorie ********** */ //////////////////////////////////////////////////////////////////////////////////////// // Affichage de la page // //////////////////////////////////////////////////////////////////////////////////////// $page->printBefore(); echo '<h1>Gestion de la catégorie '.$cat->intitule.'</h1>'; // 1) Modification de la catégorie actuelle if (!empty($_POST['do']) && $_POST['do'] == 'modif' && $form_modif->validate()){ $resu_modif = $cat->modify($form_modif->exportValue('intitule'), $cat->parent); if(!$resu_modif){ // Problème lors de la modification echo '<p class="erreur">Une erreur est survenue lors de la modification de la catégorie. Voici plus d\'informations :<br />'.$resu_modif.'</p>'; } else { header('Location:'.$_SERVER['REQUEST_URI']); exit; } } else { // Affichage du formulaire $renderer =& new HTML_QuickForm_Renderer_Tableless(); $form_modif->accept($renderer); echo $renderer->toHtml(); } // 2) Suppression de la catégorie actuelle if (!empty($_POST['do']) && $_POST['do'] == 'suppr' && $form_suppr->validate()){ $resu_suppr = $cat->delete(); if(!$resu_suppr){ // Problème lors de la suppression echo '<p class="erreur">Une erreur est survenue lors de la suppression de la catégorie. Voici plus d\'informations :<br />'.$resu_suppr.'</p>'; } else { header('Location:'.$_SERVER['REQUEST_URI']); exit; } } else { // Affichage du formulaire $renderer2 =& new HTML_QuickForm_Renderer_Tableless(); $form_suppr->accept($renderer2); echo $renderer2->toHtml(); } // 3) Ajout d'une catégorie fille à l'actuelle if (!empty($_POST['do']) && $_POST['do'] == 'add' && $form_add->validate()){ $resu_add = $cat->addChild($form_add->exportValue('intitule')); if(!$resu_add){ // Problème lors de l'ajout echo '<p class="erreur">Une erreur est survenue lors de l\'ajout de la catégorie. Voici plus d\'informations :<br />'.$resu_add.'</p>'; } else { header('Location:'.$_SERVER['REQUEST_URI']); exit; } } else { // Affichage du formulaire $renderer3 =& new HTML_QuickForm_Renderer_Tableless(); $form_add->accept($renderer3); echo $renderer3->toHtml(); } ?>
  20. Voici quelques nouvelles !! SUite à vos réponses et à des discussions avec mon entourage, j'ai décidé de me lancer dans la création d'une Entreprise Individuelle sous le régime de micro-entreprise. Après tout, mon but premier est de me faire de l'expérience en plus d'arrondir les fins de mois, et le tout de manière légale. Moi qui pensais qu'il y avait énormément de frais, en fait le fait de créer sa propre entreprise n'a pas l'air si difficile (dans les conditions que je souhaite !) et permet de faire une expérience ENRICHISSANTE en tant qu'étudiant, tout comme futur salarié !! Je vous remercie pour vos conseils, et je reviendrai vers vous pour toutes questions à propos de ça ! Si vous avez des conseils de vieux sioux, je suis à votre Lecture Bonne journée
  21. Tout d'abord, merci à vous pour vos réponses ... Je me suis renseigné sur le portage salarial, et en comptant environ 10% (moyenne raisonnable) pour la société de portage, on arrive à ce que je touche 50% de ce que paye le client. Je trouve ça un peu élevé, c'est pour ça que je recherche d'autres choses ... Et c'est pareil pour la Junior entreprise de mon école Concernant la micro-entreprise, d'après votre expérience, vous pensez qu'en moyenne on touche au final quel pourcentage de ce que paye le client ?? Car pour 600/mois, si je dois en toucher 300 c'est pas mal mais en comparaison avec le travail fourni ça fait un peu faible je trouve. Merci d'avance pour vos réponses !
  22. Bonjour, Je suis actuellement en 3ème année d'école d'ingénieur, et je fais des sites web durant mon temps libre car c'est ma passion et que cela me permet d'acquérir de l'expérience dans la gestion de projet (chose importante pour mon futur statut !). Travaillant pour des sites "privés" (mon école, amis ...) au début, j'ai réalisé quelques petits projets de manière "non-déclarée" et désormais, voyant que cela me plait je souhaiterai entrer dans la légalité. Je sais que beaucoup ici diront que c'est la meilleure solution, c'est pour ça que je vous demande un peu d'aide. J'ai donc actuellement un projet en vue avec une agence de développement web, ce qui fait que le client est trouvé. Je regarde donc quelle est la meilleure solution pour moi sachant que je réponds aux critères ci-dessous : - Etudiant majeur (19ans) - Bénéfices (comprendre prix facturé) envisagés : 600€/mois pendant 6 mois + 10% des revenus publicitaires pendant 1an + autres projets par la suite (au bout de 6 mois) voir en parallèle (mais maximum 600€/mois également) - Aucun autre revenu - sauf petits boulots occasionnels, pas plus de 400€/an disons Je ne connaissais rien du tout aux entreprises : charges, taxes, TVA ... étaient pour moi des termes très très vastes ! J'ai donc essayer de me documenter sur le web, et au final je suis un peu perdu dans toutes les éventualités qui sont proposées. On m'a parlé de la Maison des Artistes qui semble intéressante (env. 10%)... à condition de se déclarer comme webdesigner ! Le portage salarial revient je pense trop cher (env. 50%) et me serai totalement inutile comparé à la première solution ! Je me demande en fait si du fait que les étudiants sont exonérés de charges pendant un an (ACCRE) ... voir plus je ne sais pas trop !! ET le fait de bénéficier d'avantages tels que déduction de la TVA (par exemple sur ma connexion internet, l'achat de choses de fonctionnement genre encre, ordinateur, imprimante etc...), je me demande si tout ça ne pourrai pas devenir avantageux pour moi ! Je me tourne donc vers vous pour savoir en quoi mon statut d'étudiant peut m'aider, et surtout quel est d'après vous ce qui correspond le mieux à mon profil ... Merci d'avance à ceux qui auront pris le temps de lire ce message et de m'aider dans cette démarche. J'attends avec patience vos réponses. Pierre -
  23. As-tu mis un session_start(); au début de toutes ces pages ?
  24. Voici les deux fonctions que j'utilise. Je ne sais pas si c'est 100% sécurisé, mais cela marche sans problème avec les accents, les apostrophes et les balises HTML (non interprétées) : /* prepare_chaine : Prépare une chaine avant de l'insérer dans la bdd, la sécurité se joue ici */ function prepare_chaine($valeur){ // Stripslashes if (get_magic_quotes_gpc()) { $valeur = stripslashes($valeur); } // Protection si ce n'est pas un entier if (!is_numeric($valeur)) { $valeur = mysql_real_escape_string($valeur); } return $valeur; } /* decode_chaine : Prépare une chaine avant de l'afficher / Complément de prepare_chaine */ function decode_chaine($chaine){ $chaine = htmlentities($chaine); $chaine = nl2br($chaine); return $chaine; }
  25. real34

    PHP5 ou C# ?

    Tout d'abord, merci pour vos remarques, c'est très instructif ! Je viens de trouver les objets PEAR et je vois un peu mieux l'utilisation que l'on peut faire des classes en PHP, même si les fonctions resteront encore un petit moment un réflexe pour moi :/ J'ai également lu quelques informations et un début de cours sur l'UML qui semble être important pour la compréhension de la POO, je vais continuer de ce côté là un peu ! Cependant, je souhaite coder des choses propres sur mon site-perso afin de les réutiliser si je veux faire d'autres travaux par exemple. C'est donc en se sens que je tenais à m'informer sur PHP5 ! Par exemple, je vais sûrement mettre en place un système de news, un livre d'or, un système d'articles et sûrement d'autres trucs par la suite afin d'apprendre et de mettre en application des nouvelles choses (AJAX, RSS etc...) D'autre part, je souhaite depuis un petit moment passer au .Net et au C++, je me suis donc logiquement tourné vers le C# (côté syntaxe, quasiment pas de différences avec Java en plus !). J'ai commencé à lire un tutorial assez exhaustif (647 pages ) sur le C# et n'attend qu'une seule chose : pouvoir mettre en application. C'est là que se pose le problème => Je ne trouve pas d'idée de projet pour mettre en application mes connaissances et apprendre !! Autant trouver une idée de site web ce n'est pas un problème, mais une idée de logiciel c'est plus dur ! Vu que je suis au stade d'apprentissage, je préfère me renseigner un peu avant ... je pense que je vais essayer de me trouver un projet en C# et coder en parallèle des petits modules pour mon site. Mais si vous avez des conseils supplémentaires je suis preneur !
×
×
  • Créer...