1

我会试着解释一下。

这段代码在这里:

if (empty($userid)) {
    $random = rand(10000,99999);
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".$random."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

这将返回访客 13245 或访客 85247 等随机用户名。

我想要的是它返回来宾贝蒂,或来宾幽灵,或来宾山羊,或来宾茶壶等。

我将如何编辑代码来实现这一点?

非常感谢您的帮助,我真的很感激。

我试过这个:

if (empty($userid)) {
    $random = rand(10000,99999);
    $filename="words.txt";
    $words=file($filename);
    shuffle($words);
    $word=$words[o];
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".$word."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

但它没有工作大声笑

回答。对于其他想要此功能的人:

if (empty($userid)) {
    $names= array('Goat', 'Teapot', 'Fuzzyface');
            $random = rand(0,count($names)-1);
            $name= $names[$random];
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".mysql_real_escape_string($name)."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

这成功了 :) 感谢加法器。

4

4 回答 4

2

你需要一本字典来做到这一点。您可以提供一个包含单词的数组

if (empty($userid)) {
    $dictionary = array(0 => 'Betty', 1 => 'Ghost');
    $max = count($dictionary) - 1;
    $random = rand(0, $max);
    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest".$random."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;

根据需要扩展数组。也许还有一本带有随机单词的附加字典,您可以在某处下载。当然,如果已经将姓名提供给某人以避免重复,您将不得不检查您的号码。

我建议您创建双字来最大化字数。您可以从此处获取列表:http ://www.momswhothink.com/reading/list-of-nouns.html 并命名始终包含 2 个世界的名称,例如 betty_ghost。您还可以让用户选择前缀,例如“叔叔”、兄弟、先生等 - 或在单词上附加一个随机数。有了这些词,您无论如何都需要注意,有些人可能不喜欢他们得到的词 - 并且不使用您的服务。所以,如果他们不喜欢,就让他们买一个新的。

在上面的代码中,您添加了必须替换的 words 文件

$word=$words[o];

$random = rand(0,count($words) - 1);
$word = $words[$random];
于 2012-12-20T09:19:07.797 回答
0

你可以有一个 mysql 表,其中包含随机单词。然后您可以随机选择一行并将其用作用户名。例如

if (empty($userid)) {
    $randomSql = "SELECT RANDOM_WORD FROM `random_word_table` ORDER BY RAND() LIMIT 0,1;"
    $randomQuery = mysql_query($randomSql);
    $randomResult = mysql_fetch_row($randomQuery);        

    $sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".$randomResult['RANDOM_WORD']."','".getTimeStamp()."')");
    $query = mysql_query($sql);
    $userid = mysql_insert_id();
    setcookie($cookiePrefix.'guest', base64_encode($userid), time()+3600*24*365, "/");
}

return $userid;
于 2012-12-20T09:20:58.157 回答
0

像这样:

$names= array('Ann', 'Betty', 'Charles');
$random = rand(0,count($names)-1);
$name= $names[$random];
$sql = ("insert into cometchat_guests (name,lastactivity) values ('Guest ".mysql_real_escape_string($name)."','".getTimeStamp()."')");
于 2012-12-20T09:21:28.960 回答
0

这是一个独立的函数,它将向您返回一个随机的用户名。当然,您需要向池中添加更多名称以减少名称冲突的机会。

<?php
function make_random_username() {
    $user_name_pool = array(
        'Ghost',
        'Goat',
        'Teapot'
    );
    $number = rand(0, count($user_name_pool) - 1);
    return 'Guest '.$user_name_pool[$number];
}
?>

如果您不想编造很多用户名,可以使用最常用的英语名词列表

于 2012-12-20T09:22:48.990 回答