1<?php2date_default_timezone_set('Asia/Tokyo');3$name=null;4$comment=null;5$date=date("Y-m-d H:i:s");6$errors=array();7$host='';8$username='';9$passwd='';10$dbname='';11$link=mysqli_connect($host,$username,$passwd,$dbname);1213if($link!==FALSE){14mysqli_set_charset($link,'utf8');15$query='SELECT name,comment,date FROM comment_table';16if($_SERVER['REQUEST_METHOD']==='POST'){17if(isset($_POST['name'])!==TRUE||mb_strlen($_POST['name'])===0){18$errors['name']='名前を入力してください';19}elseif(mb_strlen($_POST['name'])>20){20$errors['name']='名前は20文字以内で入力してください';2122}else{23$name=$_POST['name'];24}25//}2627if(isset($_POST['comment'])!==TRUE||mb_strlen($_POST['comment'])===0){28$errors['comment']='ひとことを入力してください';29}elseif(mb_strlen($_POST['comment'])>20){30$errors['comment']='ひとことは100文字以内で入力してください';3132}else{33$name=$_POST['comment'];34}35$query='INSERT INTO comment_table(name,comment,date)
36 VALUES(\''.$name.'\',\''.$comment.'\',\''.$date.'\')';37//}3839$result=mysqli_query($link,$query);40if($result===FALSE){41$errors[]='登録に失敗しました';42}4344$data=array();45$query='SELECT `name`, `comment`, `date` FROM `comment_table` ORDER BY `date` DESC';46$result=mysqli_query($link,$query);4748while($row=mysqli_fetch_array($result)){49$data[]=$row;50}5152}53?>54<!DOCTYPEhtml>55<htmllang="ja">56<head>57<metacharset="UTF-8">58<title></title>59</head>60<body>61<h1>ひとこと掲示板</h1>62<formmethod="post">63<?phpif(count($errors)>0){?>64<ul>65<?phpforeach($errorsas$value){?>66<li><?phpechohtmlspecialchars($value,ENT_QUOTES,'UTF-8');?></li>67<?php}?>68</ul>69<?php}?>70<p>名前 :
71<inputtype="text"name="name">72ひとこと :
73<inputtype="text"name="comment"size="60">74<inputtype="submit"value="送信">75</p>76</form>7778<ul>79<?phpif(!empty($data)){?>80<?phpforeach($dataas$values){?>81<li>82<?phpechohtmlspecialchars($values['name'],ENT_QUOTES,'UTF-8');?>83<?phpechohtmlspecialchars($values['comment'],ENT_QUOTES,'UTF-8');?>84<?phpechohtmlspecialchars($values['date'],ENT_QUOTES,'UTF-8');?>85</li>86<?php}?>87<?php}?>88</ul>89</body>90</html>
で、さらに直した:
php
1<?php2date_default_timezone_set('Asia/Tokyo');3$name=null;4$comment=null;5$date=date("Y-m-d H:i:s");6$errors=array();7$host='';8$username='';9$passwd='';10$dbname='';11$link=mysqli_connect($host,$username,$passwd,$dbname);1213if($link!==FALSE){14mysqli_set_charset($link,'utf8');15$query='SELECT name,comment,date FROM comment_table';16if($_SERVER['REQUEST_METHOD']==='POST'){17if(isset($_POST['name'])){18if(mb_strlen($_POST['name'])===0){19$errors['name']='名前を入力してください';20}21elseif(mb_strlen($_POST['name'])>20){22$errors['name']='名前は20文字以内で入力してください';23}24else{25$name=$_POST['name'];26}27}28else{29$errors['name']='名前を入力してください';30}31}3233if(isset($_POST['comment'])!==TRUE){34if(mb_strlen($_POST['comment'])===0){35$errors['comment']='ひとことを入力してください';36}elseif(mb_strlen($_POST['comment'])>20){37$errors['comment']='ひとことは100文字以内で入力してください';38}else{39$name=$_POST['comment'];40}41}42else{43$errors['comment']='ひとことを入力してください';44}45if(!is_null($name)&&!is_null($comment)){46$query='INSERT INTO `comment_table`(`name`, `comment`, `date`) VALUES(?, ?, ?)';47$stmt=mysqli_prepare($link,$query);48mysqli_stmt_bind_param($stmt,"sss",$name,$comment,$date);49$result=mysqli_stmt_execute($stmt);50if($result===FALSE){51$errors[]='登録に失敗しました';52}53}5455$data=array();56$query='SELECT `name`, `comment`, `date` FROM `comment_table` ORDER BY `date` DESC';57$result=mysqli_query($link,$query);5859while($row=mysqli_fetch_array($result)){60$data[]=$row;61}6263}64?>65<!DOCTYPEhtml>66<htmllang="ja">67<head>68<metacharset="UTF-8">69<title></title>70</head>71<body>72<h1>ひとこと掲示板</h1>73<formmethod="post">74<?phpif(count($errors)>0){?>75<ul>76<?phpforeach($errorsas$value){?>77<li><?phpechohtmlspecialchars($value,ENT_QUOTES,'UTF-8');?></li>78<?php}?>79</ul>80<?php}?>81<p>名前 :
82<inputtype="text"name="name">83ひとこと :
84<inputtype="text"name="comment"size="60">85<inputtype="submit"value="送信">86</p>87</form>8889<ul>90<?phpif(!empty($data)){?>91<?phpforeach($dataas$values){?>92<li>93<?phpechohtmlspecialchars($values['name'],ENT_QUOTES,'UTF-8');?>94<?phpechohtmlspecialchars($values['comment'],ENT_QUOTES,'UTF-8');?>95<?phpechohtmlspecialchars($values['date'],ENT_QUOTES,'UTF-8');?>96</li>97<?php}?>98<?php}?>99</ul>100</body>101</html>