2011年2月22日火曜日

2/22覚書

今日も1時間目から実習。
ループしてログアウトできない・・・・・・昼直前まで検索等行うも解決ならず、くわっちょにHELP。
したらあったよおかしいところ。
//session開始
session_start();

//セッションハイジャック対策
session_regenerate_id(true);

//データベース読み込み
require "./include.php";

//ユーザー名とパスワードが一致したらPOSTに格納
if($_POST["user_name"] !="" || $_POST["user_name"] !=NULL){
 $user_name = $_POST["user_name"];
}
if($_POST["password"] !="" || $_POST["user_name"] !=NULL){
 $password = $_POST["password"];
}
//XSS対策
$user_name = hg($_POST["user_name"]);
$password = hg($_POST["password"]);

require_once './include_errorcheck.php';

//print_r($_POST);

//ユーザー名を指定検索することでif判定と同等の処理。
$sql ="SELECT * FROM user WHERE del_flg=0 AND user_name ='".$user_name."'";
 $result = mysql_query($sql);
//上記が通らないとデータが出ない。
//$row = mysql_fetch_array($result);
//print ($error_msg["euname"]);

//if($row["password"] == $password){
//上の$resultは抜けていたが、NULL判定がないために、
//『$passwordは空欄で正しい』という処理になっていた。

//$resultできたらパスワード判定と代入

if($row = mysql_fetch_array($result)){
 if ($row["password"] == $password) {
 $_SESSION["user_name"] = $row["user_name"];
 $_SESSION["user_nickname"] = $row["user_nickname"];
 $_SESSION["authority"] = $row["authority"];
 header("Location: ./menu.php");
 exit;
 //print "デバッグ用目印。使うときはheaderに//をつける";
 }else{
 if($row != mysql_fetch_array($result)){
  $error_msg["euname"]= "ユーザーが確認できません。";
  $error_yn = "y";
 }

  if($row["password"] != $password){
   $error_msg["epass"]= "パスワードが間違っています";
   $error_yn = "y";
  }
 }
}

うー、とりあえずなんとか。
ユーザー名だけが合って、パスワードが間違ってたら×
エラーの言葉おかしいような気もするが、今日はログインここまで。
気分転換にmenuの表示判定。
<h2 Align=Center>メニュー</h2>
<table border=0  cellspacing="0" cellpadding="5" Align=Center>
 <tr>
 <td>
  <?php echo $_SESSION["user_nickname"] . "さんでログインしています" ?>
 </td>
 <td>
   権限:<?php echo $authority[$_SESSION["authority"]]?>
 </td>
 <td>
    <a href="./ctr/logout_ctr.php">ログアウト</a>
 </td>
 </tr>
 <tr>
 <td>
  <ul type="circle">
  <?php if($_SESSION["authority"] ==1){?>
   <li><a href="./index.php">一覧表示</a></li>
   <li><a href="./upass_update.php">パスワードの変更</a></li>
  <?php }else{?>
   <li><a href="./index.php">一覧表示(新規登録・更新・削除)</a>span予定</li>
   <li><a href="./upass_update.php">パスワードの変更</a></li>
   <li><a href="./user_insert.php">ユーザーの登録</a></li>
  <?php }?>
  </ul>
 </td>
 </tr>
</table>

明日はindexでのユーザーと管理者の表示判定・・・・・・
あー、やっぱし変数化がほしいいぃいい><