dポイントプレゼントキャンペーン実施中!

初心者で数当てゲーム(プレイヤー2人が互いに4桁の秘密の数字を設定後、それを交互に当てあうというもの。数値とその位置が当たっていれば◎を~個、数値が合っていて位置が違えば○を~個、数値も違えば×を~個表示)を作成中なのですが、現在、◎、○、×の数をそれぞれ表示するところで止まっています。
とりあえず、前段階として◎の数だけを表示するようにプログラミングしようと思っています。

JavaScriptで、秘密の数字とプレイ画面で入力した数字の各桁の数字を照らし合わせ、一致した数だけ◎の個数を表示するためのプログラミング。

本分内のPHPで、if文を使って◎の個数を表示するプログラミングしています。
一応、JavaScript・PHPのプログラミングは下記のようにしています。

<script type="text/javascript"><!--
function check1(){
var countS1="<?php print addslashes($_SESSION['countS1']); ?>";

if(4桁すべてが等しい場合){
countS1=4;
}else if(4桁の内3つの数字が等しい場合){
countS1=3;
}else if(4桁の内2つの数字が等しい場合){
countS1=2;
}else if(4桁の内1つの数字が等しい場合){
countS1=1;
}else{
countS1=0;
}
}
//--></script>

<?php
if($_SESSION['countS1']=4){
echo $_SESSION['countS1'];echo '個';
}else if($_SESSION['countS1']=3){
echo $_SESSION['countS1'];echo '個';
}else if($_SESSION['countS1']=2){
echo $_SESSION['countS1'];echo '個';
}else if($_SESSION['countS1']=1){
echo $_SESSION['countS1'];echo '個';
}else if($_SESSION['countS1']=0){
echo $_SESSION['countS1'];echo '個';
}
?>

例)秘密の数字:1234、プレイ画面の入力値:1268
→◎:2個

という様にしたいのですが、上のままだと入力してからsubmitボタンを押す前から「4個」と表示されてしまいます。
分かりにくくて申し訳ありませんが、よろしくお願いします。

A 回答 (2件)

#1 ですが、先の回答はセキュリティ上の問題がありました。


echo $_SESSION['countS1'];echo '個';

echo (int)$_SESSION['countS1'];echo '個';
と読み替えてください。
# いやー、セッション変数そのまま表示なんて恐ろしいことやっちゃったよ(^_^;
    • good
    • 0
この回答へのお礼

お礼が遅くなってすいません。
結局うまく表示されませんでした。
基礎を勉強し直します(^^;
参考になりました。
ありがとうございます。

お礼日時:2013/09/07 11:46

× $_SESSION['countS1']=4


○ $_SESSION['countS1']==4

……というか、PHP部分は
<?php
if(0 <= $_SESSION['countS1'] && $_SESSION['countS1'] <= 4){
echo $_SESSION['countS1'];echo '個';
}
?>
とまとめられそうですが……。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!