![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
画面が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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
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の一番最初でしておくのが無難かと思います。
No.1
- 回答日時:
自分なら
『認証.php』
上記ログイン.phpにてPOST送信された[uid]と[upass]を受け取り、
if条件文にて判定を行う。
uidとupassの相違していたならば、header("Location: ./ログイン.php");に戻る。
uidとupassが合致していたならば、include("./一覧表示.php");で読み込む
かその後に続けて一覧表示の処理を書きます。
変数がそのまま続けて使えるので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP php ログイン 1 2022/11/01 00:24
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpMyAdminでデータの追加・更...
-
レンタル予約管理表を作りたい
-
携帯端末auのみpostで送ったデ...
-
PHPで、データを表示させるとき...
-
GETで「?」無しでパラメータの...
-
【PHP】ブログ記事をお気に入り...
-
XMLのロードに失敗する
-
PHPのif文でその処理を途中で抜...
-
【file_exists】ファイルが存在...
-
onedrive にexcelファイルをア...
-
拡張子php画像をjpg画像等に変...
-
youtubeに音声のみのmp4ファイ...
-
PHPのMySQLモジュールのインス...
-
pixivのイラスト投稿の仕方を教...
-
javascriptからphpへ変数
-
PHPで作るフレーム、どんな風に...
-
PHPで外部プログラムのバックグ...
-
FTPでのファイルとディレクトリ...
-
ファイルアップロードの上限を...
-
フレームワークの選定について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リダイレクトでPOST
-
URLの変わらないページをPHPで...
-
【WordPress】メディアの一覧出力
-
テキストリンクを2回クリックし...
-
URLでスラッシュ区切りでパラメ...
-
【PHP】ブログ記事をお気に入り...
-
会員サイトに自動ログインして...
-
PHPで、データを表示させるとき...
-
php my adminより取り出したデ...
-
LARAVEL モデル
-
レンタル予約管理表を作りたい
-
WordPress 検索結果ページのペ...
-
header関数でページ移動する場...
-
phpinfoでloaded modulesが表示...
-
GETで「?」無しでパラメータの...
-
PHPで検索結果からさらに詳細な...
-
phpでの二重投稿防止について
-
phpとpostgresを利用した検索シ...
-
PHPとSmartyで、ブログサービス...
-
リンク(URL)をクリックした後、...
おすすめ情報