前提
xamppを使いMysqlに登録までできたのですが、Mysqlで表示すると文字化けを起こしてしまいます
実現したいこと
Mysqlに登録はできたので、文字化けを直したいです。
発生している問題・エラーメッセージ
該当のソースコード
<?php session_start(); $name = htmlspecialchars(validateData("name"),ENT_QUOTES); $mail = htmlspecialchars(validateData("mail"),ENT_QUOTES); $seibetsu = htmlspecialchars(validateData("seibetsu"),ENT_QUOTES); $textarea = htmlspecialchars(validateData("textarea"),ENT_QUOTES); $tel = htmlspecialchars(validateData("tel"),ENT_QUOTES); $yuubin = htmlspecialchars(validateData("yuubin"),ENT_QUOTES); $region = htmlspecialchars(validateData("region"),ENT_QUOTES); $locality = htmlspecialchars(validateData("locality"),ENT_QUOTES); $banti = htmlspecialchars(validateData("banti"),ENT_QUOTES); $pdo = new PDO('mysql:charset=utf8;dbname=basic;host=localhost', 'abcde', 'password'); $stmt = $pdo->prepare("INSERT INTO form ( seibetsu,name, tel, yuubin,region,locality,banti,textarea ) VALUES ( :seibetsu,:name, :tel, :yuubin,:region,:locality,:banti,:textarea )"); $stmt->bindParam( ':seibetsu', $seibetsu, PDO::PARAM_STR); $stmt->bindParam( ':name', $name, PDO::PARAM_STR); $stmt->bindParam( ':tel', $tel, PDO::PARAM_STR); $stmt->bindParam( ':yuubin', $yuubin, PDO::PARAM_STR); $stmt->bindParam( ':region', $region, PDO::PARAM_STR); $stmt->bindParam( ':locality', $locality, PDO::PARAM_STR); $stmt->bindParam( ':banti', $banti, PDO::PARAM_STR); $stmt->bindParam( ':textarea', $textarea, PDO::PARAM_STR); $res = $stmt->execute(); $pdo = null; // メールアドレスをバリデーション if(!filter_var($mail, FILTER_VALIDATE_EMAIL)){ $_SESSION['error_mail'] = 1; } // 入力がどこかミスったらform.phpにとばされる if($_SESSION['error_name'] || $_SESSION['error_mail'] || $_SESSION['error_seibetsu'] || $_SESSION['error_textarea'] || $_SESSION['error_tel'] || $_SESSION['error_yuubin'] || $_SESSION['error_region'] || $_SESSION['error_locality'] || $_SESSION['error_banti']){ header("Location: ./form.php"); exit(); } function validateData($key){ if(is_null($_POST["$key"]) || empty($_POST["$key"]) || !is_string($_POST["$key"])){ $_SESSION["$key"] = $_POST["$key"]; $_SESSION["error_" . $key] = 1; return ""; }else{ $_SESSION["$key"] = $_POST["$key"]; $_SESSION["error_" . $key] = 0; return $_POST["$key"]; } } ?> <!-- --> ! <!DOCTYPE HTML> <html> <head> <meta charset='UTF-8'> <title>確認画面</title> <style type="text/css"> *{ padding: 0; margin: 0; } .icon2{ /* margin-top:200px; */ width: 200px; margin-left: 400px; } .contents_box{ width: 400px; height: 150px; background-color: aquamarine; overflow: scroll; } .kakunin{ text-align:center; } .hensuu{ border: double 5px; font-size:20px; font-weight:bold; width: 700px; height: 800px; background-color:#f5deb3; /* text-align:center; */ margin:0 auto; } .btn{ text-align: center; margin-top:50px; } .sousin{ width:100px; } .modoru{ width:100px; } .hyouji{ margin-top:0; margin-left:200px; overflow: scroll; } body{ } footer{ position: fixed; bottom: 0; background-color: darkcyan; width: 100%; text-align: center; color: darkgray; padding: 20px 0; font-size: 30px; } </style> </head> <body> <div class="hensuu"> <img src="アンケート.png" class="icon2"> <h1 class="kakunin">確認</h1> <div class="hyouji" > <span>名前: <?php echo $name; ?> </span> <br> <span>性別: <?php echo $seibetsu; ?> </span> <br> <span>電話番号: <?php echo $tel; ?> </span> <br> <span>郵便番号: <?php echo $yuubin; ?> </span> <br> <span>都道府県: <?php echo $region; ?> </span> <br> <span>地区町村: <?php echo $locality; ?> </span> <br> <span>町名番地: <?php echo $banti; ?> </span> <br> <span>メール: <?php echo $mail; ?> </span> <br> <span>感想:<br> <?php echo nl2br($textarea); ?> </span> <br> </div> <form action='http://localhost/basic/complete.php' method='POST'> <div class="btn"> <!-- <input type='hidden' name='name' value="<?php echo $_POST['name']; ?>"> <input type='hidden' name='seibetsu' value="<?php echo $_POST['seibetsu']; ?>"> <input type='hidden' name='tel' value="<?php echo $_POST['tel']; ?>"> <input type='hidden' name='yuubin' value="<?php echo $_POST['yuubin']; ?>"> <input type='hidden' name='region' value="<?php echo $_POST['region']; ?>"> <input type='hidden' name='locality' value="<?php echo $_POST['locality']; ?>"> <input type='hidden' name='banti' value="<?php echo $_POST['banti']; ?>"> --> <!-- <input type='hidden' name='mail' value="<?=$csrf_token?>"> --> <!-- <input type='hidden' name='mail' value="<?php echo $_POST['mail']; ?>"> <input type='hidden' name='textarea' value="<?php echo $_POST['textarea']; ?>"> --> <!-- <input type='hidden' name='name' value="'.$name.'"> <input type='hidden' name='seibetsu' value='.$seibetsu.'> <input type='hidden' name='tel' value='.$tel.'> <input type='hidden' name='yuubin' value='$yuubin'> <input type='hidden' name='region' value='®ion'> <input type='hidden' name='locality' value='$locality'> <input type='hidden' name='banti' value='$banti'> <input type='hidden' name='mail' value='$mail'> <input type='hidden' name='textarea' value='$textarea'> --> <input type='button' class="modoru" onclick='history.back()' value='戻る'> <input type='submit' class="sousin" value='送信'> </div> </div> </br> </br> </form> <footer> <p>©2022 aiueo</p> </footer> </body> </html>
試したこと
default-charsetなどをutf8にしました。
databaseのところだけutf8にならなかったです。
補足情報(FW/ツールのバージョンなど)
お手柔らかにお願いします。
0 コメント