Aller au contenu

TheRec

Hubmaster
  • Compteur de contenus

    1 777
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par TheRec

  1. Bonsoir, Euh... et si tu utilisait un clause ORDER BY ? example : SELECT * FROM table ORDER BY Nom ASC Utilise ASC pour ascendant et DESC pour descendant... Jette aussi un oeuil sur ce site : http://www.w3schools.com/sql/default.asp ça risque de t'aider, surtout pour les fondamentaux...il y a de bons examples..
  2. TheRec

    Requète SQL difficile

    Bonjour, Une bonne référence pour ce genre de "subtilités" de SQL, qui sont en fait les conceptes de base de SQL : http://www.w3schools.com/sql/default.asp Les exemples de SQL JOIN sont bien expliqués, malheureusement tout ceci est dans la langue de Shakespear...désolé si cela pose un problème :S À part ça, tu peux tout à fait utiliser la fonction d'aggrégation AVG() pour calculer la moyenne au lieux de sum()/count() ... Tu as la liste des ces fonctions sur le même site : http://www.w3schools.com/sql/sql_functions.asp Bonne chance P.S. : Pour le classement des NULL je te propose plutôt d'essayer de changer de JOIN en fonction du type de relation qu'ont tes tables...demanière à ne récupérer que les enregistrements qui ont une clé correspondant à tes critères...
  3. A lire le message de base je pense plutôt que Dan voulais te conseiller utf8_decode() ... Mais t'auras surement corrigé de ton propre chef. http://www.php.net/utf8_decode
  4. Pas faux Concernant le tableau, effectviement il y a trasposition dans un hash table l'accès sera beaucoup plus rapide. Mais là j'avoue la limite de mes connaissances, je n'ai pas assez étudié le core de PHP ou un optimizer PHP pour tirer ces conclusions. Je pense que la prochaine fois j'utiliserais cette technique de tableau et je vous remercie pour ces info
  5. A tout hasard, essaie de remplace les & pas l'entité html : & $tag="<img height=1 width=1 border=0 src='http://www.monsite.com/dossiers/test.php?id=123&action=e6216de2d79832a9fb2baf3b9e3b9785&ca=$ca_reel&uxp=$var_uxp'>"; echo $tag; J'ai peu d'expéricence sur ce genre d'inclusion de script distant...
  6. _AT_Ganf> Je parlais d'un principe de programmation... une suite de tests sera plus efficace qu'un tableau du simple point de vue que le stockage en mémoire (même en cache) est plus lent que l'évaluation d'une condition, dans ton cas tu stockes tous les cas dans un tableau, alors qu'un seul cas sera juste normalement dans notre cas de figure...le elseif arrêtera la comparaison avant d'avoir effectuer toutes les comparaisons (à moins le dernière branche de la liste soit vérifée ou que la branche par défaut soit utilisée). En gros je répète ce que j'ai dit plus haut... peu de cas, ta solution est très appropriée bien que dans un plus grand nombre de cas les elseif, je propose donc qu'on close la discussion sur ces optimisation de boutiquiers, on n'a pas l'occasion de réellement en tirer les avantages dans ce cas de figure. Juste pour éclaircir un point, pourquoi tu n'utiliserais pas d'opérateurs logiques dans ces conditions ? L'avantage de ces opérateurs et que les cas sont évalués les un après les autres et la condition "global" est retournée dès qu'un cas est vérifié (les autres qui le suivent ne sont pas évalué, dans une suite de OR, c'est un optimisation que presque tous les language utilisent...) le cas du OR n'est pas réellement parlante, mais une combinaison de AND et OR peuvent démontrer cette optimisation... Désolé d'avoir détourné un peu ce sujet...je dirais que toutes ces solutions se valent, mais ce n'est que mon avis
  7. Mais en quoi un switch ou un elsif serait "horrible" ... @Granf>Ta technique est "correcte" mais comparée à un if/elseif/else ou un switch elle est plutôt dispendieuse au niveau de la mémoire. Effectivement pour quelques cas (peu de valeurs) c'est juste elle ne fait pas de différence, toutefois tu alloue de la mémoire pour chaque cas alors qu'un seul ne sera juste, dans le cas d'un swtich ou d'un if/elseif lorsqu'un cas est traité les autres ne sont pas évalués... Cela ne semble pas critique à première vue, mais sur un environnement ou tu ne gère pas la mémoire "toi-même" (par exemple, hébergement mutualisé, ...) cela peut avoir des conséquences... Personnellement, j'utilise le plus souvent des if/elseif en général... mais bon j'admets que la raison que j'évoque vise des cas "extrêmes"... *EDIT* Deplus dans le cas évoqué par Lurch, j'utiliserait un -> || ou OR pour les cas ou l'include est le même... <?php if($abv == "10" || $abv == "11" || $abv == "200") { include('cas01.php'); } elseif($abv == "15" || $abv == "397") { include('cas02.php'); } else { include('cas00.php'); } ?> *EDIT2* Le switch se simplifie aussi, un peu : <?php switch ($abv) { case "10": case "11": case "200": include('cas01.php'); break; case "15": case "397": include('cas02.php'); break; default: include('cas00.php'); } ?>
  8. Hello, J'ai utilisé ce script plusieurs fois...il marche très bien ! http://www.dithered.com/javascript/flash_detect/index.html Tu trouvera comment trouver la version dans la source, mais je pense que c'est encore plus facile d'utiliser le script simplement ;D
  9. Essaie peut-être de mettre un fichier .htaccess avec ces lignes : Order Deny,Allow Deny from all Dans le réperoire ou les fihcier ne doivent être accessible que par "download.php" (si je puis m'exprimer ainsi...)... Mais si tu affiche ces "thumb_" (je suppose que c'est des miniatures d'images) tu ne pourras plus le faire directement en mettant le chemin direct vers l'image)...
  10. Avec les données de ton problèmes ce que je t'ai dit marche, le nom du fichier que tu passait par l'URL était le mauvais, enfin celui de la base de données (auparavant avec des espace)... bref tant mieux si tu as trouvé une solution. Pour ton problème de sécurité, j'ai déjà répondu plus haut, pour ce genre de points sensibles, isole les fichiers téléchargeables comme il faut, ne passe que des nom de fichier en ayant un chemin valide, vérifie que l'utilisateur n'essaie pas de passer un chemin relatif dans le nom de fichier ( "../includes/db.php" par exemple ;D ) ... Si l'accès direct au fichier est interdit c'est déjà un bon point... Je vois pas quoi te dire de plus... PS : dans un fichier ".htaccess" se trouvant à la racine de ton répertoire ou se trouvera les fichiers téléchargeables, met cette ligne "Options -Indexes" ça évite déjà l'accès à la liste complète de ton réperoire (pour peu qu'elle ne soit pas déjà désactivé dans le httpd.conf de ton serveur ... )
  11. Je penche pour dire que ce lien : <A href="download.php?chemin=tatatitatata&file=thumb_<?php echo $row_rs_dev5['DPHO']; ?>"> devrait plutot être : <A href="download.php?chemin=tatatitatata&file=<?php echo $file; ?>"> voir même : <A href="download.php?chemin=<?php echo $chemin; ?>&file=<?php echo $file; ?>"> Mais attention !!! Cela peut permettre à quelqu'un de spécifier un chemin manuellement...donc vérifie bien ce que l'utilisateur envoie comme nom de fichier et chemin, isole un maximum les fifhicer téléchargeables..et si possible utilise des chemin complet (realpath)... (En gros tu essayait de downloader le fichier avec un nom avec des espace, vu qeu tu le dis toi même, tu les stockent avec des underscore, il ne trouve pas... petite erreur, mais c'est quand même important )
  12. Une piste : function xmlentities($string, $quote_style=ENT_QUOTES) { static $trans; if (!isset($trans)) { $trans = get_html_translation_table(HTML_ENTITIES, $quote_style); foreach ($trans as $key => $value) $trans[$key] = ''.ord($key).';'; // dont translate the '&' in case it is part of &xxx; $trans[chr(38)] = '&'; } // after the initial translation, _do_ map standalone '&' into '&' return preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&" , strtr($string, $trans)); } Le hic c'est que la table de translation "HTML_ENTITIES" ne contient pas apparemment Mais si tu crée ta propore table "$trans" ça va fonctionner. Le cas spécial de "&" est traîté, le caractère n'est pas converti car on l'utilise comme séparateur dans les url, donc il vaut mieux le traîter à part (en tout cas c'est ainsi que je l'ai compris). PS: Le code vient de cette page http://ch2.php.net/htmlentities dans les commentaires...
  13. TheRec

    urldecode

    Salut, Ton "problème" vient du jeux de caractère que tu utilise sur la page où tu utilise urldecode. urldecode décode correctement "n%C3%A9goce" qui a été encode en UTF-8, il le décode donc en UTF8. Si tu veux l'afficher sur une page en "iso-8859-1" (je suppose que tu utilise ceci, c'est ce qui est utilisé en majorité) tu devra faire appel à la fonction utf8_decode. Par exemple : echo utf8_decode(urldecode("n%C3%A9goce")) Sinon tu peux aussi envisager d'utiliser l'UTF sur ta page, envoyer un header correspondant et utiliser la balise meta avec le paramètre: charset="utf-8" Cela implique, sans doute, quelques changement dans ton site, mais l'UTF-8 étant le charset ayant le plus d'avenir ce n'est pas plus mal.
  14. Bonjour, j'ai reçu une réponse du créateur de cette librairie et il ne voit pas d'objection à la publication de "ma" class donc voilà : http://www.hexadec.ch/hexalab/2006-06-01/3-nested-sets/ En espérant que cela vous sera utile, personnellement je m'en sers très souvent. (J'ai essayé le [ codebox ] ... mais toute l'identation est "effacée" :S et le [ code ] est trop long )
  15. Remarque juste la première ligne de ton fichier "après", elle contient deux éléments. Car dans ton fichier "avant", la dernière ligne "130 - cent trente" n'as pas de signe(s) de terminaison (sous linux \n , sous windows \r\n et sous mac \n\r\)... Dans la pratique, c'est tout de même la méthode la plus sûre, il est conseillé de terminer un fichier texte par une ligne vide... enfin c'est ce que j'ai appris au fil de années
  16. Euh beaucoup vont crier au gachis, mais c'est une solution : <?php $lines = file("source.txt"); $lines = array_reverse($lines); $fh = @fopen("destination.txt","w+"); if($fh !== false) { foreach ($lines as $line_num => $line) { fwrite($fh,$line); } fclose($fh); } else{ echo "Impossible d'ouvrir le fichier de destination"; } ?> J'ai pas testé tous les cas, je pars du principe que ta dernière ligne se finit par un caractère de terminaison de ligne (peut importe le système d'exploitation, car la terminaison varie en fonction du système d'exploitation pour le fichiers texte...) L'autre solution, qui utilise moins de ressources, et de lire ligne par ligne le fichier avec "fread" et d'écrire juste après avoir lu...cela prends moins de ressources mémoire. Mais j'imagine que dans ton cas, ce n'est qu'une seule fois que tu devras faire cette opération et non à chaque visiteur d'une page. P.S. : Cette fois pas d'expression régluière, désolé si ça t'embête ;D P.S.S : Cela m'étonnerais que tu puisse compter jusqu'à l'infinie et surtout dans un fichier texte...
  17. TheRec

    Tranches horaires

    Met les cas à la suite, et ça fonctionnera... switch $heure { case "22": case "24": case "0": case "1": $plage = "2"; break; case "5": $plage = "une autre par exemple" break; default: $plage = "une plage est définie si aucun autre cas n'a été utilisé, et le break; n'est pas obligatoire ici"; } Je te suggère l'utilisation du manuel PHP, il est très complet et surtout en français... (les commentaires des developpeurs sont en anglais) http://www.php.net/manual/fr/control-structures.switch.php
  18. Oui, mille excuses ! Voilà ce qui arrive lorsqu'on dort pas assez Trèves d'excuses "foireuses". J'ai encore regardé le problème dont tu parles, et je ne vois vraiement aps de scintillement, j'ai même essayé sous Safari, aucun problème de scintillement. En attente de plus de détails...
  19. [iRONIE] Si tu n'a pas de réponse dans les 7 minutes qui suivent ton message tu as tout a fait raison de réclamer une réponse plus vite... et tu as tout aussi raison de nous demander un bain chaud ainsi qu'une coupe de champagne et un gros bol de caviar en compensation... [/iRONIE] Non mais on croit rêver... Bref, avec le code que tu as donné, il n'y a aucun "scintillement" sous FireFox. Essaie de poster plus d'informations. Genre le code HTML et les autre définitions CSS qui pourraient influencer.
  20. Salut, Pour des raisons de sécurité, aucun navigateur digne de se nom ne te laissera attribuer de valeur par défaut à un <input type="file">, que ce soit par Javascript ou par l'attribut value directement dans l'HTML. Imagine les conséquences d'un tel champ avec une valeur par défaut s'il est caché. Il n'y a pas de solution à ton problème désolé.
  21. Salut, Avec l'attribut "color" tu définit la couleur des liens et non la bordure. Il faut utiliser la propriété "border" dans a,a:visited,a:active{border: 1px solid #000000;} a:hover{border: 1px solid #FF0000;} Attention cela affecte tous les liens, tu ferais bien de limiter ces règles à, par exemple, un <div> ou tu places toutes tes images : div.galerie a,div.galerie a:visited,div.galerie a:active{border: 1px solid #000000;} div.galerie a:hover{border: 1px solid #FF0000;} Le :hover sur une <img> ne fonctionne pas sous Internet Explorer, donc tu est obligé de passer par un lien.
  22. Mouais pas évident... en restant sur la voie des popup's, en sachant que tu peux agir sur la fenêtre à l'origine d'un popup (celle depuis laquelle tu as ouvert ce popup), tu peux récupérer ce qui a été fait dans le popup et le fermer puis en ouvrir un deuxième et ainsi de suite, là plus moyen de revenir sur la page du popup que tu viens de fermer. Mais c'est juste un axe de réfelxion, je vois plus d'inconvénients que d'avantages... mais ça reste un solution à mon avis. Sinon sans popup mais avec des target="_blank" (burk ), et des document.window.close() , mais c'est vraiement du bricolage ... et surtout tu t'appuie toujours sur du Javascript, ce qui peut coller dans un environement "homogène" mais absolument pas sur Internet et encore moins si cela correspond à une application primordiale au fonctionnement du site (Je n'ai testé aucune de ces méthodes, ce sont juste des propositions...histoire de faire avancer le schimili...le schlimil....le shmili... bon bref !)
  23. http://stephaneey.developpez.com/tutoriel/flashmx/flashphp/ Cela va sûrement t'aider, et c'est dommage que tu ne tire pas parti des moteur de recherche, car c'est le 4ème résultat sur la requête : formulaire flash PHP sur Google... je pense que tu gagnerais du temps facilement si tu faisait un minimum de recherches.
  24. Ouais... je vais d'abord la proposer au professeur si ça l'intéresse, j'ai rajouté/modifié 2-3 fonctions genre Suppression d'un noeud en désimbriquant ses enfant (dans les fonctions de base les enfants étaient tous supprimé). Et j'ai rajouté une bonne dose de commentaires, parce que s'était à peu près le desert de Gobi de ce côté là, dès que j'ai une réponse de sa part je viendrais poster des nouvelles ici
  25. Oui, je ne suis pas pour le cloaking du tout, mais par pur curiosité il m'arrive de me poser de question (bonne ou mauvaise, j'admets ).
×
×
  • Créer...