stormy_gunner 2017-05-21 02:42:11

[PHP] ログイン処理 このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

もう突っ込みどころが多すぎで、卒倒したソースでした。 色々うんこが多すぎて・・・ちなみに「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;

//しかもこの下でログイン失敗のログ書き込み
//・・・・
//

?>

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(5)

#1 remi_ts 2017-05-25 04:04:46  

突っ込みどころ多すぎて笑うw

#2 darth_tossy 2017-05-26 04:00:37  

その自称優秀君、とりあえずSQLインジェクションの可能性には気付け!

#3 Luca_Maud1125 2017-05-29 02:01:32  

ID「hogehoge'; DROP TABLE user; --」とかで誰もログインできなくなりそう

#4 is_1010 2017-06-15 07:44:34  

毎回、ログ書き込み?リダイレクトしたらexitしろ!

#5 ItoiKenta 2017-12-09 05:58:03  

fetchの箇所は多分推奨されてない関数が使われている。。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] is禁止令

このエントリーをはてなブックマークに追加

ウンコードの趣旨とは違い、レビューで指摘...

// Mod yamada Start

// 一般的に考えて真偽値を返すメ...

鑑賞する »

[HTML] 改行すんなし

このエントリーをはてなブックマークに追加

なぜこれが改行として解釈されるのか理解不...

</br>

鑑賞する »

[Java] 内部的にunicodeだから日本語つかえ...

このエントリーをはてなブックマークに追加

これを書いた先輩に「英語で書きましょうよ...

class 会員 {
    private int 会員番号;
    p...

鑑賞する »