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;

それはトリックをしました:) Adderに感謝します。

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のようなリストを取得して 、betty_ghost など、常に 2 つの世界で構成される名前を作成できます。ユーザーに「叔父」、兄弟、ミスターなどの接頭辞を選択させることもできます。または、単語に乱数を付けることもできます。いずれにせよ、これらの言葉が気に入らず、あなたのサービスを利用しない人もいることに注意する必要があります。したがって、気に入らない場合は、新しいものを入手できるようにします。

上記のコードで、置き換える必要がある単語ファイルを追加しました

$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 に答える