日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP事はじめ » phpでURLリダイレクトできない

phpでURLリダイレクトできない

ページ: 1

投稿者 投稿
会員
登録者: 3 2009
返信数: 10
お世話になります。
認証画面aaa.htmlから認証確認画面bbb.phpへ移し、ユーザのidとパスワー
ドが正しければユーザ用の画面に、正しくない場合は不認証画面に移るように
したいのです。
ネットから調べて実行しましたが、画面のリダイレクトが実行されずにその
ままphpが終了してしまいます。
下記命令を<html>の前や<body>直後など色々と挿入しましたが駄目でした。
どのようにしたらよいのか、宜しくお願いします。
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://xxxxxx.html";);
?>
会員
登録者: 8 2009
返信数: 103
おはようございます。

リダイレクトなのに
> <html>の前や<body>直後など色々と挿入しましたが駄目でした。
どうしてhtmlを出力してるのでしょうか?

それとマニュアルには目を通しましたか?
http://jp2.php.net/manual/ja/function.header.php

開発中はソースの冒頭に

ini_set('display_errors', 1);
error_reporting(-1);

を記述したほうがいいですよ。
会員
登録者: 3 2009
返信数: 10
回答有難うございました。
初心者なので、よく理解できません。
<html><body>を指定しては駄目なのでしょうか?
それから
ini_set('display_errors', 1);
error_reporting(-1);
を初めて知りました。今後使用していきます。
会員
登録者: 8 2009
返信数: 103
こんばんは。
どこまで初心者なのかわかりませんが、プログラミング自体なのでしょうか?

httpレスポンスは「ヘッダ、改行、データ」という構造です。
header()はhttpヘッダを送信するものなので<html>などのデータ送信後には送信できません。

header("Location: ~")はリダイレクトなので、リダイレクトした後に<html>など送信しても無意味になります。



<?php
header("Location: http://bbs.php.gr.jp/");
header("Content-Type: text/plain; charset=utf-8"); // 無効
echo "hello world!!"; // 無効
?>


# 関係ないですが、このBBS「BBCode を有効にする」にチェックすると勝手にソースに;(セミコロン)が挿入されますね。
# なので編集でチェック外しておきます。
« 最終編集者 nulla 日時 2010 年 5 月 8 日(土) 22:38. »
会員
登録者: 3 2009
返信数: 10
ご回答有難うございました。
何度も失礼しますが、
先頭に
<?php
header("Location: http://bbs.php.gr.jp/";);
を入れましたら、それ以降は実行されずに、http://bbs.php.gr.jp/
へリダイレクトされてしまうという事ですね。
条件で正ならhttp://bbs.aaa.htmlへ、
誤ならhttp://bbs.aaa.htmlへリダイレクトしたい場合には、使えない
のでしょうか?また、このような処理をしたい場合にはどのように指定
したらよろしいのでしょうか?宜しくお願いします。
会員
登録者: 3 2009
返信数: 10
間違えがありました。
『誤ならhttp://bbs.aaa.htmlへ』→『誤ならhttp://bbs.bbb.htmlへ』
失礼しました。
会員
登録者: 8 2009
返信数: 103
こんにちは。

普通にif文で可能ですよ。

auth.php
<?php

if($_GET['passwd'] !== "abcde") {
header("Location: http://bbs.bbb.html");
exit();
}

header("Location: http://bbs.aaa.html");

?>

auth.php?passwd=abcdeの場合のみhttp://bbs.aaa.htmlにページ移動します。
exit()に注視してください。

ただこの方法ですと明示的にhttp://bbs.aaa.htmlにアクセスされる恐れがあります。


# 書き忘れましたが、header("Location: ~")のあとの命令も実行されます。
« 最終編集者 nulla 日時 2010 年 5 月 10 日(月) 15:13. »

ページ: 1

日本PHPユーザ会 掲示板 » PHP事はじめ » phpでURLリダイレクトできない

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています