我似乎无法弄清楚为什么我的随机数在浏览器上的刷新或返回按钮上生成相同的结果。或者,如果电子邮件有错误,例如重复条目,标题会显示返回注册页面再次填写详细信息。
简单地说:每次注册新用户时,我都会尝试在数据库中创建一个新的数字序列,如果我刷新表单或按回,用户大多数时候都会收到相同的随机数浏览器中,仅在提交时调用编号规则
<?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 时这个函数都不会重新计算。
查看图片:
最佳答案
似乎您的 account
列类型的最大整数是 232323231
,而您的函数输出一个 10 位数字。将您的表修复为 bigint(20) unsigned
并且它应该可以工作。 :)
关于php函数从随机数返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934005/