私は新しいメンバーをアクティブにするメソッドに取り組んでいます。 ;Yiiのモデルプロパティへの配列データの割り当て
$モデル - >ユーザ名= $データ[1]:
未定義オフセット:1
エラーは以下が含まれる行で発生し、私は次のエラーを取得します
この作業を改善するためのYii方法はありますか?
私はphp、oop、およびYiiの新人ですので、どんな援助も非常に高く評価されます!
このメソッドは基本的にユーザーからget要求を受け取ります。 getメソッドはこのメソッドを実行し、アカウントの検証に使用されるキーを含みます。検証は、キーと同じ名前のファイルに保存されます。ファイルの中には、日付、ユーザー名、電子メール、塩、およびパスワードハッシュを含むパイプで区切られた行があります。ファイルを読み込んだ後、パイプでデータを爆発させた後、データをモデルに割り当ててからdbに保存する必要があります。
...
$model=new Users;
$model->activation_key=$_GET['key'];
$path_to_validation_files = Yii::app()->basePath."/data/new_member_validations";
$validation_file = $path_to_validation_files . "/".$model->activation_key.".dat";
if(is_readable($validation_file) && !empty($validation_file))
{
if($fp = fopen($validation_file, 'r'))
{
while(!feof($fp))
{
$line = fread($fp, filesize($validation_file));
}
fclose($fp);
$data = explode('|', $line);
if(!empty($data)){
$model->username=$data[1];
$model->email=$data[2];
$model->salt=$data[3];
$model->password=$data[4];
} else {
throw new CHttpException(500,'Validation file contained no data.');
}
} else {
throw new CHttpException(500,'Cannot open validation file.');
}
} else {
throw new CHttpException(404,'Validation file not found, not readable, or empty.');
}
...
$ lineのファイルから実際に行を取得していますか? fclose($ fp)の後にif(空($ line))が死んでいる( '行が出ない')ことを確認できます。 $ lineに問題があるように見えるだけです。 freadは指定したバイト数、つまりファイル全体を読み込むので、whileループも冗長です。 – Abhijit
'print_r($ data)'の出力は何ですか?あなたは常に2番目の配列位置に何かがあると確信していますか? – ldg
@ldg - print_rはエラーを説明するArray([0] =>)ですが、なぜ空白であるのですか? – Mark