phpの処理の順番を変更したいです。
<body> 内でインサートしたものを<header>内で取り出したいです。 どのようにすれば実現できるでしょうか? php、もしくはjqueryでも良いので、最適な解決方法を教えていただきたいです。 よろしくお願いいたします。 以下簡単なイメージコードです。header.php
<header> <?php DBでデータ取り出し; echo データ; ?> </header> __________________________
test.phpの中身
<?php require('header.php'); ?> <body> insert データ; ?> </body> __________________________
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
ob_start
ob_get_clean
などの関数をフル活用すれば一応実現不可能ではないです.が,後々「なんでこんなコード書いてしまったんだろう」と後悔すること必至なので,今のうちに設計をあらためてください.
特に今回ひっかかるのは**「テンプレートとロジックは分けろ」**というところです.HTMLの中にロジックを埋め込むのは間違っています.頭ですべてロジックを完結させて,HTMLで動的な内容が必要であれば変数をあらかじめ準備しておき,HTMLを書き始めたらそれだけに徹する,この書き方が鉄則です.
ここで紹介しているコードの一部を記します.
html
1<?php 2 3function h($str) { 4 return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); 5} 6 7session_start(); // 1 8 9$name = (string)filter_input(INPUT_POST, 'name'); 10$text = (string)filter_input(INPUT_POST, 'text'); 11$token = (string)filter_input(INPUT_POST, 'token'); // 3 12 13$fp = fopen('data.csv', 'a+b'); 14if ($_SERVER['REQUEST_METHOD'] === 'POST' && sha1(session_id()) === $token) { // 3 15 flock($fp, LOCK_EX); 16 fputcsv($fp, [$name, $text]); 17 rewind($fp); 18} 19flock($fp, LOCK_SH); 20while ($row = fgetcsv($fp)) { 21 $rows[] = $row; 22} 23flock($fp, LOCK_UN); 24fclose($fp); 25 26?> 27<!DOCTYPE html> 28<meta charset="UTF-8"> 29<title>掲示板</title> 30<h1>掲示板</h1> 31<section> 32 <h2>新規投稿</h2> 33 <form action="" method="post"> 34 名前: <input type="text" name="name" value=""><br> 35 本文: <input type="text" name="text" value=""><br> 36 <input type="submit" value="投稿"> 37 <input type="hidden" name="token" value="<?=h(sha1(session_id())) /*2*/ ?>"> 38 </form> 39</section> 40<section> 41 <h2>投稿一覧</h2> 42<?php if (!empty($rows)): ?> 43 <ul> 44<?php foreach ($rows as $row): ?> 45 <li><?=h($row[1])?> (<?=h($row[0])?>)</li> 46<?php endforeach; ?> 47 </ul> 48<?php else: ?> 49 <p>投稿はまだありません</p> 50<?php endif; ?> 51</section>
「テンプレートとロジックを分ける」という意味,ご理解いただけましたでしょうか.
投稿2016/06/17 04:05
編集2016/06/17 05:14総合スコア5223
0
test.phpをこうすればいいのでは。
PHP
1<?php 2insert データ; 3?> 4<?php require('header.php'); ?> 5<body> 6</body>
投稿2016/06/17 02:15
総合スコア16998
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/17 02:23
2016/06/17 03:04
2016/06/17 03:21
2016/06/17 03:33
2016/06/17 03:47
2016/06/17 04:03
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。