30

Ha oui
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

31

32

squalyl (./9) :
ça marche même avec --std=c89 dans gcc. Comment on désactive les extensions gcc? grin

-pedantic-errors
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

33

-

34

J'ai renommé la fonction et changé le contenu de protocolString pour vous donner l'occasion de jouer :
static public string SecretProtocol(string myString) { string protocolString = "azerty"; CharEnumerator charEnumerator = protocolString.GetEnumerator(); while (charEnumerator.MoveNext()) { char padleftChar = charEnumerator.Current; myString = myString.PadLeft(myString.Length + 1, padleftChar); } return myString; }
À vous de comprendre à quoi sert cette fonction. C'est du C# mais les mots clés sont assez compréhensibles.
Et voici la version d'origine, plus facile de comprendre à quoi servait cette fonction.
static public string PrependProtocol(string urlString) { string protocolString = "//:ptth"; CharEnumerator charEnumerator = protocolString.GetEnumerator(); while (charEnumerator.MoveNext()) { char padleftChar = charEnumerator.Current; urlString = urlString.PadLeft(urlString.Length + 1, padleftChar); } return urlString; }
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

35

tu as laissé "urlString" dans le while, ca aide hehe

36

Au contraire, ça n'aide pas ^^ ça complique de savoir d'où il sort.
Mais ce n'est pas aussi important que le contenu ://ptth.
Et de toute façon, l'essentiel n'est pas de savoir dans quel contexte est utilisée cette fonction, mais à quoi sert-elle smile
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

37

c'est une façon inefficace d'inverser une chaîne ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

38

Pas tout à fait, l'inversion de la chaîne n'est qu'une conséquence (stupide) du fait que le codeur n'a pas trouvé d'autre façon de faire ce qu'il voulait faire faire.
Non non, quelque chose de vraiment trivial... du moins en théorie, puisqu'en pratique quand on en est à écrire une fonction pareille, ça n'est pas trivial pour tous.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

39

Strcat
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

40

Anéfé, une bête concaténation. L'usage de PadLeft() obligeant en plus à écrire http:// à l'envers est assez fabuleux, il faut aimer se prendre la tête.static public string PrependProtocol(string urlString) { return "http://" + urlString; }
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

41

It was over 9000!
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

42

Ne me dis pas que ça vient de ton boulot ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

43

Wow, sacré combo d'horreurs en une aussi petite fonction grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

44

Non, ce n'est pas de chez moi grin
On peut presque imaginer le raisonnement du codeur :
« Alors, il faut que j'ajoute http:// avant l'url, comment faire...
Il me faut trouver une fonction qui permette de mettre du texte à gauche d'un autre.
Petite recherche... ah, j'ai ça qui permet d'ajouter un caractère à gauche d'un string.
Il suffit de boucler pour ajouter les caractères de http:// à la suite.
Tiens, ça ne fonctionne pas, c'est à l'envers... ah bien sûr, puisque toute nouvelle lettre va à gauche de tout le reste.
Hop, je l'écris à l'envers, et ça fonctionne, roule ma poule. »


Peut-être est-ce un code de stagiaire : quelqu'un qui a une connaissance superficielle du code et trouve une solution semblable parce qu'il lui manque quelques notions vraiment basiques, comme quand j'ai parlé de mon stagiaire PHP à qui on n'avait même pas appris à écrire une fonction. Et pas "dans les règles de l'art", non, rien que la déclaration.
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

45

Je sais pas, peut etre une deformation, mais premier truc que je cherche c'est strcat, voir meme un simple
$head = "http://"; $tail = "www.example.com"; $newstr = $head . $tail; printf($newstr);

PHP fait ca sans probleme non?

En fait ca sens le gars qui ne sais faire que ces m****** de design pattern et ne sais pas réfléchir par lui même sur comment faire le code.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

46

tres mauvaise habitude securitaire de mettre une variable en premier arg de printf.

toujours printf("%s",$newstr)

47

j'ai tape printf par habitude, mais je voulais taper print qui ne prends pas d'argument "format"
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

48

squalyl -> tu m'as dit ça ya longtemps, du coup je mets des %s partout, mais j'ai jamais compris pourquoi grin
Tu peux m'expliquer stp ?

49

prenons

printf(toto)

et la, imaginons que l'attaquant te passe par exemple une valeur telle que:

toto = "%08X%08X%08X%08X"

ou bien:

toto = "%s"

il va se passer quoi d'apres toi? grin

50

ok, mon printf va donner accès à des données plus haut sur la pile, données que n'est pas censé connaitre l'attaquant, c'est ça ?

51

Encore pire, il y a le format %n qui écrit dans le pointeur passé en argument. sick
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

52

vala, donc ca permet d'espionner des adresses de retour par ex, ou pire de jardiner ^^

53

-

54

Ca fait du Stuff ? embarrassed

c'est ce que tu utilises pour t'autocensurer globalement?

55

je me souviens, une fois, un programme du genre avait foutu en l'air toute la bdd yaronet ^^
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

56

(et un sleep au milieu ?)

57

Hmm c'est gore quand même grin

Maintenant y'a moyen de faire ça avec une API JSON plutôt que de scanner des pages HTML, à l'occasion j'ajouterai la documentation dans les pages d'aide.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

58

-

59

Je me suis amusé à faire ça aujourd'hui en vacances avec un IDE php sur mon smartphone et un serveur local pour tester... Il est temps que japprenne autre chose pour mes tests, comme QPython. N'importe quel langage pourrait être utilisé pour ce petit script, ça n'est absolument pas spécifique au Web.
Je me suis aussi amusé à renommer les variables et virer les commentaires trop explicatifs, à vous de deviner ce que fait ce code, et surtout QU'EST ce qu'il cherche à calculer...

Le premier for a été ajouté après le reste, d'où l'indentation foireuse (flemme de la taper).
Pour les non-adeptes de php, array_shift depile le premier élément du tableau et retourne sa valeur, shuffle mélange aléatoirement un tableau. Pour le reste vous devriez comprendre. Les lignes de commentaires vides sont des commentaires supprimés, j'ai gardé la ligne pour mieux montrer les étapes dans l'algorithme.
<?php $total = $min = $max = $exces = 0; $moyenne = 100; for ($round = 0; $round < $moyenne; $round++) { // $elements = array(); for ($i = 1; $i <= 4; $i++) { for ($j = 1; $j <= 13; $j++) { $elements[] = $j; } } shuffle($elements); // $lot1 = $lot2 = array(); for ($i = 0; $i < 52; $i += 2) { $lot1[] = $elements[$i]; $lot2[] = $elements[$i+1]; } // $fin = 0; $tour = 0; while(true) { $tour++; /* Note : ce if n'existe qu'à cause de boucles parfois trop longues pour le smartphone ($exces), elle pourrait être supprimée au besoin */ if ($tour > 10000) { $exces++; $fin = 4; break; } $element1 = array_shift($lot1); $element2 = array_shift($lot2); $groupe = array(); while ($element1 === $element2) { // Verifier s'il y a assez d'éléments if (sizeof($lot1) < 2 || sizeof($lot2) < 2) { // $fin = 3; break 2; } $groupe[] = $element1; $groupe[] = $element2; $groupe[] = array_shift($lot1); $groupe[] = array_shift($lot2); $element1 = array_shift($lot1); $element2 = array_shift($lot2); } // $groupe[] = $element1; $groupe[] = $element2; $recuperation = ($element1 > $element2) ? "lot1" : "lot2"; for ($i = 0; $i < sizeof($groupe); $i++) { ${$recuperation}[] = $groupe[$i]; } // if (empty($lot1)) { $fin = 2; break; } elseif (empty($lot2)) { $fin = 1; break; } } /* Une partie du code a été supprimé, affichant des messages différents selon la valeur de $fin */ if ($fin < 4) { $total += $tour; if ($min === 0) { $min = $tour; } if ($min > $tour) { $min = $tour; } if ($max < $tour) { $max = $tour; } } } echo "Min : $min<br>"; echo "Max : $max<br>"; echo "Moyenne : ".ceil($total/$moyenne)."<br>";; echo "Excès : $exces";
avatar
« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique

60

./34 je te propose cette version légèrement revisitée grin
static public string PrependProtocol(string urlString) { string protocolString = new string(Array.Reverse("http://".toCharArray())); CharEnumerator charEnumerator = protocolString.GetEnumerator(); while (charEnumerator.MoveNext()) { char padleftChar = charEnumerator.Current; urlString = urlString.PadLeft(urlString.Length + 1, padleftChar); } return urlString; }