もう突っ込みどころが多すぎで、卒倒したソースでした。 色々うんこが多すぎて・・・ちなみに「user」テーブルには削除フラグ「DEL_FLG」があり、ユーザー削除時に1にしていたようです。
もちろん、コレは地獄への入り口・・・・他の部分もコレに劣るともまさらない、地獄コード。 もう、人様のソースを触ると地獄へ行くと痛感したソースでした。
しかし・・・僕すごいんだよ、優秀なんだよというスーバーPHPエンジニアに見せたら、真顔でどこがおかしいんですか?って言われました。
もちろん、全て作り直し、DBはマイグレーションしたものの、もとの糞な構造に引きずられて、変な数値の持ち方で後々、死亡しました。(0:削除 1:表示 2:削除 3:保留中とか)
<?php
/*********************************************************
ログイン処理
*********************************************************/
if ($_POST["mode"]=="login"){
	//ユーザ情報取得
	$sql = "SELECT * ";
	$sql.= "  from user";
	$sql.= " where ID = '" .$_POST["ID"]. "'";
	$rs = mySQLQuery($sql);	
	while ($item = mysql_fetch_array($rs)) {
		$userData = $item;
	}
	if ( $userData['PASSWORD'] == $_POST["PW"] ) {
		header("HTTP/1.1 301 Moved Permanently");
		//ユーザタイプチェック
		if ($userData["TYPE"]=="1"){
			header("Location: ./mastermenu.php");
		}else if ($userData["TYPE"]=="2"){
			if ($_SESSION["RETURN_URL"]!=""){
				header("Location: ./".$_SESSION["RETURN_URL"]);
			}else{
				header("Location: ./usermenu.php");
			}
		}
	}else{
		$errMSG.="<font style=\"color:#ff0000;\">ID、又はパスワードに誤りがあります。</font>";
	}
}
echo $errMSG;
//しかもこの下でログイン失敗のログ書き込み
//・・・・
//
?>
            使い方ヒント: 「これは臭う」という行を見付けたら、各行の
をクリックしてマーキングしておきましょう(要Twitter OAuth認証)
その自称優秀君、とりあえずSQLインジェクションの可能性には気付け!
ID「hogehoge'; DROP TABLE user; --」とかで誰もログインできなくなりそう
コメント投稿には、twitter認証が必要です。
Twitter認証
突っ込みどころ多すぎて笑うw