プロジェクトでランダム性コンポーネントを使用したいのですが、構成できません。私がしているとき
$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で使用されている文字が原因で、問題が発生しますか?