回答編集履歴

3

改訂版記載

2016/09/12 02:35

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -257,3 +257,267 @@
257
257
 
258
258
 
259
259
  ```
260
+
261
+
262
+
263
+
264
+
265
+ # 修正版
266
+
267
+ ```lang-php
268
+
269
+ <html>
270
+
271
+ <head>
272
+
273
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
274
+
275
+ <title></title>
276
+
277
+ </head>
278
+
279
+ <body>
280
+
281
+ <?php
282
+
283
+
284
+
285
+ /***** ファイル書き込み********/
286
+
287
+ $dataFile = "keiji_2.txt";
288
+
289
+
290
+
291
+ if(isset($_POST['make']))
292
+
293
+ {
294
+
295
+ $str = (sizeof(file($dataFile))+1) . '<>' . $_POST['name'] . '<>' . $_POST['comment'] . '<>' . date('m/d/H:i') . '<>' .$_POST['password'] . "\n";
296
+
297
+ $fp = fopen('keiji_2.txt','a');
298
+
299
+ fwrite($fp, $str);
300
+
301
+ fclose($fp);
302
+
303
+ }
304
+
305
+ /***** ファイル消去********/
306
+
307
+ if (isset($_POST['del']))
308
+
309
+ {
310
+
311
+ $file_make = file("keiji_2.txt");
312
+
313
+ for($k = 0;$k <count($file_make); ++$k){
314
+
315
+ $file_make[$k] = preg_replace("/\n/", "", $file_make[$k]);
316
+
317
+
318
+
319
+ echo "fn: ".$file_make[$k]."<hr>";
320
+
321
+
322
+
323
+ $delData = preg_split("/<>/", $file_make[$k]);
324
+
325
+
326
+
327
+ echo "del: ".$delData[4]."<hr>";
328
+
329
+
330
+
331
+ if(($delData[0] == $_POST['name2']) and ($delData[4] == $_POST['pass']))
332
+
333
+ {
334
+
335
+ echo 'in<hr>';
336
+
337
+ array_splice($file_make, $k, 1);
338
+
339
+ file_put_contents($dataFile, implode("", $file_make));
340
+
341
+ echo ($_POST['pass']);echo ($delData[4]);
342
+
343
+ }
344
+
345
+ }
346
+
347
+
348
+
349
+ }
350
+
351
+ /***** ファイル編集 入力フォーム表示********/
352
+
353
+ if (isset($_GET['edit']))
354
+
355
+ {
356
+
357
+ $file_edit = file("keiji_2.txt");
358
+
359
+ for($l = 0;$l <count($file_edit); ++$l){
360
+
361
+ $editData = explode("<>",$file_edit[$l]);
362
+
363
+ if($editData[0] == ($_GET['name3'])) {
364
+
365
+ $simEdit = $editData;
366
+
367
+ }
368
+
369
+ }
370
+
371
+
372
+
373
+ }
374
+
375
+
376
+
377
+ /***** ファイル編集 ファイル書き込み********/
378
+
379
+ if (isset($_POST['make']) && isset($_POST['hidden1'])) {
380
+
381
+
382
+
383
+ $file_edit = file("keiji_2.txt");
384
+
385
+ for($m = 0;$m <count($file_edit); ++$m){
386
+
387
+ $editData2 = explode("<>",$file_edit[$m]);
388
+
389
+ if($editData2[0] == ($_POST['hidden1'])){
390
+
391
+ $n = $_POST['hidden1'];
392
+
393
+ $editData2[1] = $_POST['name'];
394
+
395
+ $editData2[2] = $_POST['comment'];
396
+
397
+ $file_edit[$m] = implode("<>", $editData2);
398
+
399
+ file_put_contents($dataFile,implode("", $file_edit));
400
+
401
+ }
402
+
403
+ }#echo"hello";echo($_POST['hidden1']);
404
+
405
+ }
406
+
407
+
408
+
409
+ ?>
410
+
411
+
412
+
413
+ <!-- 書き込み用フォーム -->
414
+
415
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
416
+
417
+ name:<br/>
418
+
419
+ <input type="text" name="name" size="30" value="" /><br >
420
+
421
+ password:<br/>
422
+
423
+ <input type="text" name="password" size="30" value=""/><br />
424
+
425
+ comment:<br/>
426
+
427
+ <input type="text" name="comment" size="30" value=""/><br />
428
+
429
+
430
+
431
+ <br />
432
+
433
+ <input type="submit" name="make">
434
+
435
+ </form>
436
+
437
+
438
+
439
+ <!-- 削除用フォーム -->
440
+
441
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
442
+
443
+ deleate number:<br/>
444
+
445
+ <input type="text" name="name2" size="30" value=""/><br />
446
+
447
+ password:<br><br/>
448
+
449
+ <input type="text" name="pass" size ="30" placeholder="fill in password"/><br/>
450
+
451
+ <input type="submit" name="del">
452
+
453
+ </form>
454
+
455
+
456
+
457
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
458
+
459
+ <input type="hidden" name="hidden" value="<?php echo($_GET['name3']);?>">
460
+
461
+ edit number:<br/><br/>
462
+
463
+ <input type="text" name="name3" size="30" value="<?php echo($_GET['name3']);?> "/><br />
464
+
465
+ <input type="submit" name="edit">
466
+
467
+
468
+
469
+ </form>
470
+
471
+
472
+
473
+ <?php
474
+
475
+
476
+
477
+ /***** txtの最終出力********/
478
+
479
+ $data_File = "keiji_2.txt";
480
+
481
+ $ret_array = file($data_File);
482
+
483
+ for($i = 0;$i <count($ret_array); ++$i){
484
+
485
+ $piece = explode("<>", $ret_array[$i]);
486
+
487
+ for($j = 0; $j < 4; ++$j){
488
+
489
+ echo ($piece[$j]);
490
+
491
+ }
492
+
493
+ echo "<br />\n";
494
+
495
+ }
496
+
497
+ ?>
498
+
499
+
500
+
501
+ </body></html>
502
+
503
+
504
+
505
+ ```
506
+
507
+
508
+
509
+ 解説。
510
+
511
+ ファイルに書きだした時に、パスワードを最後にくっつけてるんですね…
512
+
513
+
514
+
515
+ `ファイル番号<>名前<>コメント<>日時<>パスワード\n`
516
+
517
+ 一行読み込んだ時に、改行コード「\n」が一緒にくっついてくるのでそれを除去します。
518
+
519
+ 例えば、`$file_make[$k] = preg_replace("/\n/", "", $file_make[$k]);`みたいに。
520
+
521
+
522
+
523
+ いや、失礼しました。

2

プログラムの誤植修正

2016/09/12 02:35

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -82,10 +82,6 @@
82
82
 
83
83
  $delData = preg_split("/<>/", $file_make[$k]);
84
84
 
85
- echo 'fm: '.$file_make[$k]."<hr>";
86
-
87
- echo 'deldata: '. $delData[2] .'<hr>';
88
-
89
85
  if(($delData[0] == $_POST['name2']) and ($delData[1] == $_POST['pass']))
90
86
 
91
87
  {

1

追記

2016/09/10 17:48

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -24,6 +24,10 @@
24
24
 
25
25
 
26
26
 
27
+ エラーやワーニング出てたものは、申し訳ないですが全部消しました。
28
+
29
+
30
+
27
31
 
28
32
 
29
33
  とりあえず、動かせたもの