dポイントプレゼントキャンペーン実施中!

画面が3枚あります。


『ログイン.php』
ログイン名(uid)、パスワード(upass)を入力し、
認証.phpへ[uid]と[upass]をPOST送信する。

『認証.php』
上記ログイン.phpにてPOST送信された[uid]と[upass]を受け取り、
if条件文にて判定を行う。
uidとupassが合致していたならば、header("Location: ./一覧表示.php");に飛ぶ。
uidとupassの相違していたならば、header("Location: ./ログイン.php");に戻る。

『一覧表示.php』
認証が通ったuidを元にuidテーブルを一覧表示する。



最後の一覧表示.phpにて認証が通ったuidのみをテーブルに一覧表示させるには
どのような処理を行えばよろしいのでしょうか?

私が思うに、認証.phpからさらにuidをPOST送信するものと考えておりますが、
header関数にてそれをどのようにして行うものかがわかりません。
以下に認証.phpの一部を記載しました。
ご教授のほどよろしくお願いします。

// ----- 認証
function chk_auth() {

if ($_POST["uid"] and $_POST["upass"]) {
$sql = "SELECT * FROM usr where uid = '".cnv_sqlstr($_POST["uid"])."'"
." and pass = '".cnv_sqlstr($_POST["upass"])."'";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");
$row = mysql_fetch_array($res, MYSQL_ASSOC);
if (mysql_num_rows($res) >= 1) {
return TRUE;
}
else {
return FALSE;
}
}
else {
return FALSE;
}
}

//  処理開始
if (!chk_auth()) {
header("Location: ./login2.php");
exit;
}
else {
header("Location: ./itiran.php");
exit;
}

A 回答 (3件)

この場合のみ考えるとNo1の方法が簡単でいいと思います。

なれたら、No2のセッションにもぜひ挑戦してみましょう。

前回より質問の趣旨が解りやすくなっているのはいいですが、ほったらかしはいかがなものかと・・・

この回答への補足

No1.No2.No3にご回答して頂いた方々ありがとうございます。この場で御礼申し上げます。いま、実家に帰っておりサーバに触れる状態ではありませんので、後ほど設定後、改めて御礼または再度ご質問したいと思います。よろしくお願いします。

補足日時:2006/01/01 19:52
    • good
    • 0

Header("Location:○○");


ではGETであれば送信できます。
Header("Location:○○?uid=■■&upass=△△");
というようにです。

しかしながら、POST(標準入出力)にしろGET(URLの後ろに付ける)にしろ送信データは外部から簡単に見えてしまうという問題があるので認証データの送信にはお勧めできないです(個人的に)
私は、こういう場合はセッションを使ってサーバにデータを置くようにしています。そうすれば、データは送信しないですし、ブラウザを閉じればデータが自動的に消えるので良いと考えています。
以下、セッションにデータを保存する方法を示します。

//  処理開始
if (!chk_auth()) {
header("Location: ./login2.php");
exit;
}
else {
session_start();
$_SESSION["uid"] = $uid;
$_SESSION["upass"] = $upass;
header("Location: ./itiran.php");
exit;
}

です。ただし、コードでsession_start();の前の部分に文字出力(HTMLタグ、print文、echo文など)があるとヘッダー送信エラーになります。その点に注意してください。

読み出しは一覧表示のPHPで
session_start();
$uid = $_SESSION["uid"];
$upass = $_SESSION["upass"];
でできます。

これも同様にsession_start();の前に出力があるとダメです。

session_start();は両PHPの一番最初でしておくのが無難かと思います。
    • good
    • 0

自分なら



『認証.php』
上記ログイン.phpにてPOST送信された[uid]と[upass]を受け取り、
if条件文にて判定を行う。
uidとupassの相違していたならば、header("Location: ./ログイン.php");に戻る。
uidとupassが合致していたならば、include("./一覧表示.php");で読み込む
かその後に続けて一覧表示の処理を書きます。
変数がそのまま続けて使えるので。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!