私はwhile()
ループを使用してランダムなファイル名を作成し、それをデータベースと照合して、それがすでに存在する場合はループします。私は少し前にこれをやったことがあるので、私の文法/使用法はちょっと心配です。それ以来、このようにループはwhile()
を使っていません。while()を使用してランダムなファイル名を生成していますか?
は、ここに私のコードです:
$i = 0;
while(++$i) {
$file_name = md5(mt_rand(0,9999999)) . ".php";
$result = mysql_query("SELECT * FROM x WHERE file_name = '{$file_name}'");
if(mysql_num_rows($result) == 0) { break; } else { continue;}
}
うこの作品、とされていない場合、それと間違って何ですか?
私が知っているのはちょっとした質問ですが、これがうまくいくかどうかをテストするのは、新しいテーブルを作成し、ファイル名を変更して1から3のものを選択し、メッセージを表示する代わりに、継続のなど常に、理解されるように
すべてのヘルプ、これは動作しますが、あなたが行を変更することができ
フォルダ内に一意の名前を持つファイルを作成するPHP関数が組み込まれています: 'tempnam()' http://php.net/manual/en/function.tempnam.php – Paulpro
このコード**は、テーブル内に同じファイル名を2つ持つことから保護していません。同じランダムファイル名が同時に実行されるスクリプトで2回生成されるためです。 – zerkms
ああ。 'tempnam()'のデフォルトのファイル拡張子は.phpですか、それとも何らかの形で.phpを追加する必要がありますか? – Avicinnian