質問編集履歴

4

消してしまった内容を元にもどしました。

2018/11/28 05:07

投稿

aushijima
aushijima

スコア55

test CHANGED
@@ -1 +1 @@
1
- クラスが見つからないエラーが発生する
1
+ FILEをアップロードした時にアップロードの条件に入らない
test CHANGED
@@ -1,349 +1,231 @@
1
- #[実したいこと]
2
-
3
- 初期表示では、エラが出ませんが、ajaxで送信した下記のようエラーが出るので解消したいです。
4
-
5
-
6
-
7
- #[起こっているエラー]
8
-
9
- Fatal error: Uncaught Error: Class 'DirectChat' not found in /var/www/html/xxxxx.xyz/xxx-groupwork_ushijima/library/Api/chatDirect.php:10 Stack trace: #0 {main} thrown in /var/www/html/xxxxx.xyz/xxx-groupwork_ushijima/library/Api/chatDirect.php on line 10
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
- ```ここ言語入力
18
-
19
- <?php
20
-
21
- // library直下のlibrary.phpを読み込むように設定する
22
-
23
- require_once(preg_replace('/Api[\/\]chatDirect.php/','',__FILE__).'library.php');
24
-
25
- $chat = new Chat;
26
-
27
- //データベー接続
28
-
29
- $con = new Db;
30
-
31
- //ログインユーザーの表示
32
-
33
- $account = new Account;
34
-
35
- //ダイレクトチャット用のオブジェクト作成する
36
-
37
- $direct_chat = new DirectChat;
38
-
39
- // //やり取りしている内容を全件取得する
40
-
41
- $direct_chat_comments = $chat->getAllDirectChatExchange($group_chat_no);
42
-
43
-
44
-
45
- //ダレクトチャット画面でグープチャット番号で検索かけるためにグループチャット番号を取得する
46
-
47
- $group_chat_no=filter_input(INPUT_POST,"group_chat_no");
48
-
49
- $direct_chat_create=filter_input(INPUT_POST,"direct_chat_create");
50
-
51
- $GROUP_CHAT_EXCHANGE_COMMENT_TEXT=filter_input(INPUT_POST,"GROUP_CHAT_EXCHANGE_COMMENT_TEXT");
52
-
53
- ##########################################
54
-
55
- // ダイレクトチャットで必要になる機能
56
-
57
- // 送信ボタン押した時に投稿内容が登録される
58
-
59
- // 空で送信ボタンを押すと登録の処理が行われない
60
-
61
- // 自分で作成した投稿に関しては、削除することが可能
62
-
63
- // 投稿内容に関していいね、お気に入り登録、返信などをすることができる。(自分の投稿や相手の投稿に関わらず、つけれる)
64
-
65
- ##########################################
66
-
67
-
68
-
69
- if(!is_null($direct_chat_create)){
70
-
71
- //ボタンが押された処理
72
-
73
- if(!is_null($GROUP_CHAT_EXCHANGE_COMMENT_TEXT) and $GROUP_CHAT_EXCHANGE_COMMENT_TEXT!==""){
74
-
75
- //データを登録した時に新たにダレクトチャットのリスト表示する
76
-
77
- $chat->setDirectChatExchange($group_chat_no,$GROUP_CHAT_EXCHANGE_COMMENT_TEXT,$reply_to_dairect_chat_comment_no);
78
-
79
- $direct_chat->commnet_list($direct_chat_comments);
80
-
81
- }else{
82
-
83
- //コメントが入力されていなければ何も処理されない
84
-
85
- }
86
-
87
- }else{
88
-
89
- //初期表示でやり取りしていなかったら表示しない。
90
-
91
- $direct_chat->commnet_list($direct_chat_comments);
1
+ #現状起こってこと
2
+
3
+ ファイルをアップロした、条件に入らないです。
4
+
5
+ ```ここに言語を入力
6
+
7
+ logger('セッションの値を確認する1'.$_SESSION['upfile'][$i]);
8
+
9
+ ```
10
+
11
+ ※ログを見ても出力されておらず、条件に入っていないです。
12
+
13
+ #実現したいこと
14
+
15
+ chat_theme.phpで、ファイルがアップロードされたら、その情報をセッションに入れて、**テーマチャット作成ボタン**を押した後に**Chat.php**でDBへのアップロードファイルのパスを登録したり、移動するためのディレクトリを作成して、ファイルをディレクトリに移動するようにしたいと思っています。
16
+
17
+ 登録ボタンを押すまでファイルアップロードしたら、エラーがなかったらセッションに格納されているファイルが上書きされて、それが、Chat.phpに送られた(登録されるファイルが確定された状態)時にファイルを移動したいからです。
18
+
19
+ **※これよりももっと良い方法があればそこも教えてください。**
20
+
21
+ #仕様など
22
+
23
+ **ファイルのアップロードでは、画像以外の.csv、.txtなどのファイルもアップロードできるようにと考えています。**
24
+
25
+ **※添付ファイルを追加するを押すとファイルアップロード部分のhtmlができるようになっており、複数登録をする仕様になっています。**
26
+
27
+ **chat_theme.phpなどは、主にフォームのバリデーションチェックや入力した値を登録用や検索用のクラスのChat.phpに送る役目です。**
28
+
29
+ **※リロードするとjavaScriptでhtmlのタグを出しているので消えてしまいますが、ここは、この仕様(参考にして欲しいと言われたサイト)に似せています。**
30
+
31
+
32
+
33
+ ### html部分
34
+
35
+ ```ここに言語入力
36
+
37
+ <form action="" method="post" name="chat_theme" enctype="multipart/form-data">
38
+
39
+ <div id="attachedFileAdd" class="attachedFileAdd">
40
+
41
+ <a href="javascript:void(0);" class="fileadd iconLink" onclick="attachFileClick();">
42
+
43
+ <img src="" alt="">
44
+
45
+ <span>添付ファイルを追加する</span>
46
+
47
+ </a>
48
+
49
+ </div>
50
+
51
+ </form>
52
+
53
+ ```
54
+
55
+ ### js部分
56
+
57
+ ```ここに言語入力
58
+
59
+ // ##############################################
60
+
61
+ // 添付画像の処理を記載
62
+
63
+ // ##############################################
64
+
65
+ // TODO 番号のリセットなどを実装して、DB上で複数登録させる
66
+
67
+ //カウンターを設定する
68
+
69
+ var attachcount = 0;
70
+
71
+ //添付ファイルのボタンが押された際と削除した際画像にファイル名を動的に与える為に必要
72
+
73
+ var attachbox = document.getElementById('attachedFileAdd');
74
+
75
+ //添付ファ追加するボタン
76
+
77
+ function attachFileClick(){
78
+
79
+ //添付ファイルを追加するを押した回数をカウントアップする
80
+
81
+ attachcount++;
82
+
83
+ var counter = attachcount;
84
+
85
+ var test = document.getElementById('ui-id-1');
86
+
87
+ //要素内の、最後の子要素の後ろ
88
+
89
+ test.insertAdjacentHTML('beforeend',
90
+
91
+ '<div id="cba_commonAttachedFile'+ counter +'"'+'class="attachedFileParts" data-file-count="'+counter +'">'
92
+
93
+ +'<input type="file" size="30" name="file[] class="inputFile">'
94
+
95
+ +'<input type="hidden" name="MAX_FILE_SIZE value="26,214,400">'
96
+
97
+ +'<span class="guide">(25MBまで)</span>'
98
+
99
+ +'<a href="javascript:void(0);" class="attachedFileList__delete attachedFileDeleteiconLink" onclick="deleteFileClick();">'
100
+
101
+ +'<img src="" alt class="icon">'
102
+
103
+ +'<span>削除</span>'
104
+
105
+ +'</a>'
106
+
107
+ +'</div>');
108
+
109
+
110
+
111
+ ```
112
+
113
+ ### php部分 chat_theme.php
114
+
115
+ ```ここに言語を入力
116
+
117
+ //テーマチャット作成ボタンが押される前にファイルがアップロードされることは、ないのでファイルがアップロードされたら、セッションに入れておく
118
+
119
+ //上書きをした場合は、書き換わる
120
+
121
+ $file_list = array();
122
+
123
+ for($i=0;$i<count($_FILES['file']);$i++){
124
+
125
+ if(empty($_SESSION['upfile'][$i]) || $_FILES['file']['error'][$i] === 0) {
126
+
127
+ unset($_SESSION['upfile']);
128
+
129
+ $_SESSION['upfile'][$i] = $_FILES['file'];
130
+
131
+ logger('セッションの値を確認する1'.$_SESSION['upfile'][$i]);
132
+
133
+ //名前の被りを防いで登録するために、拡張子とファイル名の所を分割する(デバッグ用のコード)
134
+
135
+ $file_list = preg_split("/[.]/",$_SESSION['upfile']['name'][$i]);
136
+
137
+ $_SESSION['filelist'] = $file_list;
138
+
139
+ }
140
+
141
+ //テーマチャット作成時バリデーションチェック
142
+
143
+ if(!empty($_POST['chat_theme_create'])){
144
+
145
+ //グループタイトルのバリデーション
146
+
147
+ if(empty($_POST['GROUP_CHAT_TITLE'])){
148
+
149
+ $_POST['err'][] = 'タイトルが入力されていません。';
150
+
151
+ //グループタイトル文字数上限超過
152
+
153
+ }elseif($chat->getGroupChatByName($_POST['GROUP_CHAT_TITLE'])) {
154
+
155
+ $_POST['err'][] = '入力されたタイトルは既に登録済みです。';
156
+
157
+ }
158
+
159
+ //バリデーションエラー時に入力画面で表示させる為にセッションに入れておく
160
+
161
+ //所属メンバーのリスト
162
+
163
+ if($_SESSION['belong_member']){
164
+
165
+ //バリデーションエラーにひっかかって後にさらに追加した場合
166
+
167
+ $_SESSION['belong_member'] = array_merge($_SESSION['belong_member'],(array)$_REQUEST['addressId']);
168
+
169
+ }else{
170
+
171
+ //バリデーションエラー前に初回追加した時(複数登録されることを想定して配列にしておく)
172
+
173
+ $_SESSION['belong_member'] = (array)$_REQUEST['addressId'];
174
+
175
+ }
176
+
177
+ //グループチャット作成登録画面に遷移してきた時
178
+
179
+ if($_GET['edit_type'] == 'register'){
180
+
181
+ //ファイルのアップロード状況を確認
182
+
183
+ logger('登録ボタンを押した瞬間'.$_SESSION['file']);
184
+
185
+ logger('登録ボタンを押した瞬間'.var_dump($_SESSION['file']));
186
+
187
+ //エラーがなければ登録処理を行う
188
+
189
+ if(empty($_POST['err'])){
190
+
191
+ $chat->setGroupChat($_POST['GROUP_GHAT_NO'],$_POST['GROUP_CHAT_TITLE'],$_POST['GROUP_CHAT_MEMO'],$_FILE['file']['tmp_name'],$_POST['modifiable'],$_SESSION['belong_member']);
192
+
193
+ //チャットの一覧ページ(ダイレクトページとテーマチャットが一覧で見れるページ)メッセージは、
194
+
195
+ $_SESSION['edit_topic_msg'] = 'トピックが'.$chat->getGroupChatEditType($_GET['edit_type']).'されました';
196
+
197
+ //登録がうまく行った場合は、ページ遷移させずに表示させていたセレクトボックスの値などのデータをセッションに入れていたものをクリアする
198
+
199
+ unset($_SESSION['belong_member']);
200
+
201
+ header("Location:chat_top");
202
+
203
+ }
204
+
205
+ }
92
206
 
93
207
  }
94
208
 
95
-
96
-
97
- //コメト削除
98
-
99
- if(!empty($_POST['delete_board_comment'])){
100
-
101
- $chat->deleteBoardComment($_POST['BOARD_COMMENT_NO']);
102
-
103
- }
104
-
105
-
106
-
107
-
108
-
109
- ?>
110
-
111
-
112
-
113
- <?php
114
-
115
- //2018/08/15
116
-
117
- /**
118
-
119
- * Class DirectChat
120
-
121
- *
122
-
123
- *ダイレクトチャットの表示などのクラス
124
-
125
- *
126
-
127
- */
128
-
129
- class DirectChat extends Db
130
-
131
- {
132
-
133
-
134
-
135
- public function commnet_list($direct_chat_comments){
136
-
137
- //データベースとの接続
138
-
139
- $con = new Db;
140
-
141
- //ログインユーザーの表示
142
-
143
- $account = new Account;
144
-
145
- //登録した内容でダイレクトチャット一覧を出力
146
-
147
- foreach($direct_chat_comments as $direct_comment) {
148
-
149
- echo '<div class="chatRoomCommentBlock">'
150
-
151
- .'<div class="createMemberIcon">'
152
-
153
- .'<img src="" class="icon" />'
154
-
155
- // 自分の名前が表示される
156
-
157
- .'<div class="name">'
158
-
159
- .'<div class="name">'
160
-
161
- // .'<a href="/mpConfiguration/profile/view" class="profileLb iconLink" id="profile_1:884608" title="'.$con->selectNo($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'])['member_name'].'">'
162
-
163
- .'<span class="name">'
164
-
165
- .$con->selectNo($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'])['member_name']
166
-
167
- .'</span>'
168
-
169
- .'</a>'
170
-
171
- .'</div>'
172
-
173
- .'</div>'
174
-
175
- .'<div class="commentItemList">'
176
-
177
- .'<div data-id="17601719" data-number="28" data-createDateInLong="1528346837000" class="commentItem ">'
178
-
179
- .'<div class="commentContents ">'
180
-
181
- .'<div class="commentBody selfclear">'
182
-
183
- .'<div class="commentBodyLeft">'
184
-
185
- .'<div class="formatContents">'
186
-
187
- ;
188
-
189
- //コメントが入る場所。サイボウズでは、pタグは入らないみたいです。
190
-
191
- echo $direct_comment['DIRECT_CHAT_EXCHANGE_COMMENT_TEXT']
192
-
193
- .'</div>'
194
-
195
- .'</div>'
196
-
197
- ;
198
-
199
- //自分で投稿した投稿の時は、下記が表示される
200
-
201
- if($account->chkUpdatePermission($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'],null)){
202
-
203
- echo '<div class="commentBodyRight">'
204
-
205
- .'<div class="commentDelete operation hiddenOperation" style="display:none">'
206
-
207
- .'<a href="#deleteComment_fid=17601719" class="iconLink delete" title="削除する">'
208
-
209
- .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/delete_white14.png" class="icon" alt="削除する" />'
210
-
211
- .'</a>'
212
-
213
- .'</div>'
214
-
215
- .'</div>'
216
-
217
- ;
218
-
219
- }
220
-
221
- //この内部にhtmlデータや画像がある時やcsvデータがある時などの設定や吐き出すhtmlなどを指定してあげる。
222
-
223
- echo '</div>'
224
-
225
- .'<div class="commentFooter operationParts selfclear">'
226
-
227
- .'<div class="operation">'
228
-
229
- .'<a href="javascript:void(0);" data-url="/tip/commentUrl?url=https%3A%2F%2Fcybozulive.com%2FmpChat%2Fview%3FchatRoomId%3D2%253A15547680%26fid%3D17601719" class="commentUrlTip" title="固定リンク">'
230
-
231
- .'<span>No.</span>'
232
-
233
- // 表示番号を出力する
234
-
235
- .'<span class="number">'.$direct_comment['DIRECT_CHAT_EXCHANGE_DISPLAY_NO'].'</span>'
236
-
237
- .'<span class="createDate">'.$direct_comment['DIRECT_CHAT_EXCHANGE_INS_TS'].'</span>'
238
-
239
- .'</a>'
240
-
241
- ;
242
-
243
- //いいねと件数を表示する
244
-
245
- echo '<span class="good">'
246
-
247
- .'<span data-url="/common/good/goodAjax" data-mode="SIMPLE" data-use-comet="TRUE">'
248
-
249
- .'<a href="javascript:void(0);" class="iconLink goodLinkOn" id="cbaGood-MP_CHAT-2:15547680-17601719-on" data-url="/comet/common/good/goodTurnJsonDirect">'
250
-
251
- .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/good14.png" alt="" class="icon" />'
252
-
253
- .'<span>いいね!</span>'
254
-
255
- .'</a>'
256
-
257
- .'</span>'
258
-
259
- .'<span class="goodMemberCountParts" data-url="/common/good/goodMemberListAjax" style="display:none">'
260
-
261
- .'<a href="javascript:void(0);" class="goodMemberCount goodMemberListTip" data-url="/common/good/goodMemberListTip?application=MP_CHAT&amp;targetId=2%3A15547680&amp;subTargetId=17601719">'
262
-
263
- .date('Y年m月d日 H時i分s秒', strtotime($direct_comment['DIRECT_CHAT_EXCHANGE_INS_TS']))
264
-
265
- .'</a>'
266
-
267
- .'<span>件</span>'
268
-
269
- .'</span>'
270
-
271
- .'</span>'
272
-
273
- ;
274
-
275
- //返信とお気に入りボタンなどを表示
276
-
277
- echo '<a href="javascript:void(0);" id="chatRoomComment_28" class="replyChatRoomComment iconLink">'
278
-
279
- .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/reply14.png" alt="" class="icon" />'
280
-
281
- .'<span>返信</span>'
282
-
283
- .'</a>'
284
-
285
- .'<a href="javascript:void(0);" data-url="/common/star/starTurnJsonDirect" id="cbaStar-MP_CHAT--2:15547680-17601719" class="star iconLink" data-displayLabel="true">'
286
-
287
- .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/star_off14.png" class="icon" alt="お気に入りに登録する" data-star="off" />'
288
-
289
- .'<span class="starLabel">お気に入り</span>'
290
-
291
- .'</a>'
292
-
293
- .'</div>'
294
-
295
- .'</div>'
296
-
297
- .'</div>'
298
-
299
- .'</div>'
300
-
301
- .'</div>'
302
-
303
- .'</div>'
304
-
305
- .'</div>'
306
-
307
- ;
308
-
309
-
310
-
311
-
312
-
313
- // echo $con->selectNo($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'])['member_name']
314
-
315
- // .' '.date('Y年m月d日 H時i分s秒', strtotime($direct_comment['DIRECT_CHAT_EXCHANGE_INS_TS']))
316
-
317
- // .'</p>'
318
-
319
- // .'<p id="comment_text">'
320
-
321
- // //返信した時の返信に関するリンクをつける
322
-
323
- // .$reply_link
324
-
325
- // .$direct_comment['DIRECT_CHAT_EXCHANGE_COMMENT_TEXT']
326
-
327
- // .'</p>'
328
-
329
- // .'<a href="#reply_to" id="reply_comment" class="reply_to_'.$direct_comment['DIRECT_CHAT_EXCHANGE_DISPLAY_NO'].'" >返信する</a>'
330
-
331
- // ;
332
-
333
- //ログインユーザーに更新権限がある場合、削除ボタンの表示
334
-
335
- if($account->chkUpdatePermission($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'],null)){
336
-
337
- echo '<a href="#delete" id="delete_board_comment" class="delete_comment_'.$direct_comment['DIRECT_CHAT_EXCHANGE_NO'].'" >削除する</a>'
338
-
339
- ;
340
-
341
- }
342
-
343
- }
344
-
345
- }
346
-
347
- }
348
-
349
- ```
209
+ ```
210
+
211
+ #セッションの中身です。
212
+
213
+ ```ここに言語を入力
214
+
215
+ Array (
216
+
217
+ [4] => Array (
218
+
219
+ [name] => Array ( [0] => テスト確認.txt )
220
+
221
+ [type] => Array ( [0] => text/plain )
222
+
223
+ [tmp_name] => Array ( [0] => /tmp/php5U3RYZ )
224
+
225
+ [error] => Array ( [0] => 0 )
226
+
227
+ [size] => Array ( [0] => 14 )
228
+
229
+ ) )
230
+
231
+ ```

3

エラーが出た為

2018/11/28 05:07

投稿

aushijima
aushijima

スコア55

test CHANGED
@@ -1 +1 @@
1
- FILEをアップロードした時にアップロードの条件に入らない
1
+ クラスが見つからないエラーが発生する
test CHANGED
@@ -1,281 +1,349 @@
1
- #現状起こってこと
2
-
3
- ファイルをアップロした、条件に入らないです。
1
+ #[実したいこと]
2
+
3
+ 初期表示では、エラが出ませんが、ajaxで送信した下記のようエラーが出るので解消したいです。
4
+
5
+
6
+
7
+ #[起こっているエラー]
8
+
9
+ Fatal error: Uncaught Error: Class 'DirectChat' not found in /var/www/html/xxxxx.xyz/xxx-groupwork_ushijima/library/Api/chatDirect.php:10 Stack trace: #0 {main} thrown in /var/www/html/xxxxx.xyz/xxx-groupwork_ushijima/library/Api/chatDirect.php on line 10
10
+
11
+
12
+
13
+
4
14
 
5
15
 
6
16
 
7
17
  ```ここに言語を入力
8
18
 
9
- logger('セッションの値を確認する1'.$_SESSION['upfile'][$i]);
19
+ <?php
20
+
21
+ // library直下のlibrary.phpを読み込むように設定する
22
+
23
+ require_once(preg_replace('/Api[\/\]chatDirect.php/','',__FILE__).'library.php');
24
+
25
+ $chat = new Chat;
26
+
27
+ //データベースとの接続
28
+
29
+ $con = new Db;
30
+
31
+ //ログインユーザーの表示
32
+
33
+ $account = new Account;
34
+
35
+ //ダイレクトチャット用のオブジェクトを作成する
36
+
37
+ $direct_chat = new DirectChat;
38
+
39
+ // //やり取りしている内容を全件取得する
40
+
41
+ $direct_chat_comments = $chat->getAllDirectChatExchange($group_chat_no);
42
+
43
+
44
+
45
+ //ダイレクトチャット画面でグループチャット番号で検索をかけるためにグループチャット番号を取得する
46
+
47
+ $group_chat_no=filter_input(INPUT_POST,"group_chat_no");
48
+
49
+ $direct_chat_create=filter_input(INPUT_POST,"direct_chat_create");
50
+
51
+ $GROUP_CHAT_EXCHANGE_COMMENT_TEXT=filter_input(INPUT_POST,"GROUP_CHAT_EXCHANGE_COMMENT_TEXT");
52
+
53
+ ##########################################
54
+
55
+ // ダイレクトチャットで必要になる機能
56
+
57
+ // 送信ボタンを押した時に投稿内容が登録される
58
+
59
+ // 空で送信ボタンを押すと登録の処理が行われない
60
+
61
+ // 自分で作成した投稿に関しては、削除することが可能
62
+
63
+ // 投稿内容に関していいね、お気に入り登録、返信などをすることができる。(自分の投稿や相手の投稿に関わらず、つけれる)
64
+
65
+ ##########################################
66
+
67
+
68
+
69
+ if(!is_null($direct_chat_create)){
70
+
71
+ //ボタンが押された時の処理
72
+
73
+ if(!is_null($GROUP_CHAT_EXCHANGE_COMMENT_TEXT) and $GROUP_CHAT_EXCHANGE_COMMENT_TEXT!==""){
74
+
75
+ //データを登録した時に新たにダイレクトチャットのリストを表示する
76
+
77
+ $chat->setDirectChatExchange($group_chat_no,$GROUP_CHAT_EXCHANGE_COMMENT_TEXT,$reply_to_dairect_chat_comment_no);
78
+
79
+ $direct_chat->commnet_list($direct_chat_comments);
80
+
81
+ }else{
82
+
83
+ //コメントが入力されていなければ何も処理されない
84
+
85
+ }
86
+
87
+ }else{
88
+
89
+ //初期表示でやり取りしていなかったら表示しない。
90
+
91
+ $direct_chat->commnet_list($direct_chat_comments);
92
+
93
+ }
94
+
95
+
96
+
97
+ //コメント削除の時
98
+
99
+ if(!empty($_POST['delete_board_comment'])){
100
+
101
+ $chat->deleteBoardComment($_POST['BOARD_COMMENT_NO']);
102
+
103
+ }
104
+
105
+
106
+
107
+
108
+
109
+ ?>
110
+
111
+
112
+
113
+ <?php
114
+
115
+ //2018/08/15
116
+
117
+ /**
118
+
119
+ * Class DirectChat
120
+
121
+ *
122
+
123
+ *ダイレクトチャットの表示などのクラス
124
+
125
+ *
126
+
127
+ */
128
+
129
+ class DirectChat extends Db
130
+
131
+ {
132
+
133
+
134
+
135
+ public function commnet_list($direct_chat_comments){
136
+
137
+ //データベースとの接続
138
+
139
+ $con = new Db;
140
+
141
+ //ログインユーザーの表示
142
+
143
+ $account = new Account;
144
+
145
+ //登録した内容でダイレクトチャット一覧を出力
146
+
147
+ foreach($direct_chat_comments as $direct_comment) {
148
+
149
+ echo '<div class="chatRoomCommentBlock">'
150
+
151
+ .'<div class="createMemberIcon">'
152
+
153
+ .'<img src="" class="icon" />'
154
+
155
+ // 自分の名前が表示される
156
+
157
+ .'<div class="name">'
158
+
159
+ .'<div class="name">'
160
+
161
+ // .'<a href="/mpConfiguration/profile/view" class="profileLb iconLink" id="profile_1:884608" title="'.$con->selectNo($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'])['member_name'].'">'
162
+
163
+ .'<span class="name">'
164
+
165
+ .$con->selectNo($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'])['member_name']
166
+
167
+ .'</span>'
168
+
169
+ .'</a>'
170
+
171
+ .'</div>'
172
+
173
+ .'</div>'
174
+
175
+ .'<div class="commentItemList">'
176
+
177
+ .'<div data-id="17601719" data-number="28" data-createDateInLong="1528346837000" class="commentItem ">'
178
+
179
+ .'<div class="commentContents ">'
180
+
181
+ .'<div class="commentBody selfclear">'
182
+
183
+ .'<div class="commentBodyLeft">'
184
+
185
+ .'<div class="formatContents">'
186
+
187
+ ;
188
+
189
+ //コメントが入る場所。サイボウズでは、pタグは入らないみたいです。
190
+
191
+ echo $direct_comment['DIRECT_CHAT_EXCHANGE_COMMENT_TEXT']
192
+
193
+ .'</div>'
194
+
195
+ .'</div>'
196
+
197
+ ;
198
+
199
+ //自分で投稿した投稿の時は、下記が表示される
200
+
201
+ if($account->chkUpdatePermission($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'],null)){
202
+
203
+ echo '<div class="commentBodyRight">'
204
+
205
+ .'<div class="commentDelete operation hiddenOperation" style="display:none">'
206
+
207
+ .'<a href="#deleteComment_fid=17601719" class="iconLink delete" title="削除する">'
208
+
209
+ .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/delete_white14.png" class="icon" alt="削除する" />'
210
+
211
+ .'</a>'
212
+
213
+ .'</div>'
214
+
215
+ .'</div>'
216
+
217
+ ;
218
+
219
+ }
220
+
221
+ //この内部にhtmlデータや画像がある時やcsvデータがある時などの設定や吐き出すhtmlなどを指定してあげる。
222
+
223
+ echo '</div>'
224
+
225
+ .'<div class="commentFooter operationParts selfclear">'
226
+
227
+ .'<div class="operation">'
228
+
229
+ .'<a href="javascript:void(0);" data-url="/tip/commentUrl?url=https%3A%2F%2Fcybozulive.com%2FmpChat%2Fview%3FchatRoomId%3D2%253A15547680%26fid%3D17601719" class="commentUrlTip" title="固定リンク">'
230
+
231
+ .'<span>No.</span>'
232
+
233
+ // 表示番号を出力する
234
+
235
+ .'<span class="number">'.$direct_comment['DIRECT_CHAT_EXCHANGE_DISPLAY_NO'].'</span>'
236
+
237
+ .'<span class="createDate">'.$direct_comment['DIRECT_CHAT_EXCHANGE_INS_TS'].'</span>'
238
+
239
+ .'</a>'
240
+
241
+ ;
242
+
243
+ //いいねと件数を表示する
244
+
245
+ echo '<span class="good">'
246
+
247
+ .'<span data-url="/common/good/goodAjax" data-mode="SIMPLE" data-use-comet="TRUE">'
248
+
249
+ .'<a href="javascript:void(0);" class="iconLink goodLinkOn" id="cbaGood-MP_CHAT-2:15547680-17601719-on" data-url="/comet/common/good/goodTurnJsonDirect">'
250
+
251
+ .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/good14.png" alt="" class="icon" />'
252
+
253
+ .'<span>いいね!</span>'
254
+
255
+ .'</a>'
256
+
257
+ .'</span>'
258
+
259
+ .'<span class="goodMemberCountParts" data-url="/common/good/goodMemberListAjax" style="display:none">'
260
+
261
+ .'<a href="javascript:void(0);" class="goodMemberCount goodMemberListTip" data-url="/common/good/goodMemberListTip?application=MP_CHAT&amp;targetId=2%3A15547680&amp;subTargetId=17601719">'
262
+
263
+ .date('Y年m月d日 H時i分s秒', strtotime($direct_comment['DIRECT_CHAT_EXCHANGE_INS_TS']))
264
+
265
+ .'</a>'
266
+
267
+ .'<span>件</span>'
268
+
269
+ .'</span>'
270
+
271
+ .'</span>'
272
+
273
+ ;
274
+
275
+ //返信とお気に入りボタンなどを表示
276
+
277
+ echo '<a href="javascript:void(0);" id="chatRoomComment_28" class="replyChatRoomComment iconLink">'
278
+
279
+ .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/reply14.png" alt="" class="icon" />'
280
+
281
+ .'<span>返信</span>'
282
+
283
+ .'</a>'
284
+
285
+ .'<a href="javascript:void(0);" data-url="/common/star/starTurnJsonDirect" id="cbaStar-MP_CHAT--2:15547680-17601719" class="star iconLink" data-displayLabel="true">'
286
+
287
+ .'<img src="https://cybozulive.com/static/49f5cdb4ca/images/star_off14.png" class="icon" alt="お気に入りに登録する" data-star="off" />'
288
+
289
+ .'<span class="starLabel">お気に入り</span>'
290
+
291
+ .'</a>'
292
+
293
+ .'</div>'
294
+
295
+ .'</div>'
296
+
297
+ .'</div>'
298
+
299
+ .'</div>'
300
+
301
+ .'</div>'
302
+
303
+ .'</div>'
304
+
305
+ .'</div>'
306
+
307
+ ;
308
+
309
+
310
+
311
+
312
+
313
+ // echo $con->selectNo($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'])['member_name']
314
+
315
+ // .' '.date('Y年m月d日 H時i分s秒', strtotime($direct_comment['DIRECT_CHAT_EXCHANGE_INS_TS']))
316
+
317
+ // .'</p>'
318
+
319
+ // .'<p id="comment_text">'
320
+
321
+ // //返信した時の返信に関するリンクをつける
322
+
323
+ // .$reply_link
324
+
325
+ // .$direct_comment['DIRECT_CHAT_EXCHANGE_COMMENT_TEXT']
326
+
327
+ // .'</p>'
328
+
329
+ // .'<a href="#reply_to" id="reply_comment" class="reply_to_'.$direct_comment['DIRECT_CHAT_EXCHANGE_DISPLAY_NO'].'" >返信する</a>'
330
+
331
+ // ;
332
+
333
+ //ログインユーザーに更新権限がある場合、削除ボタンの表示
334
+
335
+ if($account->chkUpdatePermission($direct_comment['DIRECT_CHAT_EXCHANGE_CREATE_MEMBER_NO'],null)){
336
+
337
+ echo '<a href="#delete" id="delete_board_comment" class="delete_comment_'.$direct_comment['DIRECT_CHAT_EXCHANGE_NO'].'" >削除する</a>'
338
+
339
+ ;
340
+
341
+ }
342
+
343
+ }
344
+
345
+ }
346
+
347
+ }
10
348
 
11
349
  ```
12
-
13
- ※ログを見ても出力されておらず、条件に入っていないです。
14
-
15
-
16
-
17
- #実現したいこと
18
-
19
- chat_theme.phpで、ファイルがアップロードされたら、その情報をセッションに入れて、**テーマチャット作成ボタン**を押した後に**Chat.php**でDBへのアップロードファイルのパスを登録したり、移動するためのディレクトリを作成して、ファイルをディレクトリに移動するようにしたいと思っています。
20
-
21
-
22
-
23
- 登録ボタンを押すまでにファイルをアップロードしたら、エラーがなかったらセッションに格納されているファイルが上書きされて、それが、Chat.phpに送られた(登録されるファイルが確定された状態)時にファイルを移動したいからです。
24
-
25
-
26
-
27
- **※これよりももっと良い方法があればそこも教えてください。**
28
-
29
- #仕様など
30
-
31
- **ファイルのアップロードでは、画像以外の.csv、.txtなどのファイルもアップロードできるようにと考えています。**
32
-
33
- **※添付ファイルを追加するを押すとファイルアップロード部分のhtmlができるようになっており、複数登録をする仕様になっています。**
34
-
35
-
36
-
37
- **chat_theme.phpなどは、主にフォームのバリデーションチェックや入力した値を登録用や検索用のクラスのChat.phpに送る役目です。**
38
-
39
-
40
-
41
- **※リロードするとjavaScriptでhtmlのタグを出しているので消えてしまいますが、ここは、この仕様(参考にして欲しいと言われたサイト)に似せています。**
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
- ### html部分
50
-
51
- ```ここに言語を入力
52
-
53
- <form action="" method="post" name="chat_theme" enctype="multipart/form-data">
54
-
55
- <div id="attachedFileAdd" class="attachedFileAdd">
56
-
57
- <a href="javascript:void(0);" class="fileadd iconLink" onclick="attachFileClick();">
58
-
59
- <img src="" alt="">
60
-
61
- <span>添付ファイルを追加する</span>
62
-
63
- </a>
64
-
65
- </div>
66
-
67
- </form>
68
-
69
- ```
70
-
71
-
72
-
73
- ### js部分
74
-
75
-
76
-
77
-
78
-
79
- ```ここに言語を入力
80
-
81
- // ##############################################
82
-
83
- // 添付画像の処理を記載
84
-
85
-
86
-
87
- // ##############################################
88
-
89
- // TODO 番号のリセットなどを実装して、DB上で複数登録させる
90
-
91
- //カウンターを設定する
92
-
93
- var attachcount = 0;
94
-
95
-
96
-
97
- //添付ファイルのボタンが押された際と削除した際の画像にファイル名を動的に与える為に必要
98
-
99
- var attachbox = document.getElementById('attachedFileAdd');
100
-
101
-
102
-
103
- //添付ファイルを追加するボタン
104
-
105
- function attachFileClick(){
106
-
107
- //添付ファイルを追加するを押した回数をカウントアップする
108
-
109
- attachcount++;
110
-
111
- var counter = attachcount;
112
-
113
- var test = document.getElementById('ui-id-1');
114
-
115
-
116
-
117
- //要素内の、最後の子要素の後ろ
118
-
119
- test.insertAdjacentHTML('beforeend',
120
-
121
- '<div id="cba_commonAttachedFile'+ counter +'"'+'class="attachedFileParts" data-file-count="'+counter +'">'
122
-
123
- +'<input type="file" size="30" name="file[] class="inputFile">'
124
-
125
- +'<input type="hidden" name="MAX_FILE_SIZE value="26,214,400">'
126
-
127
- +'<span class="guide">(25MBまで)</span>'
128
-
129
- +'<a href="javascript:void(0);" class="attachedFileList__delete attachedFileDeleteiconLink" onclick="deleteFileClick();">'
130
-
131
- +'<img src="" alt class="icon">'
132
-
133
- +'<span>削除</span>'
134
-
135
- +'</a>'
136
-
137
- +'</div>');
138
-
139
- }
140
-
141
-
142
-
143
- ```
144
-
145
-
146
-
147
-
148
-
149
- ### php部分 chat_theme.php
150
-
151
-
152
-
153
- ```ここに言語を入力
154
-
155
- //テーマチャット作成ボタンが押される前にファイルがアップロードされることは、ないのでファイルがアップロードされたら、セッションに入れておく
156
-
157
- //上書きをした場合は、書き換わる
158
-
159
- $file_list = array();
160
-
161
- for($i=0;$i<count($_FILES['file']);$i++){
162
-
163
- if(empty($_SESSION['upfile'][$i]) || $_FILES['file']['error'][$i] === 0) {
164
-
165
- unset($_SESSION['upfile']);
166
-
167
- $_SESSION['upfile'][$i] = $_FILES['file'];
168
-
169
- logger('セッションの値を確認する1'.$_SESSION['upfile'][$i]);
170
-
171
- //名前の被りを防いで登録するために、拡張子とファイル名の所を分割する(デバッグ用のコード)
172
-
173
- $file_list = preg_split("/[.]/",$_SESSION['upfile']['name'][$i]);
174
-
175
- $_SESSION['filelist'] = $file_list;
176
-
177
- }
178
-
179
- }
180
-
181
-
182
-
183
-
184
-
185
- //テーマチャット作成時バリデーションチェック
186
-
187
- if(!empty($_POST['chat_theme_create'])){
188
-
189
- //グループタイトルのバリデーション
190
-
191
- if(empty($_POST['GROUP_CHAT_TITLE'])){
192
-
193
- $_POST['err'][] = 'タイトルが入力されていません。';
194
-
195
- //グループタイトル文字数上限超過
196
-
197
- }elseif($chat->getGroupChatByName($_POST['GROUP_CHAT_TITLE'])) {
198
-
199
- $_POST['err'][] = '入力されたタイトルは既に登録済みです。';
200
-
201
- }
202
-
203
-
204
-
205
- //バリデーションエラー時に入力画面で表示させる為にセッションに入れておく
206
-
207
- //所属メンバーのリスト
208
-
209
- if($_SESSION['belong_member']){
210
-
211
- //バリデーションエラーにひっかかって後にさらに追加した場合
212
-
213
- $_SESSION['belong_member'] = array_merge($_SESSION['belong_member'],(array)$_REQUEST['addressId']);
214
-
215
- }else{
216
-
217
- //バリデーションエラー前に初回追加した時(複数登録されることを想定して配列にしておく)
218
-
219
- $_SESSION['belong_member'] = (array)$_REQUEST['addressId'];
220
-
221
- }
222
-
223
-
224
-
225
- //グループチャット作成登録画面に遷移してきた時
226
-
227
- if($_GET['edit_type'] == 'register'){
228
-
229
- //ファイルのアップロード状況を確認
230
-
231
- logger('登録ボタンを押した瞬間'.$_SESSION['file']);
232
-
233
- logger('登録ボタンを押した瞬間'.var_dump($_SESSION['file']));
234
-
235
- //エラーがなければ登録処理を行う
236
-
237
- if(empty($_POST['err'])){
238
-
239
- $chat->setGroupChat($_POST['GROUP_GHAT_NO'],$_POST['GROUP_CHAT_TITLE'],$_POST['GROUP_CHAT_MEMO'],$_FILE['file']['tmp_name'],$_POST['modifiable'],$_SESSION['belong_member']);
240
-
241
- //チャットの一覧ページ(ダイレクトページとテーマチャットが一覧で見れるページ)メッセージは、
242
-
243
- $_SESSION['edit_topic_msg'] = 'トピックが'.$chat->getGroupChatEditType($_GET['edit_type']).'されました';
244
-
245
- //登録がうまく行った場合は、ページ遷移させずに表示させていたセレクトボックスの値などのデータをセッションに入れていたものをクリアする
246
-
247
- unset($_SESSION['belong_member']);
248
-
249
- header("Location:chat_top");
250
-
251
- }
252
-
253
- }
254
-
255
-
256
-
257
- }
258
-
259
- ```
260
-
261
- #セッションの中身です。
262
-
263
- ```ここに言語を入力
264
-
265
- Array (
266
-
267
- [4] => Array (
268
-
269
- [name] => Array ( [0] => テスト確認.txt )
270
-
271
- [type] => Array ( [0] => text/plain )
272
-
273
- [tmp_name] => Array ( [0] => /tmp/php5U3RYZ )
274
-
275
- [error] => Array ( [0] => 0 )
276
-
277
- [size] => Array ( [0] => 14 )
278
-
279
- ) )
280
-
281
- ```

2

セッションの中身を追加

2018/11/27 04:26

投稿

aushijima
aushijima

スコア55

test CHANGED
File without changes
test CHANGED
@@ -257,3 +257,25 @@
257
257
  }
258
258
 
259
259
  ```
260
+
261
+ #セッションの中身です。
262
+
263
+ ```ここに言語を入力
264
+
265
+ Array (
266
+
267
+ [4] => Array (
268
+
269
+ [name] => Array ( [0] => テスト確認.txt )
270
+
271
+ [type] => Array ( [0] => text/plain )
272
+
273
+ [tmp_name] => Array ( [0] => /tmp/php5U3RYZ )
274
+
275
+ [error] => Array ( [0] => 0 )
276
+
277
+ [size] => Array ( [0] => 14 )
278
+
279
+ ) )
280
+
281
+ ```

1

ファイル名を分割する処理を追加

2018/11/08 08:41

投稿

aushijima
aushijima

スコア55

test CHANGED
File without changes
test CHANGED
@@ -156,16 +156,24 @@
156
156
 
157
157
  //上書きをした場合は、書き換わる
158
158
 
159
+ $file_list = array();
160
+
159
161
  for($i=0;$i<count($_FILES['file']);$i++){
160
162
 
161
- if(empty($_SESSION['upfile'][$i]) || $_FILES['file'][$i]['error'] === 0) {
163
+ if(empty($_SESSION['upfile'][$i]) || $_FILES['file']['error'][$i] === 0) {
162
-
164
+
163
- unset($_SESSION['upfile'][$i]);
165
+ unset($_SESSION['upfile']);
164
-
166
+
165
- $_SESSION['upfile'][$i] = $_FILES['file'][$i];
167
+ $_SESSION['upfile'][$i] = $_FILES['file'];
166
168
 
167
169
  logger('セッションの値を確認する1'.$_SESSION['upfile'][$i]);
168
170
 
171
+ //名前の被りを防いで登録するために、拡張子とファイル名の所を分割する(デバッグ用のコード)
172
+
173
+ $file_list = preg_split("/[.]/",$_SESSION['upfile']['name'][$i]);
174
+
175
+ $_SESSION['filelist'] = $file_list;
176
+
169
177
  }
170
178
 
171
179
  }