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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

5019閲覧

PHP 掲示板 編集機能

mochio_o7

総合スコア17

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/08/20 04:25

編集2017/09/21 05:15

PHPについて勉強中、プログラミング初心者です。

今、簡易掲示板を作成しています。

名前とコメントを入力できるフォームがつくってあります。
編集用のフォームに投稿番号を入力すると、そこのデータが入力フォームに入るようになっています。

ここから、
<input type="hidden">タグを用いて、編集モードかどうかを判別する
・編集内容の値が送信されたら、fileで配列化して読み込みループさせる
・explodeを使って投稿番号を取得する
・各投稿番号とPOSTで送信された編集番号を比較し、イコールの時に配列値を取得するのではなく送信された値と差し替える
・差し替えた配列をテキストに上書き保存する

という流れを作りたいのです。

<input type="hidden">タグの使い方がよくわかりません。
また、差し替える方法もわかりません、、

アドバイスをいただきたいです、

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

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

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

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

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

guest

回答2

0

POSTでの各エレメントの受け渡しを理解しなければなりません。それが分かれば、textタイプもhiddenタイプも同様に扱えます。
サブミットボタンを押したら、hiddenエレメントの初期値が表示されるプログラムを動かしてみましょう。
参考記事、「PHP フォームから値を取得する$_POSTの使い方」

また、textファイルの読み込み手順と書き込み手順を理解しなければなりません。
テキストファイルの全行echo出力プログラムと、テキストファイルの上書きプログラムを動かしてみましょう。
参考記事、「ファイルの読み込み - PHPでファイルの読み書き・掲示板」

ステップバイステップでスキルアップしていくことです。

投稿2017/08/20 09:04

編集2017/08/26 22:48
seastar3

総合スコア2285

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

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

mochio_o7

2017/08/26 03:08

回答ありがとうございます。 参考記事を見ながら勉強しようと思います!
guest

0

ベストアンサー

<input type="hidden">タグの使い方がよくわかりません。

hiddenに関しては簡単に言うと「見えないフォームパーツ」と考えたらいいでしょう。
type=textだと画面にテキストボックスが見えるかと思いますが、hiddenは見えない、みたいなお話です。

ちなみにですが、今回提示されているソースだと、hiddenタグは編集可否ではなく、上側のformで編集番号をPOSTすべきかと思います。

また、差し替える方法もわかりません、、

提示されているプログラムでは、11.txtファイルを必ず読んでいるようですが、
推測するに「編集対象の番号.txt」というファイル名の命名規則で考えているんですかね?
その場合は単純に編集対象のファイルが存在するかを確認した上で、そのファイルの中身を書き換えれば問題ありません。

もし単一ファイルの中にすべてのデータを格納するというのであれば、
ファイルデータをすべて読みこんで展開し、対象データだけ差し替えた上で新規でファイルに書き直すのが一番簡単かと思います。

投稿2017/08/29 02:01

Ruizi_Luigi

総合スコア208

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

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

mochio_o7

2017/08/29 03:11

回答ありがとうございます! ソースにhiddenタグを付け加えてみたのでお時間ございましたら確認をおねがいいしたいです(/_;) また、11.txtファイルですが、これは編集対象番号とは関係ありません。このファイルの中にすべてのデータを格納してあります。それで、対象データのみ差し替えたいのですが、そちらの方法が分かりません、、 <?php $edi = $_POST["edit"]; $edibun = file("kadai11.txt"); for ($km = 0; $m < count($edibun); $m++) { $edibunDate = explode("<>", $edibun[$m]); if($edi == $edibunDate[0]){ $datafile ='kadai11.txt'; if (isset($_POST["name"],$_POST["comment"])) { $name = ($_POST["name"]); $comment = ($_POST["comment"]); $time = date('Y')."年".date("m月d日 H:i:s"); $newdata = ($edi."<>".$name."<>".$comment."<>".$time. "\n"; $fp = fopen($datafile,'w'); fwrite($fp, $newdata); fclose($fp); } } } ?> 上記のコードで試しに行ってみたところ全部上書きされてしまって、、、
Ruizi_Luigi

2017/08/29 03:26

> 上記のコードで試しに行ってみたところ全部上書きされてしまって、、、 ヒントとしては下記になります http://php.net/manual/ja/function.fopen.php fopenを[w]で開くと、ファイルポインタをファイルの先頭に置きます。 毎回毎回ファイルを開いて先頭から書き込みをしたら、そりゃあ全部上書きされてしまいますよね。
mochio_o7

2017/08/29 04:14

なるほど、、大変分かりやすいアドバイスありがとうございます! 少し自分で調べてみたいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問