Aller au contenu

jcaron

Membre+
  • Compteur de contenus

    998
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par jcaron

  1. Le problème ce n'est en effet pas le mysql_num_rows, mais le moment où tu fais ta requête. Il est obligatoire et indispensable d'utiliser mysql_real_escape_string sur toutes les données que tu insères dans une requête SQL, surtout si les données viennent de l'extérieur (une saisie utilisateur, mais de façon générale tout ce que ton script récupère: variables, cookies, headers...). Sinon ça t'ouvre à tes problèmes de sécurité très graves (injection SQL). Alternativement, tu peux utiliser les fonctions PDO pour accéder à mysql, qui feront tout ça automatiquement si tu utilises la bonne syntaxe (avec des "placeholders" pour chaque variable, et le passage des variables séparément). Jacques. EDIT: typo
  2. 1 - peu importe 2 - nulle part 3 - pas grand chose 4 - oui 5 - peu importe Le seul problème, c'est l'amorçage pour atteindre la masse critique. C'est juste une question de sous. Jacques.
  3. Le +7200 ce serait au timestamp qu'il faudrait l'ajouter, pas à la date, mais si c'est comme je le pense un problème de timezone (le serveur est configuré en GMT plutôt qu'en CET), il se posera le problème du changement d'heure (heure d'été/heure d'hiver). Autant faire la "bonne" correction, qui consiste à utiliser le bon fuseau horaire. Jacques.
  4. Oui, je pense que le problème vient de la date/heure que tu fournis en entrée à cette fonction. La fonction de fait que convertir une date au format mysql en un autre format, elle ne touche pas du tout à l'heure. Il est vraisembable que ton problème ne vienne pas réellement du code, mais plutôt de la configuration de ton serveur (sa "timezone" en particulier), mais sans savoir d'où vient la date que tu manipules à l'origine, difficile de dire. Jacques.
  5. date("c",$timestamp) ou date(DATE_W3C,$timestamp) peut-être? Le "T" dans ton format est interprété comme "insère la timezone ici", ceci explique probablement cela. Jacques.
  6. Le problème que tu vas rencontrer au delà de la config, c'est que certains FAI bloquent les connexions sur le port 25 (smtp) vers les serveurs de mail qui ne sont pas les leurs (pour éviter les spammeurs qui utilisent leur réseau). Ma solution perso c'est un tunnel ssh depuis ma machine vers mon serveur de mail. Comme ça tu apparais comme un client "local" à ton serveur de mail, et voilà. Tu peux aussi utiliser un VPN à la place si tu préfères, mais un client ssh c'est généralement plus facile à installer et à configurer. Jacques.
  7. Mon petit doigt me dit que $page = $_GET['page'] et qu'il y a un rewrite genre ^(../.*.php)$ index.php?page=$1 non? Jacques.
  8. Le partitionnement de table c'est bien gentil, mais ça veut dire que tu ne fais jamais de recherches que par le nom complet (ou au moins le début du nom), c'est un peu limitant, non? Je pense qu'une bonne jointure bien faite (i.e. avec les bons index) ça devrait être nettement plus simple. Jacques.
  9. Je ne comprends pas comment mysql peut t'autoriser à ajouter une colonne "not null" sans valeur par défaut: la colonne en question est vide donc elle ne respecte pas la contrainte. Donc soit il y a un "raccourci" dans mysql qui dit que si tu mets not null alors il lui met une valeur de chaîne vide plutôt que null par défaut (et donc tu as une valeur par défaut), soit mysql se moque de toi :-) Avec un vrai serveur SQL, pour ajouter une colonne avec une contrainte NOT NULL à une table déjà remplie, soit il faut mettre une valeur par défaut explicite, soit il faut faire ça en plusieurs temps (ajout de la colonne sans valeur par défaut ni contrainte, modif de la colonne pour ajouter la valeur par défaut, remplissage de la colonne, modif de la colonne pour ajouter la contrainte). Note aussi que le comportement peut éventuellement différer entre une table myIsam et une table InnoDB. Autre alternative si la jointure ne te convient pas: créer une nouvelle table en copiant l'ancienne (un truc genre create table nouvelle as select *,cast(nouvelle_valeur_par_défaut as type) as nouvelle colonne from ancienne), puis remplacer l'ancienne table par la nouvelle (2 x alter table rename). Le tout avec une transaction bien placée suivant tes circonstances (si tu peux empêcher les écritures dans la table pendant l'opération, une courte transaction autour des deux alter table rename suffira). Jacques.
  10. Euh... Comment est-ce-que tu peux ajouter une colonne not null sans valeur par défaut? Jacques.
  11. C'est aussi ma première réaction, mais bon, ça peut arriver qu'on veuille étendre un schéma déjà existant. Je ne sais pas comment ça se passe avec mysql, mais avec postgresql un ajout de colonne est rapide tant qu'on ne met pas de valeur par défaut à la nouvelle colonne. Comme l'ajout de la colonne lui-même est bloquant, la solution consiste alors à ajouter la colonne sans défaut, puis mettre le défaut sur la colonne, puis initialiser cette nouvelle colonne avec cette valeur par défaut. Evidemment, cette dernière opération peut être un peu longuette suivant la taille de la table, et avec mysql le type de base (MyISAM ou Innodb) va donc influencer le type de lock et donc le fait que ça bloque ou pas. Autre solution, créer une autre table qui sera utilisée avec une jointure avec la première, éventuellement avec une vue pour simplifier les choses en lecture. Jacques.
  12. Très clairement, le serveur n'interprète pas le php, et envoie le fichier tel quel (la page n'est pas réellement vide, si tu regardes le source tu verras tout le code php que le navigateur ignore). Tu as bien activé php? C'est expliqué ici: />http://www.amenwiki.com/index.php/Activation_Php Jacques.
  13. Si déjà tu ne disais précisément ce qui ne fonctionne plus et comment, ça pourrait aider. Ca fait une erreur? Laquelle? Ca n'envoie pas le mail? Autre chose? Jacques.
  14. su se protège contre ce genre de choses en réinitialisant stdin, de mémoire, donc ce n'est pas possible de cette façon. Ce sera probablement plus simple soit via ssh, soit via un processus avec les bons droits à qui tu vas parler (par exemple un processus en cron qui va récupérer tes choses à faire en bdd, ou un démon qui va faire la même chose, ou un démon a qui tu parles via un socket...). Jacques.
  15. Le "chemin complet" ne me semble pas très complet. Ce doit être le chemin complet sur le disque, pas à l'intérieur du site. Suivant ton hébergeur, ça va être plus ou moins compliqué, genre /home/usermachin/www/mdp/mdpCours1.txt. Jacques.
  16. Encore une fois, tu ne nous donnes aucun exemple concret. Commence par nous dire ce que tes deux scripts font, d'où sort $news, d'où sort $var[5] (en fait l'ensemble de $var), ce qu'ils contiennent respectivement, quel est le rapport entre les deux. Sans ça, on n'a aucune chance de pouvoir t'aider avec si peu d'informations. Jacques.
  17. Moi je n'ai toujours rien compris à ce que tu as comme données, où, et ce que tu veux faire exactement. Tu n'as toujours donné aucun exemple d'où sortent ton "$news" ou ton "$var[5]" et le lien qu'il pourrait y avoir entre les deux. Donne-nous des exemples concrets, parce que là, pour t'aider, à part le marc de café ou la boule de cristal, ça va être dur. Tu nous dis que "$var[5]" ne te "convient pas", mais tu ne nous dis pas ce qui te conviendrait et pourquoi... Jacques.
  18. Perso, j'ai rien compris. Ca veut dire quoi une variable "donnée" par une autre? Donne-nous au moins un exemple complet de ce que tu as et ce que tu veux... Jacques.
  19. L'erreur en question (qui n'est stricto sensu pas exacte d'ailleurs) me fait penser que tu dis (éventuellement implicitement) que c'est de l'UTF-8, alors qu'en fait tu balances de l'ISO-8859-1 ou quelque chose du genre. Tous les caractères sont autorisés en UTF-8, mais pas toutes les séquences d'octets. Donc soit tu t'assures que l'encodage que tu utilises correspond à celui que tu déclares, soit tu bottes en touche en utilisant des entités (soit textuelles commes é soit numériques comme é). Jacques.
  20. Il n'y a pas de caractères interdits en UTF-8, UTF-8 n'est qu'un encodage, qui permet d'encoder n'importe quel caractère Unicode. En XML, tu dois obligatoirement "échapper" < (puisque c'est le début d'un tag) et & (puisque c'est le début d'une entité), qui sont donc respectivement "<" et "&" dans le texte. Dans les attributs, tu dois aussi échapper ' et/ou " ("'" et """ respectivement). On échappe aussi souvent > (">"). Tu peux échapper n'importe quel autre caractère sous forme d'une entité numérique (decimal; ou hexa;), mais ce n'est normalement pas nécessaire si tu respectes bien l'encodage indiqué (i.e. si tu ne balances pas de l'iso-8859-1 en disant que c'est de l'UTF-8, ou l'inverse). Jacques.
  21. En cliquant sur "Add e-mail forward"? Le "catch-all" ne semble être qu'une entrée par défaut pour choper tout le reste si nécessaire. Tu as bien noté qu'il indique que si tu utilises ce service il va changer les NS? Il faut donc que tu aies la config correcte de ton domaine chez eux. Jacques.
  22. Tu as des exemples ici: />http://www.google.com/support/merchants/bin/answer.py?hl=fr&answer=188476&ctx=cb&src=cb&cbid=-mcjwjfnrl8m4&cbrank=1 (en déroulant la première section, "Problèmes relatifs à la création de fichiers de données") Bizarrement, ils ne mettent pas de devise dans les prix dans leurs exemples. Quelques points à vérifier: - le fichier passe-t-il une validation XML? - utilises-tu le bon encodage, et correspond-il à ce que tu indiques dans le header <?xml...?>? - le problème se présente-t-il pour tous les produits ou seulement certains? Si c'est le cas, ça peut être un problème d'encodage (de & et < en particulier). Jacques.
  23. Beaucoup de régies de pub/affiliation (y compris Adsense) ont une vision assez simpliste de le façon dont les choses doivent être faites. Il faut croire que personne ne les a contrôlés récemment. Il faut aussi noter qu'historiquement, il y a eu des divergences assez notables sur les obligations en matière de facturation d'un pays de l'UE à l'autre. Officiellement, ça a été harmonisé il y a quelques années (par l'avant-dernière directive TVA si ma mémoire est bonne), mais les habitudes ont la vie dure. Il me semble que la plupart des régies font un appel à facture, et attendent ensuite une facture. Quelques-unes font de l'auto-facturation (ce sont elles qui émettent la facture, et la mettent à disposition des affiliés, ce qui est à mon avis la meilleure méthode). D'autres font de l'auto-facturation incorrectement: elles émettent une facture, mais ne te la mettent pas à disposition, et ignorent un peu la plupart des mentions obligatoires (surtout les nouvelles obligatoires depuis le 1er janvier). Jacques.
  24. On suppose donc qu'on parle de services. Lors de l'"achat": - si dans le même pays ET que le vendeur est assujetti à la TVA (pas en franchise), il faut son numéro de TVA, il doit te facturer de la TVA, tu dois lui payer, il devra la déclarer et la reverser (et toi tu dois la déclarer pour te faire rembourser) - si dans le même pays et pas de TVA (franchise), alors pas de TVA (mais mentions obligatoires qui vont bien sur la facture) - si dans un autre état-membre de l'UE, alors auto-liquidation: il faut son numéro de TVA (même s'il est en franchise), mais pas de TVA sur la facture, mention obligatoire qui va bien, le vendeur doit déclarer sur sa DES, tu dois déclarer la TVA au taux en vigueur dans ton pays en collecte et en remboursement (solde nul, mais déclaration obligatoire quand même) - si hors UE, alors pas de TVA nulle part Tu peux vérifier le numéro de TVA automatiquement en utilisant le webservice fourni par la CE: />http://ec.europa.eu/taxation_customs/vies/faqvies.do#item16 (question 16) Evidemment si le numéro fourni est "bon" mais ne correspond pas à l'entité en question, c'est lui qui est en tort, pas toi. Lors de la "vente": - si dans le même pays, tu factures avec TVA quoi qu'il arrive - si dans un autre état-membre de l'UE ET qu'il est assujetti à la TVA (pas en franchise), alors auto-liquidation, il faut son numéro de TVA, mentions obligatoires sur la facture, il doit déclarer la TVA en collecte et remboursement (solde nul), tu dois porter les montants correspondants sur ta DES - si dans un autre état-membre de l'UE, dans les autres cas (en franchise ou particulier), tu factures avec TVA (à ton taux local) - si hors UE, pas de TVA Note que si tu veux être efficace tu as intérêt pour l'"achat" à émettre les factures à la place du "vendeur" (auto-facturation / facturation pour compte de tiers). Il faut que ce soit prévu par le contrat, et il y a quelques procédures qui vont avec, vois les instructions locales des impôts. Mais pour que la facture soit valable il faut souvent des mentions additionnelles (par exemple en France le numéro de RCS ou le SIRET, le type de société, le capital pour les sociétés de capitaux...). Tu as intérêt à valider les informations que tu peux (genre le SIREN/SIRET ont un format précis, intègrent une clef voire deux, etc.). Jacques.
  25. Ce genre de choix est normalement une préférence de l'utilisateur réglée dans le navigateur. Tu peux tenter de forcer une nouvelle fenêtre en ajoutant une taille pour la fenêtre (par exemple 'height=200, width=200' comme troisième paramètre de window.open), mais ce n'est pas garanti que ça donne l'effet escompté dans tous les cas. Jacques.
×
×
  • Créer...