首页 > 解决方案 > 生成随机字节不适用于托管域

问题描述

我为自动用户名字段生成随机字节的代码有问题。当我在我的本地主机上尝试它时它是成功的:

成功

但是当我通过托管域尝试它时,它是不成功的:

不成功

这是我的代码:

<div class="form-group">
    <label for="input" class="col-sm-4 control-label">Username :</label>
    <div class="col-sm-6">
        <input type="text" name="username" id="input" class="form-control" readonly="" value="<?php $bytes=random_bytes(5); echo bin2hex($bytes);?>" required="required">
    </div>
</div>

这有什么问题?有没有更好的方法来解决我的问题?

标签: phphosting

解决方案


openssl_random_pseudo_bytes(5),在 PHP 5.3+ 中工作

http://php.net/manual/en/function.openssl-random-pseudo-bytes.php

<div class="form-group">
    <label for="input" class="col-sm-4 control-label">Username :</label>
    <div class="col-sm-6">
        <input type="text" name="username" id="input" class="form-control" readonly="" value="<?php $bytes=openssl_random_pseudo_bytes(5); echo bin2hex($bytes);?>" required="required">
    </div>
</div>

推荐阅读