php函数从随机数返回相同的结果

时间:2014-05-29 13:02:29

标签: php mysql

我似乎无法理解为什么我的随机数在浏览器上刷新或返回btn时产生相同的结果。或者如果电子邮件出现错误,例如重复的条目,则标题会返回到注册页面以重新填写详细信息。

简单地说:我每次注册一个新用户时都在尝试在我的数据库中创建一个新的数字序列,如果我要刷新表单或者按回来,用户会多次收到相同的随机数。浏览器,只在提交

时调用数字序列
<?php

$create_account = substr(number_format(time() * rand(),0,'',''),0,10);

 //etc

if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email,
     password,salt, account, registered ) VALUES (?, ?, ?, ?,$create_account, now())")) 

 //  Database looks like this after it is inserted, check the account column.


...................................................................................
| id  | username |      email      |  paswword  |  salt   |  account  | registered |
....................................................................................
|  1  | david    | david1@f.com    |dfg8dfgdfgg |dfgdfgdfg| 2323232329 | 10/8/2013  |
....................................................................................
|   2 | bill     |  bill@der.com   |sdfsdfsdfspz|wpzz9kecm| 2323232329 | 11/26/2013 |
....................................................................................

我不明白为什么在为新用户填写表单后,每次请求page.php时都不会重新计算此函数。

检查图片:example of storing old variables

1 个答案:

答案 0 :(得分:2)

似乎您的account列类型的最大整数为232323231,而您的函数输出一个10位数字。将您的表格修复为bigint(20) unsigned,它应该有效。 :)