HTMLでは普通に表示されるのですが、それをPHPファイルに変換したとたん文字化けしてしまいます。 サイトを決行見て対策したのですがうまく出来ませんでした。 コメント欄にコードを書くのでわかる方おりましたらご回答お願いします。
ログインして回答する
回答はまだありません
これ以上回答リクエストを送信することはできません。制限について
コメント(11件)
<html>
<body>
<form action="index.php" method="post">
名前 <input type="text" name="yahoo" size="20" ><br><br>
ご意見 <textarea name="iken" rows="4" cols="27"></textarea><br><br>
<input type="submit" name="submit" value="送信">
</body></html>
<html>
<head><meta charset="UTF-8"></head>
<body>
<form action="index.php" method="post">
名前 <input type="text" name="yahoo" size="20" ><br><br>
ご意見 <textarea name="iken" rows="4" cols="27"></textarea><br><br>
<input type="submit" name="submit" value="送信">
</body></html>
https://jp-seemore.com/web/6567/
php.iniの文字コード設定とかどうなってるのか確認しているだろうか。こういうの。
https://www.javadrive.jp/php/install/index5.html
charsetの指定取り外してみましたが、文字化けしました。
php.iniの文字コード設定のページ理解できませんでした。
HTMLのコード、HTMLから拡張子をPHPに変えてみましたが文字化けします。
文字コード指定再読み込み で UTF8 を選択したら無事に文字化けを回避することが出来ました。
<?php
if (isset($_POST["submit"])){
$db = mysqli_connect("mysql659.db.sakura.ne.jp","stmarks","7ga7nhr2","stmarks_kanri");
$sql = "INSERT INTO MAILFORM (NAMAE, IKEN) VALUES ('" . $_POST["namae"] . "', '" . $_POST["iken"] . "')";
$ret = mysqli_query($db, $sql);
mysqli_close($db);
}
?>
<html>
<head></head>
<body>
<form action="index.php" method="post">
名前 <input type="text" name="namae" size="20" ><br><br>
ご意見 <textarea name="iken" rows="4" cols="27"></textarea><br><br>
<input type="submit" name="submit" value="送信">
</body></html>
<?php
// 投稿ボタンが押された場合
if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["btn1"]) === true) {
if (!empty($_POST["personal_name"]) && !empty($_POST["contents"])) {
// 投稿の書き込み
writeData();
}
header("Location:./index.php#toukou");
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<title>PHPで掲示板アプリ</title>
<style>
html {
/** 全体の背景色 */
background-color: #C3D9F1;
}
h1 {
/** タイトルの文字色 */
color: #000000;
text-align: center;
}
.main {
/** 掲示板枠の背景色 */
background-color: #F4ECEA;
/** 掲示板枠の幅 */
width: 600px;
border: 1px black solid;
margin-left: auto;
margin-right: auto;
padding: 10px 60px;
}
.pname {
/** 投稿者の名前の文字色 */
color: #56B247;
font-weight: bold;
}
</style>
</head>
<body>
<h1 class="main_title">PHPで掲示板アプリ</h1>
>
<hr>
<div class="main">
<?php
// 投稿の読み込み
readData();
?>
<form method="POST" id="toukou" name="toukou" action="<?php print($_SERVER['PHP_SELF']) ?>">
<p><input type="submit" name="btn1" value="書き込む">
名前:<input type="text" name="personal_name"></p>
<p><textarea name="contents" rows="8" cols="80"></textarea></p>
</form>
</div>
</body>
</html>
<?php
// 投稿読み込み処理
function readData() {
$keijban_file = 'keijiban.txt';
$fp = fopen($keijban_file, 'rb');
if ($fp) {
if (flock($fp, LOCK_SH)) {
while (!feof($fp)) {
$buffer = fgets($fp);
print($buffer);
}
flock($fp, LOCK_UN);
} else {
print('ファイルロックに失敗しました');
}
}
fclose($fp);
}
// 投稿書き込み処理
function writeData() {
// 各値を取得
$personal_name = $_POST['personal_name'];
$contents = $_POST['contents'];
$contents = nl2br($contents);
$data = '<p>名前:<span class="pname">' . $personal_name . '</span>:' . date("Y/n/j") . '</p>';
$data = $data . "<p>" . $contents . "</p>\r\n";
$data = $data . "<hr>\r\n";
$keijban_file = 'keijiban.txt';
$fp = fopen($keijban_file, 'ab');
if ($fp) {
if (flock($fp, LOCK_EX)) {
if (fwrite($fp, $data) === FALSE) {
print('ファイル書き込みに失敗しました');
}
flock($fp, LOCK_UN);
} else {
print('ファイルロックに失敗しました');
}
}
fclose($fp);
}
?>