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. Un peu le même problème que le "mien" ... fait un teste en ajoutant un espace avant un point ... Texte original : Bonjour. Texte modifié : Bonjour . Résultat : <span class="corrige">Bonjour.</span> <span class="correction">Bonjour</span> La correction serait plus juste si elle était placée avant le point et on voit pas vraiment oû se situe la différence... je fais presque la même remarque à mon bot de code sauf qu'on "voit" pourquoi il y a correction en gros... **EDIT** Je vois que je suis pas le seul à ne pas trouver le someil hein Allez bonne nuit !
  2. Exactement... lorsqu'on parle de séparation de contenu et de présentation on veut dire que les styles (la mise en forme CSS en l'occurence) ne sont pas données par les balises. Les balises (HTML ou XHTML) donne une structure à ton fichier et la feuille de style (CSS) lui donne une mise en forme. J'ajouterais comme conseil, à ceux de Dudu, de ne pas oublier de fermer les balises qui ne le sont pas par une balise fermante... Tu as deux types de balises en voici des exemples, le balises avec "balise fermante" : <p></p> (ce premier cas est trivial si tu connais l'HTML) Et les balises qui n'en n'ont pas et qui se ferment ainsi en XHTML : <input /> (au passage en HTML il ne faut pas les fermer ainsi...sinon cela ne suit pas les recommandation du W3C)...
  3. En même temps l'allocation du nombre de bits à un type ne dépends pas que du language donc je me vois mal avancer ces chiffres sans connaitre les spécifications du serveur qui exécutera ce script. Mais en même temps je ne suis pas sûr que tout ceci préoccupe snwoman49 qui est venu poser une question simple et qui se retrouve à arbitrer un combat du plus beau code pour afficher un tableau "implosé"... au passage si on veut jouer au malin et ne pas utiliser de mémoire ni d'opcode de trop (des conditions dans une boucle impliquent un passage à chauqe itération...) il faut mettre la virgule après chaque valeur et après la boucle utiliser rtrim avec "," comme caractère à tronquer... L'utilisation mémoire d'un caractère de plus dans la chaîne est minime quand on pense que la boucle (et donc l'évaluation de condition à l'intérieure de celle-ci) peut être exécutée un nombre de fois énorme suivant la base de données... mais bon j'aurais du me passer de ce commentaire pour coller avec l'esprit de mon message
  4. Si si...en vertu de ceci (qui on passage est faux sur ton site) : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 //FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Cela me fait penser que tu veux faire du XHTML 1.0, et dans ton infinie volonté de respecter les recommandations du W3C tu comptes même faire du XHTML 1.0 STRICT (on peut rêver non ). Tu as le droit de séparer le contenue de la présentation dans ce cas Sinon tu peux toujours "retomber" à quelque chose comme ça qui conviendrait mieux dans le principe à ton site dans l'état actuel : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> Ensuite tu peux te mettre à voir ce qui ne correspond pas avec ces recommandations (une fois ton DOCTYPE modifié) Avec ton ami le validateur W3C (hein que tu l'aimes... ne t'inquiète pas beaucoup sont dans ton cas).
  5. Je t'avouerais que les logo pour un site de client ça me paraît peu concevable à moins d'avoir à faire à un client baptisé par le W3C à sa naissance Mais personnellement je l'ai mis comme un des argument de "vente" sur le site de mon entreprise et simplement pour promotionner le W3C sur les sites à but non-lucratifs. Mais il est vrai que beaucoup de site utilisent se logo et ne respectent pas "à la lettre" les recommandations, je ne vais pas m'excuser pour eux mais par pitié que Dieu sauve leur âme "Ils ne savent pas ce qu'ils font" ... plus serieusement certains partent d'une base conforme au recommandations et se perdent des les méandres des éditeurs WYSIWYG (genre Word quoi) ou par de petites erreures bêtes. Mais j'avoue n'être que très rarement, voir jamais, tombé sur une page portant un logo du W3C et n'ayant pas de DOCTYPE (pour en revenir au sujet hein) ! Je pense que les gens se fixent trop sur l'aspect rigide des recommandations, mais je n'ai lu nullepart qu'il était obligatoire de les respecter à la lettre pour prétendre être un webmaster ou autre professionnel du Web. Une erreur peut en entraîner une autre ainsis de suite, toutes fois le contenu peut être sémantiquement correcte, être spéaré de la présentation... Mais si tu veux mon avis sur ce logo, il ne s'accorde pas avec beaucoup de design (comme ceux du W3C, tu me diras) et donnerait plus un côté amateur, c'est surtout que cela m'a rappelé mon cauchemard... le logo "Optimisé pour Internet Explorer uniquement"... mais ça reste un avis personnel P.S. : Jolie pirouette que tu nous fais là pour ces demoiselles, appréciez l'effort mesdames (je rigole bien entendu, comme pour la "remarque sexiste")
  6. Je n'ai rien dit... sur la page d'accueil il y a une offre à ce sujet... (non je ne vais pas aller chez l'occuliste je vous dit ! ). http://www.ovh.com/fr/produits/cluster.xml
  7. Bonsoir, si j'ai bien lu entre les lignes de ta question, ce que tu souhaites faire c'est répartir la charge (l'utilisation de bande passante, CPU, mémoire, ...) entre deux serveurs pour le même site Internet ? Si c'est le cas, ce que tu souhaite faire est généralement appelé Load Balancing (répartition de charges). Je connais peu de provider qui permettent d'effectuer du Load Balancing avec un serveur se trouvant chez leur concurents. OVH propose des offrent pour réaliser un cluster de serveurs dédiés afain de réaliser le load balancing par contre...A cette adresse, tout en bas dans le cadre de droite : http://guides.ovh.net/HaGeneralites/ Cela fait pèartie de leurs offre High Availability (Haute Disponibilité). Tu peux demander des offres au service commercial à mon avis, je n'ai pas trouvé de tarifs sur leur site pour ces offres... Si je me trompe, désolé !
  8. Bonsoir, la première solution est la meilleure, elle a l'avantage de ne pas "casser" le bouton "Précédent" des naviagteurs. Dans le deuxième cas si quelqu'un presse le bouton "Précédent" il retombe sur la redirection en Javascript et retourne sur ton site... Si tu as le choix prends la première. Tu place une page nommée "index.php" à la racine de ton site, et tu met la bonne adresse à la place de &quot;http://www.domaine.ext/dossier"... Bonne chance
  9. Bonjour, l'essentiel est de toujours vérifier la nature (le type) et le contenu des variables. Une bonne pratique pour ce faire est d'initialiser les variables que tu utilises, de cette manière même si l'utilisateur fournit une valeur par l'URL elle sera remplacée par celle qui tu souhaites, je parle des variables qui ne proviennent pas des utilisateurs. Par contre, pour les variables provenant des utilisateur, dans tous les cas possibles il faut limiter leur valeurs possibles au strict minimum. Si tu connais les valeurs qu'elle auront (par exemple un champ select), limite les possibilités à celles-ci. Si tu ne peux pas connaître leur valeur (par exemple un champ texte), vérifie le type, utilise (comme pour toutes autres variables) les fonctions d'échapement lors d'insertion dans la base, empêche l'utilisation des balises (X)HTML si elle ne sont pas nécessaires. Mais ces points sont plus relatifs à l'utilisation d'une base de données. Si tu utilises les tableaux de super-gloales ($_POST, $_GET, ...) tu n'auras pas ces problèmes (cités dans le 2ème paragraphe de ce message), mais ce que je t'ai cité plus haut sont des bonnes pratiques (à mon goût en tout cas) en programmation. Pour répondre à tes deux questions, certaines valeurs de $_SERVER peuvent être modifiés par l'utilisateur ($_SERVER['HTTP_USER_AGENT'] entre autres), mais cela demande plus qu'une simple modification d'URL. Ce n'est tout fois pas à négliger. Concernant $_ENV, les valeurs sont définies par le serveur et ce problème n'est donc pas important dans la mesure où si tu fais assez confiance au serveur pour héberger les sources de tes scripts tu devrais lui faire assez confiance pour gérer ses variables internes Le fait d'initialiser à null certaines variables peu résoudre certains problèmes mais l'exemple que tu cite n'est pas réellement un de ces cas. Le risque se situe surtout lorsque tu utilises une variable qui n'a pas été initialisée ou contrôlée tu risques d'avoir un contenu "malicieux" qui aura été fourni par l'utilisateur au moyen de l'URL. Le fait de l'initialiser à null n'a pas réellement de sens dans ton exemple vu que tu remplaces, tout de suite après, son contenu avec celui de la variable $_SERVER['REMOTE_ADDR']. P.S.: Il faut te dire avant tout que le mode register_globals depuis PHP4 a été conservé pour des raisons de compatibilité, c'est pour cela que certains hébergeurs conservent ce paramètres activé. Cela "te fais une belle jambe" sûrement mais c'est pour t'expliquer pour quelles raisons les hébergeurs conservent ce paramètre. Bien que beaucoup d'entre eux n'ont fait cela que pour éviter les questions que tu poses, certains on pris sur eux et on décidé de désactiver ce paramètre par défaut pour assurer une meilleure sécurité à leurs serveurs mutualisés...
  10. Je ne suis pas tout à fait d'accord, utiliser un protocole déjà utilisés par d'autres programmes est une bonne initiative... ça augmente la compatibilité, si c'est fait correctement bien entendu...
  11. Tu as tout à fait le droit de dévier du sujet (d'ailleur ce n'est pas moi qui fait les règle )...ce qui m'a fait tiquer c'est de poster une réponse quelques heure au auparavant dans un sujet, de recevoir une réponse de ta part dans ce même sujet et de revoir la même question dans un autre sujet de ta part... Mais enfin, ce n'est pas si important que ça... cas clos. Bonne nuit !
  12. Moi ça ne m'insipire pas plus que ça... sinon à lancer ceci : GoogleOS ...ah pardon... : http://www.futura-sciences.com/news-google...tation_5926.php
  13. Tu n'as rien dit de particulier..c'est juste que cette discussion on vient de l'avoir dans le sujet que j'ai cité précédemment... si tu continue à poser cette question dans un autre sujet cela me force à penser que ce n'est pas la peine de répondre ni à l'un ni à l'autre...Peut-être que je prends ça "très" mal, mais bon c'est tout de même assez flagrant.
  14. Je vais finir par ne plus répondre à tes messages vu qu'à chaque fois tu remets en doute ce que je te dis. En aucun cas je prétends tout savoir, mais j'estime que ceux qui rédigent la documentation de PHP sont assez au courant pour savoir ce que "leur" langage de programmation peut faire ou non... Sur ce bonsoir...
  15. Bon...on retourne au manuel PHP (pour changer) : Comme mentionné dans ce message .. si tu reçoit une Erreur Interne au Serveur (500), c'est que tu n'a pas l'autorisation de le faire... c'est dû au fait que tu soit sur un mutualisé... (c'est assez limite de ne pas autorisé la modification de ce paramètre...mais c'est un choix de l'hébergeur)...
  16. Si tu reçois une erreur 500 (Erreur Interne au Serveur), c'est que tu n'a pas les privilèges pour désactiver le register_global ... Dans ce cas, vérifie TOUJOURS toutes les variables que tu utilises, même (et surtout) une variable qui ne provient pas d'un forumlaire... par vérifier j'entends, s'assurer du type des variables (entirers, chaînes de caractères, ...) et de leur contenu. Par exemple, dans tous les cas où c'est possible, limite les valeurs possibles seulement à ce qui est suceptible d'être utilise. Le problème réside dans le fait que n'importe qui peut initaliser une variable en ajoutant un paramètre à l'URL... Si tu utilises par exemple l'opérateur de concaténation ".=" avec une variable que tu n'a pas initialisée toi-même, il est possible que l'utilisateur l'initialise lui-même par l'URL...et il peut y mettre un contenu nuisible à ton site...
  17. Tu as assez bien résumé ce que tu devais faire tout seul... pour désactiver le flag "resgister_globals" regarde mon message précédent... tu créer un fichier texte .htaccess et tu met le contenu que j'ai donné précédemment. Tu le transferts en mode ASCII à la racine de ton site par FTP...et le tour est joué si tout va bien... la majorité des mutualisé que j'ai eu l'occasion d'utiliser permettent ceci...je n'ai pas eu l'occasion de tester chez OVH...
  18. Ouais...erreur je ne sais pas, peut être que je t'ai mal compris, techniquement c'est bien un changement dans la phrase. Les mots sont pris "un à un" et que les espaces comptent, tout comme la ponctuation à l'interieur des mots qui les précède (Apparemment. Je ne me suis pas penché sur tout l'aglorithme). Cela dit ça pose un problème tout autre, une balise comme <br/> qui serait écrite comme <br /> est "cassé" pour noter la différence entre les deux...alors que sémentiquement les deux sont semblables et correctes...donc si ton texte contient de l'HTML il y aura peut-être des problèmes. Mais bon il faut tout de même garder une mesure, si on commence a inclure des expcetions dans la comparaison cela va généerer un usine à "case" (pardon pour le mauvais jeu de mots) pour une fonction qui n'est pas essentiellement faite pour des différences scabreuses...
  19. A ta place je ne considérerais pas ça comme une "bidouille"... s'était une des principale faille (la faille vient du fait que peu de monde "sécurisait" ses variables, pas de PHP.). Libre à toi de ne pas le faire, tu auras beau sécuriser tes requêtes SQL comme tu veux tant que register_globals est activé, tu risques plus que si tu les laissais telle quelle sont maintenant. Mais bon je ne suis pas à ta place...
  20. Bonsoir, je te propose ça : <?php $str1 = "Once there was a boy named Bart and a girl named Lisa."; $str2 = "Once upon a time there was a girl named Lisa."; echo "Old String: " . $str1 . "<br>"; echo "New String: " . $str2 . "<br>"; echo "Difference: " . diff_to_html($str1, $str2); function diff_rek(&$a1,&$a2,$D,$k,&$vbck) { $x=$vbck[$D][$k]; $y=$x-$k; if ($D==0) { if ($x==0) { return array(array(),array()); } else { return array(array_slice($a1,0,$x),array_fill(0,$x,"b")); } } $x2=$vbck[$D-1][$k+1]; $y2=$vbck[$D-1][$k-1]-($k-1); $xdif=$x-$x2; $ydif=$y-$y2; $l=min($x-$x2,$y-$y2); $x=$x-$l; $y=$y-$l; if ($x==$x2) { $res=diff_rek($a1,$a2,$D-1,$k+1,$vbck); array_push($res[0],$a2[$y-1]); array_push($res[1],"2"); if ($l>0) { $res[0]=array_merge($res[0],array_slice($a2,$y,$l)); $res[1]=array_merge($res[1],array_fill(0,$l,"b")); } } else { $res=diff_rek($a1,$a2,$D-1,$k-1,$vbck); array_push($res[0],$a1[$x-1]); array_push($res[1],"1"); if ($l>0) { $res[0]=array_merge($res[0],array_slice($a1,$x,$l)); $res[1]=array_merge($res[1],array_fill(0,$l,"b")); } } return $res; } function arr_diff(&$a1,&$a2) { $max=70; $c1=count($a1); $c2=count($a2); $v[1]=0; for ($D=0; $D<=$max; $D++) { for ($k=-$D; $k<=$D; $k=$k+2) { if (($k==-$D) || ($k!=$D && $v[$k-1]<$v[$k+1])) { $x=$v[$k+1]; } else { $x=$v[$k-1]+1; } $y=$x-$k; while (($x<$c1)&&($y<$c2)&&($a1[$x]==$a2[$y])) { $x++; $y++; } $v[$k]=$x; if (($x>=$c1)&&($y>=$c2)) { $vbck[$D]=$v; return diff_rek($a1,$a2,$D,$c1-$c2,$vbck); }; } $vbck[$D]=$v; }; return -1; } // Returns a nicely formatted html string function diff_to_html($oldString, $newString) { $a1 = explode(" ", $oldString); $a2 = explode(" ", $newString); $result = arr_diff($a1, $a2); foreach ($result[0] as $num => $foo) { $source = $result[1][$num]; $element = $result[0][$num]; switch ($source) { case "1": $pre = "<font color=red><s>"; $post = "</s></font>"; break; case "2": $pre = "<font color=green>"; $post = "</font>"; break; case "b": $pre = ""; $post = ""; break; } // VERTICAL OUTPUT: // $return .= $num . $pre . " " . $source . // " " . $element . $post . "<br>"; // READABLE OUTPUT: $return .= $pre . $element . $post . " "; } return $return; } ?> Ce n'est pas de moi...mais j'ai pris la peine de te l'indenter proporement...simplement on le voit pas trop (hein Dan . C'est un mélange de source trouvées ici: http://www.php.net/array_diff Le texte enlevé est en rouge/barré...et le texte ajouté est en vert...et le texte modifié est rouge/barré et à côté le texte modifié est en vert, mais tu peux changer cela dans la source.
  21. As-tu seulement essayé ceci dans un fichier .htaccess, à la racine de ton site : php_flag register_globals 0
  22. Au risque de me faire recevoir comme la dernière fois... c'est effectivement $_GET ... et si dans ton cas l'utilisation de $validation = strip_tags($validation), sans que tu aies fait péalablement $validation = $_GET['validation'], fontionne c'est que tu as le mode register_globals qui est activé ... et là, avant de "filtrer" tes requêtes SQL tu ferais mieux de commencer par le désactiver si tu veux parler de sécurité... PS: Ne me dis pas que tu as passé tellement de temps dans ton code, selon tes dire, que tu ne t'es pas apperçu que depuis PHP4 il est recommandé de ne jamais utiliser register_globals... Il subsite surtout pour des raisons de compatibilité descendante...
  23. Bien sur tes conseils avisés je vais dormir et ne plus répondre vu que mon aide t'es si précieuse. Sur ce bonne nuit et je suis ravi d'avoir reçu ma leçon de savoir coder pour ce soir. P.S. (EDIT) : Evite le language SMS comme "pk", c'est interdit dans les règles du forum. D'avance merci. P.S. 2: En même temps enlever les caractères suceptibles de causer ce "problème" c'est ce que je t'ai proposé comme 2ème solution... alors là je ne sais plus si je dois aller dormir... mais je sens que tu vas me dire d'y aller... alors Bonne Nuit !
  24. Mais le problème avec ces caractères échapés ne se trouve pas dans l'affichage... ils résident dans le fait qu'insérer des données non échapées dans la base crée des failles suivant les cas. L'affichage se fait effectivement avec stripslashes pour supprimer les "\" superflus, mais si tu ne le fait pas cela n'empêche pas l'affichage...simplement tu te retrouve avec un texte contenant des "\" inutiles... **EDIT** Oui..même si on a tort tous les deux ...essaies, ça nous fera plaisir
  25. Mais sâche PHP n'affiche pas des données pour le plaisir, il le fait sur ta demande..donc vérifie quelle commande (sûrement un echo ou un print) affiche cette "deuxième" fois En même temps j'ai lu "mon code fonctionne très bien"... et là ce qui me "saute aux yeux" c'est que si c'était le cas il n'afficherait pas deux fois le texte
×
×
  • Créer...