NewbieContest

Programmation => Langages Web => Discussion démarrée par: ITPPA le 24 Mars 2017 à 13:50:52



Titre: Incomprehention sur fonction srand PHP
Posté par: ITPPA le 24 Mars 2017 à 13:50:52
Messieurs bonjour

Je me retrouve confronte a une fonction de hachage avec un srand
Rien de bien compliqué jusque la, sauf que je me suis littéralement pris la tête pendant plusieurs heures a cause d'une chose dont je n'est pas la réponse.
Peut etre qu'une ame (un cerveau) charitable pourrais m' eclairsir

Prenons le code php suivant:

Code:
<?php
srand
(3284724); 
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
?>


l'initialisation par srand devrait me retourner certes des valeurs différentes sur chaque lignes (comme le stipule la doc srand (http://php.net/manual/fr/function.srand.php)), mais devrait retourner toujours les même valeurs a chaque exécution du script.
Jusque la tout va bien,

Incompréhension étant au niveau du moteur php.

En phpcli (PHP 7.1.3 (cli) (built: Mar 17 2017 16:59:59) ( NTS ), le code ci dessus me retourne:
154 251 74 124 83

Et par un explorateur sur server (Apache httpd 2.4.10 - PHP 5.6.30-0+deb8u1), le même code me retourne:
107 183 99 223 226

En écrivant ce post, je vois la coquille.... la version php n'est pas la meme  :?. et effectivement, en phpcli sur le serveur avec php 5.6 le retour est le même:
107 183 99 223 226

Cela voudrait il dire que la fonction srand a été modifiée entre php 5.6 et php 7!!!!

Moralité, toujours debugger / comprendre / reverser un code AVEC LE MÊME ENVIRONNEMENT!

Mais bon, quelqu'un aurait une explication?, un lien... avons nous nous un développeur php dans le coin qui pourrait expliquer la chose?!  :evil: :evil: :evil:

ITPPA


Titre: Re : Incomprehention sur fonction srand PHP
Posté par: lovenunu le 24 Mars 2017 à 14:29:24
Messieurs bonjour

Il n'y a pas que des hommes sur ce site  :rolleyes:

Sinon oui il y a bien eu un changement dans la 7.1: https://wiki.php.net/rfc/rng_fixes
La fonction `rand()` est maintenant enfin un alias de mt_rand.


Titre: Re : Incomprehention sur fonction srand PHP
Posté par: ITPPA le 27 Mars 2017 à 10:32:09
Ceci expliquerai cela.

Merci a ces messieurs dames.  :oops: