Aller au contenu

SStephane

Hubmaster
  • Compteur de contenus

    726
  • Inscrit(e) le

  • Dernière visite

Messages postés par SStephane

  1. Ca m'a tout l'air un peu pourri toggle, essaie juste ça, ça devrait fonctionner :

    (au premier click l'événement n'est pas levé, d'où l'adjectif "pourri" pour illustrer mon propos, je ne peux t'expliquer pourquoi, j'en sais rien, je connais pas toggle smile.gif )


    $(document).ready(function(){

    $(".menu_head").bind({

    click: function(){
    $(".menu_head").find('span').html('+');
    $(this).siblings("div.menu_body").slideUp("slow");
    $(this).next().slideDown();
    $(this).find('span').html('-');
    }
    })});

  2. Le message semble clair, l'utilisateur avec lequel tu te connecte n'a pas le droit de faire des insertions dans la table cms_users :)

    Tu n'essaies pas de modifier un enregistrement a priori (UPDATE) mais d'en ajouter de nouveaux (INSERT). Il faut que tu vérifies au niveau des droits de ton utilisateur (TOTO'@'10.0.XXX.X)

  3. En développement, tu peux faire un error_reporting = E_ALL (ou error_reporting(E_ALL); )

    Tout ce qui lève un E_DEPRECATED est déprécié ET déconseillé, ie les fonctions que tu cites, mais aussi bien d'autres (ereg ...)

    Si ça génère E_DEPRECATED, ça fonctionne toujours, mais ça ne fonctionnera bientôt plus dans les futures branches de PHP (5.4 par exemple). Tant que tu restes sur la même branche, a priori tu n'auras pas de problème.

    Le meilleur moyen de les détecter est de les afficher et les éliminer une par une.


  4. if (document.contact.e-mail.value == '')

    ne peut pas fonctionner à cause du tiret, essaie ceci à la place :


    if (document.contact["e-mail"].value == '')

    D'ailleurs, même si ça fonctionne, par convention, évite les accents/tirets dans les name/id, c'est pas tiptop. Il vaut mieux se contenter de caractères alphanumériques sans accents et d'_.

  5. TU ne pourras pas compter sur PHP pour te calculer une différence en mois, le "mois" est une notion vague, 90 jours ça fait 2,90 ou 3,10 mois selon celui que tu choisis.

    Tu ne peux récupérer éventuellement que le nombre total de jours, qui reste une notion sure :


    $d1 = DateTime::createFromFormat('Y-m-d','2008-12-31');
    $d2 = DateTime::createFromFormat('Y-m-d','2010-05-22');
    var_dump($d1->diff($d2)->format('%a'));

  6. Je pense que postfix est "fautif", et comme j'envoi actuellement à partir du local, j'utilise maintenant sendmail. Si quelqu'un passe par là avec la réponse, je reste prenneur car ce sujet rique de réapparaître (j'essaierai à l'occasion dans un autre langage, il ne me semblait pas avoir remarqué cela).

  7. Bonjour,

    J'envoi des mails en PERL avec MIME::Lite, de ce type là :

    my $msg = new MIME::Lite
    From => $from,
    To => $To,
    Cc => '',
    Subject => $Titre,
    Type => 'text/html',
    Encoding => 'quoted-printable',
    Return-Path =>$returnPath,
    Charset => 'ISO-8859-1',
    Data =>$body_mail;
    $msg->attr("content-type.charset" => "iso-8859-1");
    $msg->send('smtp','127.0.0.1', Debug=>1 );

    L'entête return-path semble néamoins écrasée lors de l'envoi par le From: (ce qui me dérange énormément)

    Le MTA est postfix (install classique, spamassassin, amavis), que je soupçonne d'être le fautif, cependant je ne trouve pas dans les fichiers de conf quelque chose qui pourrait expliquer cela.

    Quelqu'un aurait une idée ? tongue.gif

  8. ça peut en effet paraître étrange, mais en fait ça ne l'est pas smile.gif

    Même si PHP n'est pas un langage à typage fort, tu remarques que je transtype en (int) ces lignes :

    (int) substr( $a, strlen( $a ) - 11 )

    Le type int a une limite qui correspond en général à 32 bits signés (environ 2 milliards), le script suivant te donne la valeur exacte au delà de laquelle le tri ne fonctionnera plus :

    print (PHP_INT_MAX);

    Tu peux éventuellement transtyper en float, selon ton envirronement, ça devrait fonctionner :

    <?php

    function sort_delegate($a, $B)
    {
    $first = (float) substr( $a, strlen( $a ) - 11 );
    $second = (float) substr( $b, strlen( $b ) - 11 );
    return ($first > $second);
    }
    $row = array();
    $row[] = 'glsqsdqsdlsjihcehidh122554235842';
    $row[] = 'xcvglslsjihcehidh26584563258';
    $row[] = 'glslsjihyuicehidh25448546854';
    $row[] = 'ertglslsjgjhgihcehidh022541254125';
    usort($row, "sort_delegate");

    var_dump($row);

    PS : Si float ne suffit pas non plus, enlève purement en simplement le transtypage, je me demande quand même quel type de script peut bien t'amener à faire ça :)

  9. Certains framework te permettent de le faire en nâtif ou presque, c'est le cas de sf2.

    Si tu codes en mode libre, il faut le scripter, ça ne devrait pas être trop complique : le gzip c'est apache, t'as pas à t'en occuper, pour minifier, j'utilise personnellement yuicompressor de yahoo (+/- livré avec le framwork sf2).

    Après normalement, on passe pas sa vie à modifier les CSS/JS, te contenter de les compresser après avoir fini ton travail me parait suffisant ;)

  10. Oui pas le choix, et tu devras certainement utiliser un delegué (callable en PHP) pour effectuer une fonction de tri personnalisée.

    Un truc de ce style :


    <?php
    function sort_delegate($a, $B)
    {
    $first = (int) substr( $a, strlen( $a ) - 2 );
    $second = (int) substr( $b, strlen( $b ) - 2 );

    return ($first > $second);
    }
    $row = array();
    $row[] = 'glsqsdqsdlsjihcehidh12';
    $row[] = 'xcvglslsjihcehidh07';
    $row[] = 'glslsjihyuicehidh99';
    $row[] = 'ertglslsjgjhgihcehidh03';
    usort($row, "sort_delegate");
    var_dump($row);

    à toi de compléter cette fonction selon ton usage.

  11. De ce que j'ai compris de ta demande, je ferai plus une requête de ce type plutôt que m'embêter à recalculer derrière :

    SELECT cost, SUM(qty)
    FROM mom_deck_monsters
    INNER JOIN mom_cards_monsters
    ON mom_deck_monsters.monsterid = mom_cards_monsters.id
    WHERE deckid = 1 GROUP BY cost

    En fait tu peux le faire en requêtant c'est quasi certain, maintenant tes intitulés sont pas clairs et comme je m'y connais mal en monstres... je pige pas ce que tu veux faire (depuis kang et kodos, je suis largué)

  12. Concernant OVH, je ne peux te dire, mais a priori ca doit etre ça. (dans mon exemple c'est le même parceque j'ai pris un exemple au pif, mais ça revient au même wink.gif )

    Et du coup dans ma "zone DNS" du domaine, je la laisse l'entrée A ?

    Non, elle n'a rien à faire là, l'entrée A est à ajouter par celui qui gère les zones sur ns1.prestataire.com. qui lui ajoutera dans sa zone :

    @ IN A 213.186.33.16

    Y'a un délai de propagation à prévoir je pense

  13. Dans la conf du domaine principal (regarder pour sd.machin.com.) :


    $ttl 38400
    machin.com. IN SOA ns1.ligams.com. slemerre.ligams.com. (
    2010100848
    10800
    3600
    604800
    38400 )
    machin.com. IN NS ns1.ligams.com.
    machin.com. IN NS ns2.ligams.com.
    sd.machin.com. IN NS ns1.ligams.com.
    sd.machin.com. IN NS ns2.ligams.com.

    Pour le sous-domaine, sur SON dns1 (ici ns1.ligams.com):


    $ttl 38400
    sd.machin.com. IN SOA ns1.ligams.com. slemerre.ligams.com. (
    2012041204
    10800
    3600
    604800
    38400 )
    sd.machin.com. IN NS ns1.ligams.com.
    sd.machin.com. IN NS ns2.ligams.com.
    sd.machin.com. IN MX 10 ns2.ligams.com.

    La même chose pour SON dns2 sans les enregistrements MX A CNAME etc. et attendre un peu, ça doit être bon.

  14. Comme te le dis portekoi, indexer est la bonne solution, si ta table est normalement indéxé (avec des clés étrangères de type int référencées, pas juste un truc de liaison), ta recherche sera beaucoup, beaucoup plus rapide.

    Si des recherches sont à prévoir sur le nom des pays/villes, tu peux éventuellement indéxer les colonnes intitulé mais attention, c'est pas franchement terrible, et il faut le faire selon l'utilisation qui en est faite :

    • Si aucune recherche n'est effectuée sur les intitulés, il ne faut rien indexer mais simplement ajouter les clés étrangeres entre ville et pays (les clés primaires et étrangères sont des index implicites),
    • Si ces recherches se font sur les intitulés dans le cadre, par exemple d'autocomplétion d'un champ ( LIKE 'machin%'), n'indexer que les 2,3 ou 4 premières lettres peut être suffisant,
    • Si la recherche peut s'effectuer sur toute ou partie de cet intitulé (LIKE '%machin%', indexer la colonne entière est peut-être pour toi la bonne solution.

    Si tu n'es pas familier des requêtes à effectuer pour indéxer, les clients lourds pour la majorité des SGBD permettent de faire cela, et il me semble que phpmyadmin aussi (à confirmer).

    Un index sur une string prends plus de place, c'est donc avec parcimonie qu'il faut les utiliser wink.gif

×
×
  • Créer...