sidewalkcafe blog

日々是好日

POTI-boardの警告エラー修正

POTI-boardで良くあるエラーが

Notice: Undefined variable: 変数 in 〜
//定義してない変数を使う

Notice: Undefined offset: 配列のキー in
//定義してない配列の値を使う

Notice: Undefined index: 連想配列 in
//定義してない連想配列を使う

エラーや警告が出ると(サーバー上で表示されなくても)速度がめっちゃ落ちるので
細かく改善していった方が良い


なので
例えばアップロードされるファイルの有る無しは

if(isset($_FILES["upfile"])){
	$upfile_name=$_FILES["upfile"]["name"];
	$upfile=$_FILES["upfile"]["tmp_name"];
}

で取得する


他にも

switch($mode){}
の前に
if (isset($mode)){}
を入れて囲む


関数の場合、参照渡しとデフォルト引数を設定することで呼び出しもとの変数が空でも警告がでなくなる

例えば記事上書きの場合
case 'rewrite':
	rewrite($no,$name,$email,$sub,$com,$url,$pwd,$admin);
	break;

読者編集だと$adminが設定されてないので
関数の方に「&$admin=""」と入れて空の場合でも変数宣言できるようにする

function rewrite($no,$name,$email,$sub,$com,$url,$pwd,&$admin =''){}

これで$adminがあればその値に、なければ空の値が入る

単純に
if($a){
で警告が出てる場合は
if(isset($a) && $a){
としても良い