質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

11423閲覧

Header('Location:URL');で任意のページに飛ばない理由と解決法

YousukeTanaka

総合スコア79

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2015/11/25 16:31

PHPを学び始めたものです。今回はお世話になります。

現在、ショッピングカートを作成しており、その中で、分岐画面を作成しております。
ですが、Warning表示が出てしまい、ご相談したい次第です。

条件を指定し情報の、参照、追加、修正、削除の各ページに飛ぶようにしたいと考えています。
そこで、以下のコードを作りました。

<?php if(isset($_POST['disp'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); } $pro_code=$_POST['procode']; header('Location:pro_disp.php?procode='.$pro_code); } if(isset($_POST['add'])==true) { header('Location:pro_add.php'); } if(isset($_POST['edit'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); } $pro_code=$_POST['procode']; header('Location:pro_edit.php?procode='.$pro_code); } if(isset($_POST['delete'])==true) { if(isset($_POST['procode'])==false) { header('Location:pro_ng.php'); } $pro_code=$_POST['procode']; header('Location:pro_delete.php?procode='.$pro_code); exit; } ?>

上記でページ飛びませんので、いくつか試しました。
例えば、header('Location:pro_delete.php?procode='.$pro_code);
を「else{}」で囲ったり、上記コードの後に、「exit;」を置いたりしましたが、
ページの表示には至りませんでした。また、スペースの大きさも確認しました。

上記を試した上でなお表示されませんので、確認したい次第です。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Warning メッセージの内容次第になりますが。。。

おそらく、Waring メッセージは "Cannot modify header information ..." だと思われます。
header 関数が呼ばれる前に何らかの出力が行われていることが原因です。

ファイル末端のPHP閉じタグ "?>" 以降に空白文字、改行など入っていないでしょうか。
ちなみに "?>" 以降、特に何も処理する必要が無ければ、"?>" は記載しないのが最近のお作法です。

Warning の内容が異なっていましたら、別の問題の可能性が高いです。
その際は、Warning メッセージを記載してみてください。

投稿2015/11/26 00:53

usk

総合スコア397

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YousukeTanaka

2015/11/26 01:05

ご回答ありがとうございます。確認したところ、PHP閉じタグ以降には空白文字、改行は入っていなかったのですが、”<?php”の開始タグの前に空白が入っていてました。これを除いたところ、画面の表示がされました。小さなことですが、非常によい教訓となりました。以降は注意を払いたいと思います。これに数日費やしていましたが、ようやく先に進めます。改めて感謝いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問