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

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

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

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

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

Q&A

解決済

1回答

868閲覧

header関数とURLパラメータ

natumi

総合スコア2

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

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

0グッド

0クリップ

投稿2020/07/08 04:25

気づけばプロ並みPHPでスタッフ一覧から分岐画面を作っています。
header()関数を使うと次の画面に移動せず画面が真っ白になります。
何か単純ミスだとは思うのですが自分では解決できず
お力添えいただければ幸いです。

staff_list.phpコード

$sql = 'SELECT id,name FROM staff WHERE 1'; $stmt = $dbh->prepare($sql); $stmt->execute(); $dbh = null; print '<p>スタッフ一覧</P>'; print '<form method="post" action="branch.php">'; while ($rec = $stmt->fetch(PDO::FETCH_ASSOC)) { print '<input type="radio" name="id" value="'.$rec['id'].'">'; print $rec['name'] . '<br/>'; } print '<input type="submit" name="edit" value="修正">'; print'<input type="submit" name="delete" value="削除">'; print '</form>'; } catch (Exception $e) { print $e->getMessage(); } ?>

分岐画面branch.phpコード

<body> <?php if(isset($_POST['edit'])){ $id=$_POST['id']; header("Location:staff_edit.php?id=".$id); exit(); } if(isset($_POST['delete'])){ $id=$_POST['id']; header("Location:staff_delete.php?id=".$id); exit(); }?> </body> </html>

staff_edit.phpコード

<?php try { $id=$_GET['id']; $dbh = new PDO('mysql:host=mysql144.phy.lolipop.lan;dbname=XXXX;charaset=UTF8', 'XXXX', 'XXXX',); $sql = 'SELECT name FROM staff WHERE id=?'; $stmt = $dbh->prepare($sql); $data[] = $id; $stmt->execute($data); $rec = $stmt->fetch(PDO::FETCH_ASSOC); $staff_name = $rec['name']; $dbh = null; } catch (Exception $e) { print $e->getMessage(); exit(); } ?>
<h1>スタッフ修正</h1> <?php print 'スタッフコード'.$id;?> <br/> <br/> <form method="post" action="staff_edit_check.php"> <input type="hidden" name="id" value="<?php print $id;?>"> <label for="name">スタッフ名</label><br/> <input type="text" id="name" name="name" value="<?php print $staff_name;?>"><br/> <label for="password">パスワードを入力してください</label><br/> <input id="password" type="password" name="password"><br/> <label for="password2">パスワードをもう一度入力してください</label><br/> <input id="password2" type="password" name="password2"><br/><br/> <input type="button" onclick="history.back()" value="戻る"> <input type="submit" value="OK"> </form>
</body>

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

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

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

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

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

guest

回答1

0

ベストアンサー

headerより

header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要があることです。

となっております。
今回のケースではheaderの前に<body>タグが出力されています。

投稿2020/07/08 04:28

gogoweb_ikeda

総合スコア1426

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

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

natumi

2020/07/08 05:08

一番上に移動したら表示されました! htmlのタグもダメだったんですね。 大変助かりました、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問