【发布时间】:2018-05-27 00:54:28
【问题描述】:
我正在编写一个php 脚本,它将生成一个随机的 16 位字符串(包含数字和字母)。它将通过表单中的数字输入类型创建用户告诉它的尽可能多的字符串。
我编写了一个 for 循环来处理执行代码 x 次(用户通过表单告诉它执行多少次),但是将 while 循环放在我的 for 循环中会导致 500 Internal Server Error。
$generate_num 是用户通过表单提供的内容。
这是我正在使用的:
for($x = 0; $x <= $generate_num; $x++){
function makeString() {
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 15) {
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$string = $string . $tmp;
$i++;
}
return $string;
}
$string = makeString();
}
我在 PHP 错误检查器网站上运行了我的代码,但它没有说我有任何错误。任何有关为什么这可能会导致 500 服务器错误的见解将不胜感激。提前致谢!
【问题讨论】:
-
你在 foo 循环中多次定义函数
-
另外请注意,您应该只调用一次
srand(),而您调用的$salt与加密盐无关。我希望您不要尝试将结果用于加密目的。
标签: php function for-loop while-loop