Anyone else discover that PHP is no longer producing unique values for uniqid() after updating to 5.3.26? My previous version was 5.3.16.

It's not a minor problem. My DOM IDs are generated with that function for all jQuery UI Buttons, and a lot of them have duplicate IDs.

I've changed the code from uniqid("button") to uniqid("button",true) but it didn't change the results. Still getting duplicate IDs.

This happen after updating Zend Server free edition to the latest build.

Is there a solution to this? Refactoring the code to use integer counters is not a small task, and means I have to retest everything.

有帮助吗?

解决方案

Okay, I was able to fix my problem by doing the following.

Change:

 $id = uniqid('button');

To

 $id = str_replace('.','-',uniqid('button',true));

That includes an extra number appended with a dot. Which creates invalid DOM IDs (in my case) so I just replace it with a dash.

其他提示

uniqid() only provides a probability of unicity. If you really want a unique ID you'll have to use an incremented integer.

That said there's a really small chance of having duplicate uniqids. Are you truncating the result of uniqid() in any way ?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top