ID: 12455
Updated by: jflemer
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Bogus
Bug Type: *Math Functions
Operating System: All
PHP Version: 4.0.4pl1, 4.0.6
New Comment:

Try moving your srand() call outside of the pwd() function. That should fix it. The 
posted script returns 4 for me on Solaris 5.8, and 500 when I move the srand() outside 
of pwd().

srand() should only be called *once*.

Reopen this if that does not fix it.

Previous Comments:
------------------------------------------------------------------------

[2001-07-30 06:25:27] [EMAIL PROTECTED]

The same problem also occurs on PHP 4.0.6 on Darwin/PPC. 
System info:

PHP Version 4.0.6
System: Darwin localhost 1.3.7 Darwin Kernel Version 1.3.7: 
Sat Jun  9 11:12:48 PDT 2001; 
root:xnu/xnu-124.13.obj~1/RELEASE_PPC  Power Macintosh 
powerpc
Configure Command   './configure' '--with-mysql=/usr/local' 
'--with-apxs=/usr/sbin/apxs' '--with-zlib=/usr'
Server API: Apache
Apache Version: Apache/1.3.20


------------------------------------------------------------------------

[2001-07-30 05:17:09] [EMAIL PROTECTED]

A friend tried to run the test code on his machine and also 
got 4 as a result. This is a Linux machine so my original 
guess of this being Solaris specific isn't true. The only 
real common denominator seems to be the PHP version? I'm 
trying to get an upgrade to see if this is happening under 
4.0.6.

Here's more info on the two servers this is occuring on:

PHP Version: 4.0.4pl1

System: 
Linux xxx.com 2.2.14 #2 SMP Tue Mar 14 14:42:34 PST 2000 
i686 unknown
Configure Command:  './configure' 
'--with-apxs=/usr/local/apache/bin/apxs' '--with-xml' 
'--with-mcrypt' '--with-mysql' '--enable-track-vars'
Server API: Apache

System: SunOS yyy.com 5.8 Generic_108528-02 sun4u sparc 
SUNW,UltraSPARC-IIi-cEngine
Configure Command:      './configure' 
'--with-apache=../apache_1.3.14' 
'--with-mysql=/usr/local/mysql' '--with-ldap=/usr/local' 
'--with-db3=/usr/local/BerkeleyDB.3.2' '--with-gd=../gd1.5' 
'--with-ttf=/usr/local' '--enable-wddx'



------------------------------------------------------------------------

[2001-07-29 16:41:51] [EMAIL PROTECTED]

Well, when I run that code I get 4, not 500. Upping the 
number of iterations doesn't help. I think the problem is 
with the particular build (extension/OS combination). Any 
way to debug this?

------------------------------------------------------------------------

[2001-07-29 14:26:39] [EMAIL PROTECTED]

I don't think I understand what the problem is here.  I tested your code with the 
following:

<?
function pwd() {
$password = "";
$array = 
array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',0,1,2,4,5,6,7,8,9);

srand ((double)microtime()*1000000);
shuffle(&$array);
for ($i=0; $i<6; $i++) { $password .= $array[$i]; }
return $password;
}

$i=0;
while($i<500) {
    $password = pwd();
    $a[$password] = $password;
    $i++;
}
echo count($a);
?>

This always returns 500 which means that 500 unique passwords were always created.

------------------------------------------------------------------------

[2001-07-29 05:51:30] [EMAIL PROTECTED]

I'm using the following code to create random strings 
(passwords):

$password = "";
$array = 
array('a','b','c','d','e','f','g','h','i','j','k','l','m','
n','o','p','q','r','s','t','u','v','w','x','y','z',0,1,2,4,
5,6,7,8,9);
srand ((double)microtime()*1000000);
shuffle(&$array);
for ($i=0; $i<6; $i++) { $password .= $array[$i]; }

Now, for some reason this seems to return only five 
different values ever on the Solaris machine I'm running 
the code on. And I'm not checking on the same run of the 
script, this is based on accessing page with the script 
through http and looking at the results for about 150 
reloads on two different days.

This is the first time I'm sending a PHP report so I don't 
know exactly what information to provide. Please ask for 
more if as you see fit.

------------------------------------------------------------------------



Edit this bug report at http://bugs.php.net/?id=12455&edit=1


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to