• ベストアンサー

phpのheader関数でページ移動させるときについて

現在、作成しているPHPに、 if($_POST[main]){ header("Location: ./main.html"); } 以上のような方法で、name="main"のボタンが押された時にページを移動する、という動作をさせているPHPファイルがあるのですが、これを <a href="./main.html" target="_top"></a> というような、ターゲットを指定させてページ移動させたいのですが、可能なのでしょうか? フレームなどを利用しているので、その対策を行いたいのです。 よろしくお願いいたします。

  • PHP
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

javascriptでformのターゲットをいじるくらい ですかね

ikazuti
質問者

お礼

javascriptで行うことにしました。 ご回答、有り難うございました。

その他の回答 (2)

  • S202
  • ベストアンサー率26% (5/19)
回答No.2

ボタンではなくリンクではだめなのでしょうか? <a href="./main.html?data=abc" target="_top"></a> main.html側で data=$_GET['data']; として取得したデータに応じた処理をする。 意図している動作でなければすいません。

ikazuti
質問者

お礼

要望が、読み込んだら、すぐにページを遷移させたいという奴なんですよね…… javascriptで行うことにしました。 ご回答、有り難うございました。

  • awazak
  • ベストアンサー率36% (61/165)
回答No.1

できません。 また、フルパスで記述しましょう。 ブラウザによって、うまく遷移しない場合があります。 header("Location: http://example.com/main.html"); あと、 header("Location: http://example.com/main.html"); exit; ↑ の記述も忘れずにheader関数以降も実行されてしまいます。

ikazuti
質問者

お礼

なるほど。こちらも調べましたが、方法はないようですね。 javascriptで行うことにしました。 ご回答、有り難うございました。

関連するQ&A

  • header関数でページ移動しない

    現在携帯サイトをPHPで作成しているのですが下記のようなコードを書くと、ページが移動しません。 本来は条件処理をした後で、ページ移動させたい地のですが、 一番シンプルなコードにしてもページが移動してくれません。 ローカルサーバーのVine Linuxでは動作するのですが、 ロリポップ、114090、berrysan.net(http://www.berrysan.net/index.html) などでは動作してくれません。 ---------------- 以下 ページが移動しない --------------- <?php  //サイト設定ファイル読み込み  require_once("./setini.php");  $Url = "http://oshiete.goo.ne.jp/";  header("Location: $Url"); ?> ------------------------------------------------------ ---------------- 以下 ページが移動する ---------------- <?php  //サイト設定ファイル読み込み  //require_once("./setini.php");  $Url = "http://oshiete.goo.ne.jp/";  header("Location: $Url"); ?> ------------------------------------------------------ setini.phpは、下記のようなdefine定義があるだけです。 <?php define("TOP_FILE","./index.php"); : : ?> 何処か使い方がおかしいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • header(Location: next.php) だとPOSTした値が渡らない?

    文末は(だいぶ端折ってますが), (1) エラーがあればエラー表示, (2) エラーがなければnext.phpに飛ぶ という動作をするのですが, next.php 内に echo $_POST["Name"]; とか echo $_POST["reg"]; とか書いても valueの中身が渡ってきていません. header("Location: next.php"); で飛ばすとだめなのでしょうか. http://oshiete1.goo.ne.jp/qa2706500.html でも,#2さんのアドバイスのようにしようとしましたが, #1さんのご教示のように,セッションを利用するしかないですか? ちょっとセッションで値の渡し方がチンプンカンプンなのですが・・・ <?php session_cache_limiter('none'); session_start(); header("Cache-control:no-cache"); header("Pragma:no-cache"); $errFlg=false; if ( $_POST["reg"] == "" ) $errFlg = true; if ( !$errFlg ) { if ( $_POST["Name"] == "" ) { $errFlg = true; $errStr["Name"] = "未入力"; } } if ( $errFlg ) { ?> <html><body> <form method="post" action="<?php $_SERVER["PHP_SELF"] ?>"> <?= $errStr["Name"] ?></td> <input type="text" name="Name" value="<?php echo $_POST["Name"]; ?>"> <input type="submit" name="reg" value="登録"></td> </form> </body></html> <?php } else { header("Location: next.php"); } ?>

    • ベストアンサー
    • PHP
  • header("Location: ")でページ移動しない;

    <?php $image_no = $_GET['image_no']; if($image_no == ""){ $image_no = 0; } if($image_no == 10){ header("Location: http://www.test/i/"); } ?> <img src="../img/test<?php echo $image_no;?>.jpg"> <?php echo $image_no;?> <br/> <a href="test.php?image_no=<?php echo $image_no + 1;?>">次へ</a> こんなカンジで、『次へ』のリンクをクリックすると、画像が切り替わるものを書いたんですが、$image_no == 10になったら、別のページへジャンプしたいんですが、うまくいきません。 10回目でエラーになってしまいます。 どうやったらうまく違うページへジャンプできるのでしょうか?

    • ベストアンサー
    • PHP
  • header関数でページ移動する場合の変数について

    MySQLとPHPを使ったWebシステムの勉強をしているPHP初心者です。 現在ログイン認証ページを作っており、 (1)IDとパスワードをフォームで入力     ↓ (2)action='$PHP_SELF'で同じページにリダイレクト     ↓ (3)認証を確認し次第header関数で自動的に別のページに飛ばす     ↓ (4)IDに応じてページの内容を変える。 という風にしています。(3)の部分のソースコードは(かなり省いてはいますが)以下の通りです。 if (session_is_registered($ADMSESS)) { header("location: admnew.php"); } ここで、(3)までのページで使っていた変数を(4)のページでも受け取り、そのまま使いたいと思っているのですが、どうしたらいいでしょうか。今は(4)を開いたとき、どのようなIDでログインしても同じページが表示されています。 分かりにくいですね、、HTMLベースのフォームだとaction=POSTを用いて飛ばした変数を $変数 = $_POST['変数'];として受け取ることが出来ますが、PHPで同じことをやろうとするとどうなるのか、ということです。 分かる方いましたら、どうか御回答宜しくお願いします。

    • ベストアンサー
    • PHP
  • 【PHP?】header("location : ・・・")が作動しな

    【PHP?】header("location : ・・・")が作動しない PHPに関して質問させていただきます。 -------------------------------------------- <html> <head> <title></title> </head> <body> <?php if($_POST['pay'] == credit) { header("Location : creditinfo.php"); } else { print("ただいま制作中です\n"); } ?> </body> </html> -------------------------------------------- というコーディングを行い、 ・前ページでのpostで[credit]というデータが返ってくると別ページへ移動 ・それ以外のデータが帰ってきたら「ただいま制作中です」というテキストを表示 ということを行いたいのですが、 それを実行すると Warning: Cannot modify header information - headers already sent by (output started at C:・・・.php:6) in C:・・・.php on line 8 というエラーが返ってきてしまい、そのページから先に進めなくなってしまいます。 様々なページで解決方法を探りましたが、解決できずにいます。 ちなみに、elseの方の「ただいま制作中です」は表示できます。 どなたかご教授をお願いします。

    • ベストアンサー
    • PHP
  • 環境をかえたら header(Location:)に不具合が?

    ローカル環境からWEBサーバに作ったPHPファイルを移動させたのですが、 header(Location:)がうまく動かなくなってしまいました。 アドレスがおかしいのかと思って いくつか試してみたんですが ファイルによってうまく行くのと行かないのがあるようです。 傾向としては $chkに5が入っていたら test.phpに移動する。 if($_SESSION['chk'] != '5'){  header('Location: ./test.php');  exit; } はうまく動くのですが ifでいくつか処理を行ったあとに if(isset($_POST('submit')){  いくつかの処理  header('Location: ./login.php'); } とするとうまく動かないという状態です。 どのようなケースが考えられるでしょうか アドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • header()関数によるリダイレクトについて

    下記のようなスクリプトにおいて、header()関数で、リダイレクトしているのですが、 ちゃんとリダイレクトできません。ちなみに、header()関数の前には HTML文も無い、PHPのみのスクリプトです。 どうすれば、リダイレクトできるか教えていただきたいのですが。 【profile_regist.php】 <?php if($_POST['ID_HANDLENAME']!==NULL) $handlename = $_POST['ID_HANDLENAME']; else header("Location: ~.html"); 中略 ?>

    • ベストアンサー
    • PHP
  • PHPのセッションについて。

    <?php if(isset($_POST['cmdSubmit'])){ session_start(); $user = $_POST['user_name']; $_SESSION['user_name'] = $user;  header('Location:./test.php'); } ?> アンケートフォームの内容をセッションに入れて 別ページで <?echo $_SESSION['user_name'];?> という感じで出力させたいのですがうまく行きません。 セッションに登録されているかチェックするために 移動する前にecho $_SESSION['user_name']; で内容が表示されるかどうか確認したのですが そのときは問題なく内容が表示されるので、 headerで他のページに移動する前までは問題なさそうだと思います。 なにかアドバイスいただけたらとおもいます。 よろしくおねがいします。

    • ベストアンサー
    • PHP
  • 【php】ログイン後、元いたページにリダイレクト

    こんばんは。phpを勉強し始めたばかりの者です。宜しくお願いします。 会員制サイトを作っています。 そこで、 ページにログインなしで来ると、ログインページにリダイレクト、ログインすると、元いた場所にリダイレクトされるようにしたいです。 以下のような方法はセキュリティ的に問題ありますでしょうか? セッションに戻るページを覚えさせて、 if (!isset($_SESSION["name"])) { $_SESSION['return'] = $_SERVER["REQUEST_URI"]; header("Location: login.php"); exit; } ログイン処理を終えた後、 if(!empty($_SESSION['return'])){ $url = $_SESSION['return']; header("Location: $url"); exit; } else { header("Location: top.php");// 戻るページがない場合、トップページへ exit; } のようにして、戻ります。 が、期待した通りの動きはできたのですが、セキュリティ的に問題がないかどうか不安です。 もし、やめた方が良いのでしたら、どのような方法が考えられますでしょうか。 ご指導ください。宜しくお願いします。

    • ベストアンサー
    • PHP
  • headerをページによって表示、非表示にする

    トップページのみヘッダーのjavasprictを使い、他ページでは非表示にしたいのですが、header.phpをもう一つ作り(javaのタグが入ってないもの)別名で保存し、header.phpと同じデレクトリーに保存しページの<?php get_header(); ?>の部分を<?php get_header1(); ?>に変えたのですがエラーでした。 これはどうすれば別々に見る事ができるでしょうか?? 今のページ設定は以下になってます。 <?php get_header(); ?> <div class="span-24" id="contentwrap"> <div class="span-14"> <img src="http://pimpkidz.com/wp/wp-content/uploads/2011/08/side.jpg" /> <div id="content"> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> <div id="indexthumb"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_post_thumbnail(array( 200,200 ), array( 'class' => 'post_thumbnail' )); ?></a></div> <div id="indexcontent"> <h2 class="title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <p class="postdate"><span><?php the_time('Y/n/j(D)') ?> </span></p> <div class="entry"> <?php echo excerpt(40); ?> <div class="readmorecontent"> <a class="readmore" href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">Continue</a> </div> </div> </div> <div style="clear:both;"></div> </div><!--/post-<?php the_ID(); ?>--> <hr><?php endwhile; ?> <?php else : if ( is_category() ) { // If this is a category archive printf("<h2 class='pagetitle'>Sorry, but there aren't any posts in the %s category yet.</h2>", single_cat_title('',false)); } else if ( is_date() ) { // If this is a date archive echo("<h2 class='pagetitle'>Sorry, but there aren't any posts with this date.</h2>"); } else if ( is_author() ) { // If this is a category archive $userdata = get_userdatabylogin(get_query_var('author_name')); printf("<h2 class='pagetitle'>Sorry, but there aren't any posts by %s yet.</h2>", $userdata->display_name); } else { echo("<h2 class='pagetitle'>No posts found.</h2>"); } get_search_form(); endif; ?> </div> </div> <?php get_sidebars('right'); ?> </div> </div> <?php get_footer(); ?> もし他のソースが必要でしたら言ってください。宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう