Guest User

Untitled

a guest
Aug 2nd, 2018
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. [02-Aug-2018 05:14:53 UTC] PHP Parse error: syntax error, unexpected 'else' (T_ELSE) in /Applications/MAMP/htdocs/insert_member.php on line 108
  2.  
  3. <?php
  4. require_once("util.php");
  5. $gobackURL = "insertform.html";
  6.  
  7. //文字エンコードの検証
  8. if (!cken($_POST)) {
  9. header("Location:{$gobackURL}");
  10. exit();
  11. }
  12.  
  13. //簡単なエラー処理
  14. $errors = [];
  15. if(!isset($_POST[ "name" ]) || ($_POST[ "name" ]==="")){
  16. $errors[] = "名前が空です。";
  17. }
  18. if (!isset($_POST[ "age" ]) || (!ctype_digit($_POST[ "age" ] ))){
  19. $errors[] = "年齢には数値を入れてください。";
  20. }
  21. if (!isset($_POST[ "sex" ]) || !in_array($_POST[ "sex" ] , ["男","女"] )) {
  22. $errors[] = "性別が男または女ではありません。";
  23. }
  24.  
  25. //エラーがあった時
  26. if (count($errors)>0){
  27. echo '<ol class="error">';
  28. foreach ($errors as $value) {
  29. echo "<li>", $value , "</li>";
  30. }
  31. echo "</ol>";
  32. echo "<hr>";
  33. echo "<a href=", $gobackURL, ">戻る</a>";
  34. exit();
  35. }
  36.  
  37. //データベースユーザ
  38. $user = 'root';
  39. $password = 'root';
  40. //利用するデータベース
  41. $dbName = 'personal';
  42. //MySQLサーバ
  43. $host = 'localhost:3306';
  44. //MySQLのDSN文字列
  45. $dsn ="mysql:host={$host};dbname={$dbName};charset=utf8";
  46. ?>
  47.  
  48. <!DOCTYPE html>
  49. <html lang="ja">
  50. <head>
  51. <meta charset="utf-8">
  52. <title>レコード追加</title>
  53. <link href="../../css/style.css" rel="stylesheet">
  54.  
  55. <link href="../../css/tablestyle.css" rel="stylesheet">
  56. </head>
  57. <body>
  58. <div>
  59. <?php
  60. $name = $_POST[ "name" ];
  61. $age = $_POST[ "age" ];
  62. $sex = $_POST[ "sex" ];
  63. //MySQLデータベースに接続する
  64. try {
  65. $pdo = new PDO($dsn, $user, $password);
  66. //プリペアドステートメントのエミュレーションを無効にする
  67. $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  68. //例外がスローされる設定にする
  69. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  70.  
  71. //SQL文を作る
  72. $sql = "INSERT INTO member (name, age, sex) VALUE (:name, :age, :sex)";
  73. //プリペアドステートメントを作る
  74. $stm = $pdo->prepare($sql);
  75. //プレースホルダに値をバインドする
  76. $stm->bindValue(':name', $name, PDO::PARAM_STR);
  77. $stm->bindValue(':age', $age, PDO::PARAM_INT);
  78. $stm->bindValue(':sex', $sex, PDO::PARAM_STR);
  79. //SQL文を実行する
  80. if ($stm->execute()); {
  81. //レコード追加後のレコードリストを取得する
  82. $sql= "SELECT * FROM member";
  83. //プリペアドステートメントを作る
  84. $stm = $pdo->prepare($sql);
  85. //SQL文を実行する
  86. $stm->execute();
  87. //結果の取得(連想配列で受け取る)
  88. $result = $stm->fetchALL(PDO::FETCH_ASSOC);
  89. //テーブルのタイトル行
  90. echo "<table>";
  91. echo "<thead><tr>";
  92. echo "<th>","ID","</th>";
  93. echo "<th>","名前","</th>";
  94. echo "<th>","年齢","</th>";
  95. echo "<th>","性別","</th>";
  96. echo "</tr></thead>";
  97. //値を取り出して行に表示する
  98. echo "<tbody>";
  99. foreach ($result as $row) {
  100. //1行ずつテーブルに入れる
  101. echo "<tr>";
  102. echo "<td>", es($row[ 'id' ]), "</td>";
  103. echo "<td>", es($row[ 'name' ]), "</td>";
  104. echo "<td>", es($row[ 'age' ]), "</td>";
  105. echo "<td>", es($row[ 'sex' ]), "</td>";
  106. echo "</tr>";
  107. }
  108. echo "</tbody>!";
  109. echo "</table>";
  110. } else {
  111. echo '<span class="error">追加エラーがありました。</span><br>';
  112. };
  113. } catch (Exception $e) {
  114. echo '<span class="error">エラーがありました。</span><br>';
  115. echo $e->getMessage();
  116. }
  117. ?>
  118. <hr>
  119. <p><a href="<?php echo $gobackURL ?>">戻る</a></p>
  120. </div>
  121. </body>
  122. </html>
  123.  
  124. if ($stm->execute()); {
  125.  
  126. if ($stm->execute()) {
Add Comment
Please, Sign In to add comment