0

プロジェクトでランダム性コンポーネントを使用したいのですが、構成できません。私がしているとき

$ss = Yii::app()->Randomness::randomString(32);

これはactionIndex()でエラーをスローします

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /protected/controllers/SiteController.php on line 32

これをmain.php構成ファイルに入れました

'components'=>array(
      'Randomness'=>array('class'=>'Randomness'),
      [......]
),

だから、私を助けてくれませんか?

-------------------------------------------------- ---------編集---------------------------------------- ---------------------------

すべての回答に感謝しますが、Randomnessは1and1.comホスティングで機能していないようです。しかし、すばらしいニュースは、ランダム文字列を生成する別の良い方法を見つけたことです。1and1.comで有効と思われる「/dev/urandom」を使用しています。コードは次のとおりです。

<?php
class Random extends CApplicationComponent
{
    public static function intRandom($min, $max) 
    {
        $bits = '';

        $diff = $max-$min;
        $bytes = ceil($diff/256);


        $fp = @fopen('/dev/urandom','rb');
        if ($fp !== FALSE) {
            $bits .= @fread($fp,$bytes);
            @fclose($fp);
        }
        $bitlength = strlen($bits);
        for ($i = 0; $i < $bitlength; $i++) {
            $int =  1+(ord($bits[$i]) % (($max-$min)+1));
        }
        return $int;
    }

    public static function strRandom($length) {
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-+=|]}[{;:?.,></"; 

        $size = strlen( $chars );
        for( $i = 0; $i < $length; $i++ ) {
            $str .= $chars[ self::intRandom(0, strlen($chars)-1) ];
        }

        return $str;
    }
}

しかし、今、私は別の質問があります。データベースのソルトに保存する必要があるときに、$ charで使用されている文字が原因で、問題が発生しますか?

4

2 に答える 2

1

だけではないのはなぜRandomness::randomString(32);ですか?(ドキュメントで指定されているとおり)

于 2012-02-24T11:03:04.673 に答える
0
Yii::app()->Randomness->randomString = 32;

クラスRandomnessにプロパティrandomStringがあることを確認してください。

于 2012-02-24T11:23:46.260 に答える