質問編集履歴
2
コメントの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
try{
|
26
26
|
$file = new SplFileObject('hogehoge.txt', 'cb+');
|
27
27
|
|
28
|
-
if(isset($_POST['text']) && is_string($_POST['text'])) {
|
28
|
+
if(isset($_POST['text']) && is_string($_POST['text'])) { //初回起動時に非表示
|
29
29
|
$file->ftruncate(0);
|
30
30
|
$file->fwrite($_POST['text']);
|
31
31
|
} else {
|
@@ -79,7 +79,8 @@
|
|
79
79
|
```
|
80
80
|
|
81
81
|
### 試したこと
|
82
|
-
現在表示名の出力はできているのですが、一言メッセージの出力ができないです。
|
82
|
+
・現在表示名の出力はできているのですが、一言メッセージの出力ができないです。
|
83
|
+
|
83
84
|
|
84
85
|
### 補足情報(FW/ツールのバージョンなど)
|
85
86
|
|
@@ -87,5 +88,7 @@
|
|
87
88
|
・字が汚くて申し訳ないのですが出力したい形式はこんな感じです。
|
88
89
|
表示名は一行、一言メッセージは複数行入力可能なフォームです。送信を押すと表示名の上に入力した結果が表示されるようにしたいです。
|
89
90
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-20/6b11ac4b-57f3-4c60-b39b-54014a32d773.jpeg)
|
91
|
+
・ページの更新をした後送信したメッセージを消したいのですが何かやり方はありますか?
|
90
92
|
|
91
93
|
|
94
|
+
|
1
プログラムを少し変更し、出力したいイメージを手書きで図にしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
phpで1つのファイルでフォームを作成するプログラムを作っているのですが、表示名の下のテキストのところが表示されません
|
5
5
|
|
6
6
|
### 実現したいこと
|
7
|
-
フォームにメッセージを入力
|
7
|
+
フォームにメッセージを入力したら表示する
|
8
8
|
|
9
9
|
|
10
10
|
### 発生している問題・エラーメッセージ
|
@@ -17,28 +17,14 @@
|
|
17
17
|
function h($input) {
|
18
18
|
return htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
|
19
19
|
}
|
20
|
-
|
20
|
+
|
21
|
-
return htmlspecialchars($input1, ENT_QUOTES, 'UTF-8');
|
22
|
-
}
|
23
21
|
$msgs = array();
|
24
22
|
$text = '';
|
25
|
-
|
23
|
+
|
26
|
-
$text = '';
|
27
24
|
|
28
25
|
try{
|
29
26
|
$file = new SplFileObject('hogehoge.txt', 'cb+');
|
30
|
-
$file = new SplFileObject('hogehoge1.txt', 'cb+');
|
31
27
|
|
32
|
-
if(isset($_POST['text']) && is_string($_POST['text'])) {
|
33
|
-
$file->ftruncate(0);
|
34
|
-
$file->fwrite($_POST['text']);
|
35
|
-
} else {
|
36
|
-
$text = '';
|
37
|
-
while (!$file->eof()) {
|
38
|
-
$text .= $file->fgets();
|
39
|
-
}
|
40
|
-
}
|
41
|
-
/*-------------------------------------------------------------*/
|
42
28
|
if(isset($_POST['text']) && is_string($_POST['text'])) {
|
43
29
|
$file->ftruncate(0);
|
44
30
|
$file->fwrite($_POST['text']);
|
@@ -56,13 +42,12 @@
|
|
56
42
|
|
57
43
|
}
|
58
44
|
|
59
|
-
/*
|
45
|
+
/*表示*/
|
60
|
-
|
61
|
-
|
62
46
|
foreach ($file as $line) {
|
63
47
|
if ($line == false) continue;
|
64
48
|
echo "$line<br>", PHP_EOL;
|
65
49
|
}
|
50
|
+
|
66
51
|
$msg = implode(PHP_EOL, $msgs) . PHP_EOL;
|
67
52
|
?>
|
68
53
|
<!DOCTYPE html>
|
@@ -73,51 +58,34 @@
|
|
73
58
|
<body>
|
74
59
|
<?php echo $msg; ?>
|
75
60
|
<form action="<?=basename($_SERVER['SCRIPT_NAME'])?>" method="post">
|
76
|
-
|
61
|
+
|
77
62
|
|
78
63
|
表示名
|
64
|
+
<div><input type="text" name="text" rows="10" cols="30"><br>
|
65
|
+
<?php echo h($text); ?>
|
66
|
+
</div>
|
67
|
+
|
68
|
+
一言メッセージ
|
79
|
-
<div><textarea id="t_message" name="text" rows="10" cols="30">
|
69
|
+
<div><textarea id="t_message" name="text1" rows="10" cols="30">
|
80
70
|
<?php echo h($text); ?></textarea>
|
81
71
|
</div>
|
82
72
|
|
83
|
-
一言メッセージ
|
84
|
-
<div><textarea id="t_message" name="text" rows="10" cols="30">
|
85
|
-
<?php echo h1($text); ?></textarea>
|
86
|
-
</div>
|
87
|
-
|
88
73
|
<div><input type="submit" value="送信" /></div>
|
89
|
-
</fieldset>
|
90
74
|
</form>
|
91
75
|
</body>
|
92
76
|
</html>
|
93
77
|
|
94
|
-
|
95
|
-
```html
|
96
|
-
<!DOCTYPE html>
|
97
|
-
<head>
|
98
|
-
<meta charset="UTF-8" />
|
99
|
-
<title>サンプル</title>
|
100
|
-
</head>
|
101
|
-
<body>
|
102
|
-
<div style="color:red;">エラー: SplFileObject::__construct(hogehoge.txt): failed to open stream: Permission denied</div>
|
103
|
-
<form action="サンプル.php" method="post">
|
104
|
-
|
105
|
-
|
106
|
-
<div><textarea name="text"></textarea></div>
|
107
|
-
<div><input type="submit" value="送信" /></div>
|
108
|
-
|
109
|
-
</form>
|
110
|
-
</body>
|
111
|
-
</html>
|
112
78
|
ソースコード
|
113
79
|
```
|
114
80
|
|
115
81
|
### 試したこと
|
116
|
-
|
82
|
+
現在表示名の出力はできているのですが、一言メッセージの出力ができないです。
|
117
83
|
|
118
84
|
### 補足情報(FW/ツールのバージョンなど)
|
119
85
|
|
120
86
|
・テキストファイルはMeryを使用しています
|
87
|
+
・字が汚くて申し訳ないのですが出力したい形式はこんな感じです。
|
121
|
-
|
88
|
+
表示名は一行、一言メッセージは複数行入力可能なフォームです。送信を押すと表示名の上に入力した結果が表示されるようにしたいです。
|
89
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-20/6b11ac4b-57f3-4c60-b39b-54014a32d773.jpeg)
|
122
90
|
|
123
91
|
|