投稿データをデータベースに登録したい
phpで生徒管理表を作っています。
発生している問題・エラーメッセージ
ブラウザで表示させるとこうなります。
HTTP ERROR 500
該当のソースコード
index.php
php
1<!DOCTYPE html> 2<html lang="ja"> 3<meta charset="utf-8"> 4<head> 5<title>入力画面</title> 6</head> 7<body> 8 9<?php 10//セッション開始 11session_start(); 12//$htmlを初期化 13$html = array(); 14//戻りの場合 15if(isset($_POST['back'])){ 16 //htmlentities()でHTMLコードをエスケープします。 17 $html['name'] = htmlentities($_SESSION['name'], ENT_QUOTES, 'UTF-8'); 18//初期値 19}else{ 20 //初期化 21 $_SESSION = array(); 22 $html['name'] = ''; 23} 24?> 25 26<h3>入力画面</h3> 27 28<form action="confirm.php" method="POST"> 29 30<table border="1"> 31<tr> 32<td>名前</td> 33<td><input type="text" name="name" value="<?php echo $html['name']; ?>" size=48></td> 34</tr> 35</table> 36 37<input type="submit" name="confirm" value="-入力内容の確認-"> 38 39</form> 40 41</body> 42</html>
confirm.php
php
1<!DOCTYPE html> 2<html lang="ja"> 3<meta charset="utf-8"> 4<head> 5<title>確認画面</title> 6</head> 7<body> 8 9<?php 10//セッション開始 11session_start(); 12//変数初期化 13$html = array(); 14$_SESSION = array(); 15$strError= ""; 16 17 18 //空じゃなかったらPOSTデータをSESSIONに格納、空やったら戻す 19 if(isset($_POST['name']) && $_POST['name'] != ''){ 20 $_SESSION['name'] = $_POST['name']; 21 $html['name'] = htmlentities($_SESSION['name'], ENT_QUOTES, 'UTF-8'); 22 //$html = $_SESSION['name'] 23 }else{ 24 $strError .="名前を記入してください<br/>\n"; 25 $html['name'] = '';} 26 //フィルタリングでエラーがあれば 27 if($strError != ''){ 28 echo $strError."<br/>\n"; 29 30?> 31 32 <form action="index.php" method="POST"> 33 <input type="submit" name="back" value="-戻る-"> 34 </form> 35 36</body> 37</html> 38<?php 39 exit; 40 } 41?> 42 43<h3>確認画面</h3> 44 45<table border="1"> 46 47<tr> 48<td>名前</td> 49<td><?php echo $html['name']; ?></td> 50</tr> 51 52<form action="complete.php" method="POST"> 53<input type="submit" name="comp" value="-完了へ-"> 54</form> 55 56</body> 57</html>
complete.php
php
1<!DOCTYPE html> 2<html lang="ja"> 3<meta charset="utf-8"> 4<head> 5<title>確認画面</title> 6</head> 7<body> 8 9<?php 10//セッション開始 11session_start(); 12//変数初期化 13$html = array(); 14$cln = array(); 15$strError = ''; 16 17$html['name'] = htmlentities($_SESSION['name'], ENT_QUOTES, 'UTF-8'); 18 19//データベースに接続 20$mysqli = new mysqli('localhost','***','***','***'); 21 22// 接続エラーの確認 23 if( $mysqli->connect_errno ) { 24 $error_message[] = '書き込みに失敗しました。 エラー番号 '.$mysqli->connect_errno.' : '.$mysqli->connect_error; 25 } else { 26 27 // 文字コード設定 28 $mysqli->set_charset('utf8'); 29 30 // 書き込み日時を取得 31 $now_date = date("Y-m-d H:i:s"); 32 33 // データを登録するSQL作成 34 $sql = "INSERT INTO mirai (name) VALUES ('$html['name']')"; 35 // データを登録 36 $res = $mysqli->query($sql); 37 38 if( $res ) { 39 $success_message = 'メッセージを書き込みました。'; 40 } else { 41 $error_message[] = '書き込みに失敗しました。'; 42 } 43 44 // データベースの接続を閉じる 45 $mysqli->close(); 46 47 } 48 ?> 49 50 51<h3>完了画面</h3> 52 53<table border="1"> 54 55<tr> 56<td>名前</td> 57<td><?php echo $html['name']; ?></td> 58</tr> 59 60</table> 61 62<form action="index.php" method="POST"> 63<input type="submit" name="input" value="-TOPへ-"> 64</form> 65 66</body> 67</html>
試したこと
パスワード、ユーザー名、データベース名はあっています。
補足情報(FW/ツールのバージョンなど)
phpmyadminを使用しています。
phpのバージョンは7.3.5です。
回答4件
あなたの回答
tips
プレビュー