Aller au contenu

jcaron

Membre+
  • Compteur de contenus

    998
  • Inscrit(e) le

  • Dernière visite

Messages postés par jcaron

  1. Les logs montrent qu'il envoie bien quelque chose, mais...

    1. Le start n'est visiblement pas comme je le pensais juste un offset en octets

    2. En regardant dans le source d'un module qui gère ça, il semblerait qu'il faille reconstituer un header MP4 au début du fichier

    Bref, pas si évident que ça, mais je me dis que ça ne devait pas plus marcher sans le système de token et tout ça, si? Si ça marchait, ça veut dire que tu as un module qui gère ça qui est installé, et la solution c'est probablement que le script php, au lieu de balancer le fichier directement, fasse un redirect interne vers l'URL d'origine (comme c'est interne ce ne serait pas visible de l'extérieur), mais ça commence à devenir un peu compliqué.

    Jacques.

  2. Ahhh je viens de réaliser un truc... Le token n'est valable qu'une seule fois, donc forcément par la suite ça ne marche pas. D'ailleurs je suis surpris que ça fonctionnait (même en repartant au début) avant.

    Ca complique un peu, il faut changer (un peu) la logique pour que que le token reste valable mais expire au bout d'un moment. Ca implique d'ajouter une colonne dans la table SQL (création ou expiration du token), puis de vérifier ça quand tu le récupères (et ne pas effacer le token -- il faudra par exemple probablement faire du ménage dans la table de temps en temps).

    Jacques.

  3. Ben il faut remplacer le readfile qui envoie forcément tout le fichier par une séquence fopen, fseek, fpassthru. Le fseek doit utiliser la valeur éventuelle du paramètre de début (0 sinon), et voilà.

    Quelque chose du genre:


    $fp = fopen($fichier,"rb");
    if (isset($_GET['start']))
    {
    fseek($fp,$_GET['start']);
    }
    fpassthru($fp);

    Il faut aussi rajouter un flag QSA à ta RewriteRule.

    Jacques.

  4. Si tu nous donnais un peu plus de précisions sur le système utilisé (je suppose qu'il y a un script qui "sert" la vidéo après avoir vérifié le token), ça pourrait aider... Il doit suffire d'ajouter la gestion du paramètre dans le script en question, et le problème serait réglé, ça doit être deux lignes de code à changer, en gros, mais il faut avoir le code en question pour le faire...

    Jacques.

  5. Il existe plusieurs types de certificats SSL:

    - certificats SSL qui ne font que sécuriser la connexion, mais ne contiennent aucune info sur le titulaire du certificat (juste l'adresse du site)

    - certificats SSL qui confirment l'identité du titulaire

    - certificats SSL "EV" qui confirment l'identité du titulaire après vérifications plus "poussées", qui donnent la barre verte

    Les premiers peuvent être obtenus en quelques minutes pour pas cher du tout (voire gratuit bundlé avec un hébergement ou un domaine), et les vérifications sont minimales et automatiques (un e-mail avec un lien à cliquer, en gros).

    Les deuxièmes demandent un peu plus de temps (compter 2-3 jours si tout va bien) et de documentation. Il faut que le nom de domaine soit bien enregistré au nom du titulaire, il faut généralement fournir un extrait Kbis ou équivalent, etc.

    Les troisièmes ça demande encore un peu plus de documentation et c'est nettement plus cher.

    Au delà du certificat lui-même, un aspect important c'est de pouvoir mettre un "sceau" (seal) sur ton site qui met les gens en confiance. C'est évidemment d'autant plus efficace que l'autorité qui le délivre est reconnue. Verisign est nettement plus connu du grand public que Gandi, par exemple.

    Pour résumer, le certificat a deux rôles:

    - il protège la communication (tous les certificats le font)

    - il aide à donner confiance aux utilisateurs, directement (barre verte, nom de la société dans le certificat, ou simplement le cadenas fermé) ou indirectement ("sceau" affiché sur le site, y compris sur les pages non sécurisées). Là, mieux c'est, plus c'est cher (mais pas forcément l'inverse).

    Si tu stockes des informations de paiement sur ton site, il est aussi indispensable que tu effectues un scan de sécurité PCI DSS de ton site régulièrement (et que tu fasses le reste du processus de certification PCI DSS).

    Jacques.

  6. Normal, p n'est pas ta table prestation, mais le résultat de la requête SELECT SUM(prix_htva) FROM prestation GROUP BY f.id_facture (une sous-requête, donc), qui n'a qu'une seule colonne.

    Deux solutions: soit tu rajoutes dans cette sous-requête les autres colonnes utiles, soit, et c'est probablement plus simple et plus logique, tu déplaces le SUM et le GROUP BY au niveau de la requête principale:


    SELECT f.id_facture, f.numero_facture, f.date_facture,
    c.nom, c.ville, SUM(p.quantite), SUM(p.prix_htva), SUM(p.tva)
    FROM facture as f
    LEFT JOIN client AS c ON (f.id_client=c.id_client)
    LEFT JOIN prestation p ON (f.id_facture=p.id_facture)
    WHERE f.id_membre=$sess_id_pseudo
    GROUP BY f.id_facture, f.numero_facture, f.date_facture, c.nom, c.ville
    ORDER BY $choix_order_by desc
    LIMIT $limite,$nombre

    Jacques.

  7. Je rajoute une couche: oui, on a le droit de créer une société où on veut. Mais l'imposition d'une société ne dépend pas (seulement) de son pays d'enregistrement, mais (aussi et surtout) de l'endroit où il y a contrôle et gestion et/ou activité. Dans le cas présent, contrôle, gestion et activité sont en France, donc toute l'activité est imposable en France. Il est possible que l'activité soit AUSSI imposable dans le pays d'enregistrement. Bref, utiliser une société offshore et "oublier" de déclarer tout ça en France c'est de l'évasion fiscale, ça peut coûter cher (surtout en ce moment). La seule alternative c'est d'aller s'installer effectivement dans le pays en question (ou au minimum de faire en sorte que l'activité soit effectivement et réellement exécutée là-bas).

    Jacques.

  8. Si ce que tu veux c'est bien les événements pour lesquels il y a deux inscrits différents qui sont en plus des amis, il faut bien que tu aies un lien entre l'événement et le premier inscrit (ei1) et un lien entre l'événement et le deuxième inscrit (ei2), qui sont associés au même événement (e) et avec un lien entre les deux inscrits (a).

    Et en fait je voulais dire e.* (si tu veux les détails de l'événement, mais que tu te moques des inscrits etc.), mais * ou une liste plus complète convient très bien. Note évidemment que comme tu as plusieurs tables qui ont des colonnes identiques avec * tu ne peux pas récupérer toutes les valeurs de ces colonnes (il faut que tu les spécifies explicitement en précisant un alias pour chaque colonne que tu veux).

    La requête que j'indique donne toutes les combinaisons événement, inscrit1, inscrit2. Si tu veux une seule ligne par événement, un group by sera en effet nécessaire.

    Jacques.

  9. Je dirais plutôt:


    SELECT a.* FROM evenements e, evenements_inscrits ei1, evenements_inscrits ei2, amis a WHERE e.id = ei1.id_evenement AND e.id = ei2.id_evenement AND ei1.id_client=a.id_client1 AND ei2.id_client=a.id_client2

    Non?

    Jacques.

  10. La solution logique c'est de renvoyer sur une page intermédiaire avec les différents liens... Tu peux même combiner ça avec JS (si JS activé on affiche les différents liens directement sur la page, et les robot suivent le lien vers la page intermédiaire). Ou tu peux même faire un div qui contient les différents liens, qui sera affiché uniquement quand on clique sur le premier lien (en JS), et qui sera lu quand même par les moteurs...

    Jacques.

  11. Un serveur de mail ne garde (normalement) pas de copie des mails envoyés, sinon ça pourrait vite prendre énormément de place.

    Si le message a été envoyé récemment, tu peux peut-être trouver une trace du mail (et du destinataire éventuel) dans les logs de postfix (grep est ton ami).

    Dans certains cas, tu peux trouver trace du destinataire dans les Received: dans les headers, mais ça dépend beaucoup des cas de figure.

    Je ne suis pas sûr que tu puisses retrouver le destinataire ainsi. Note que beaucoup de gens ont plusieurs adresses e-mail qui sont renvoyées vers une seule boîte, ceci peut expliquer que tu ne le trouves pas.

    De façon générale, c'est une bonne idée que de garder une trace de tous tes envois en base de données, et de mettre dans le mail de quoi le relier à l'envoi (et donc à l'adresse utilisée). Avec un lien de désinscription automatique (et correctement intégré dans le mail ET les headers), et surtout une config du mail (Errors-To, Return-Path, éventuellement From) pour que les retours (erreurs) puissent être reconnus automatiquement c'est encore mieux...

    Jacques.

    EDIT: typo

  12. Je dirais qu'ODBC est bien présent (c'est lui qui te répond), mais ODBC a ensuite besoin d'associer un nom de "source de données" aux paramètres qui vont avec (type de serveur = driver, adresse du serveur, login, mot de passe, etc.).

    Il est possible que ton Apache (ou PHP) n'utilise pas le même utilisateur que XAMPP, et donc ils ont chacun leur liste de source de données ODBC. Il faudrait donc configurer cette source de données ODBC pour le bon utilisateur (ou pour tous, on peut définir des sources de données "système" valables pour tout le monde).

    Cf "Administrateur de sources de données ODBC" sur ta machine.

    Jacques.

    EDIT: typo

  13. Au passage, intégrer directement une variable dans une requête SQL sans passer par mysql_real_escape_string c'est une TRES, TRES, TRES mauvaise idée. Non seulement ça va planter si jamais il y a quelque chose qui ne va pas dans ta variable (par exemple un '), ce qui est peut-être le problème ici, mais en plus c'est un trou de sécurité énorme.

    Jacques.

  14. Il n'est pas nécessaire de fournir une adresse de livraison. Tu ne bénéficies juste pas de la protection contre les oppositions (chargebacks) initiés par l'intermédiaire de sa banque, parce qu'il n'est pas possible de prouver que le "produit" a effectivement été livré. D'un autre côté, si le client dépose une réclamation (via Paypal) pour produit non livré ou ne correspondant pas à la description, il te suffit de mettre en avant que c'est immatériel pour que la réclamation soit rejetée par Paypal (la protection de l'acheteur ne s'applique pas non plus).

    Jacques.

  15. Oui, la plupart des réseaux mobiles utilisent du NAT ou des fermes de proxies pour toutes sortes de raisons, donc l'essentiel des utilisateurs d'un même réseau partage un nombre limité d'IP.

    Maintenant, toutes les IPs que tu indiques sont effectivement à l'étranger, et 4 sur 5 ne correspondent pas à des navigateurs mobiles (mais dans certains pays, beaucoup d'utilisateurs passent par des réseaux mobiles pour se connecter à Internet). Sans connaître ton site, ton profil de trafic, etc, difficile de dire si les connexions en question sont "normales" ou pas, et si elles correspondent bien à un seul utilisateur ou pas.

    Jacques.

  16. Ca existe déjà, mais le support reste limité, en particulier ce n'est pas supporté par IE ni Safari.


    />http://en.wikipedia.org/wiki/Animated_PNG

    Ceci dit, comme indiqué précédemment, il est possible d'utiliser la technique du "sprite": tu mets les différentes étapes de l'animation les unes en dessous des autres dans un seul PNG, tu mets ça en background de ton élément, et ensuite en JS tu fais évoluer le background-position.

    Jacques.

  17. N'oublie pas que le GIF est limité à 256 couleurs. Si ton bouton original est déjà très coloré, avec l'effet en plus, ça peut exiger plus de couleurs que disponible, et forcément, ça se finit par un tramage. De surcroit, il est possible qu'il soit un peu trop restrictif et qu'il essaie d'utiliser la palette "web safe" qui n'est pas forcément adaptée (et qui n'a plus grand intérêt de nos jours).

    Suivant l'outil utilisé, le mode d'édition peut aussi affecter le résultat. Je ne pense pas que ce soit le cas de Photoshop, mais dans certains outils, si tu pars d'une image 8 bits (indexée, quoi), il vaut mieux passer en 24/32 bits (RVB), faire les modifs, puis reconvertir. Le fait de faire la conversion avant la sauvegarde peut aussi avoir un effet (il y a différentes façons de faire la conversion RVB -> indexé qui ne donnent pas toutes les mêmes résultats).

    Evidemment, note aussi que le GIF ne supporte pas de "niveaux de transparence": il y a une couleur précise qui est transparente, et puis c'est tout, il n'y a pas de canal alpha comme en PNG.

    Jacques.

×
×
  • Créer...