php 送信されたフォームについて
送信されたフォームの受け取る側のソースを書いたのですが、
<?php
$i = 0;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
print('正解数'.$i./4'です');
?>
を付け加えるとエラーが表示されます。エラーの対象になっているのは
print('正解数'.$i./4'です');らしいのですが、なぜエラーになるのかわかりません
回答お願いします。
以下ソースです。
<html>
<head>
<title>解答</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type=""text/css"">
#container{
width:1000
}
#main{
width:500px;
float:right;
}
#sidebar{
width:500px;
float:left;
}
</style>
</head>
<body>
<div id="container">
<div id="main">
<p>問題の解答</p>
<p>問1</p>
<p>(1)(2)(3)(4)</p>
<p>問2</p>
<p>(1)(2)(3)(4)</p>
<p>問2</p>
<p>(1)(2)(3)(4)</p>
</div>
<div id="sidebar">
<p><>あなたの解答<></p>
<p>問1</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran11'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran12'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran13'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran14'], ENT_QUOTES, 'UTF-8')); ?>
</p>
<p>問2</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran21'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran22'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran23'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran24'], ENT_QUOTES, 'UTF-8')); ?>
</p>
<p>問3</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran32'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran33'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran34'], ENT_QUOTES, 'UTF-8')); ?>
</p>
</div>
</div>
<?php
$i = 0;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
if(print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')) == 'a')
$i++;
print('正解数'.$i./4'です');
?>
</body>
</html>
お礼
ご回答ありがとうございます! >1.入力値は必ずエンコードします。 やはりmb_convert_encodingは使用するのですね。 実は、私の使用しておりますサーバがマルチバイト関数をサポートしていないのです。 php.iniを私が触る権限もありませんので、マルチバイト関数を使用しないでできないものかと思いました。 マルチバイト関数を使用しなくても、きちんとフォームからUTF-8の文字列が取得できるようなライブラリや 方法等がありましたら、ぜひ教えていただけないでしょうか。 >2.htmlentitiesは使いません。 ありがとうございます。 ずっとhtmlentitiesを使用することしか考えていなかったので、とても勉強になりました。 ありがとうございました。 また、マルチバイト文字列関数不使用で何かいい方法がございましたらご教授をどうかよろしくお願いいたします。