この機能を機能させるために、さまざまなことを試しました。私が抱えている特定の問題の解決策があるかどうかを確認するために、stackoverflow 全体を検索しましたが、どこにも行きません。ユーザーがリセットボタンを押したときにセッション変数の値を0にリセットしたかったのですが、これは単なる送信ボタンです。それを get に変更してから、サーバーからプルするように if ステートメントを設定して、リクエストが GET かどうかを確認してみました。私は POST でも同じことをしましたが、うまくいきませんでした。セッションはそのまま残り、まったく破棄されません。これは、echo ステートメントを使用してテストを実行しようとしたが、何も返されないため、if ステートメントを無視しているようなものです。問題の原因となっている可能性のあるアイデアはありますか? セッション変数にデータを入力し、それをという変数に設定しています$db_value
. これを行った理由は、結果をデータベースに書き込み、ユーザーがプレイを続けたときにデータベースから再度取得できるようにするためです。
<?php session_start();
$host = "localhost";
$user = "username here";
$pass = "";
mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db("RPS") or die(mysql_error());
mysql_query("SET SQL_SAFE_UPDATES=0;"); // allows updating of table
mysql_query("Create table if not exists RPS (score int);");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Rock, Paper, scissors</title>
</head>
<body>
</body>
</html>
<?php
if (isset($_SESSION['Score'])) {
if ($_POST['user_choice']) {
$user_choice = $_POST['user_choice'];
$Choosefrom = array(Rock, Paper, Scissors);
$Choice = rand(0, 2);
$Computer = $Choosefrom[$Choice];
//create a variable for the database to use
$q = mysql_query("SELECT * FROM RPS;");
$db_array = mysql_fetch_array($q);
$db_value = $db_array[0];
if ($user_choice == $Computer) {
echo 'Result : Draw +0';
$_SESSION['Score'] = (int) $_SESSION['Score'];
$db_value = $_SESSION['Score'];
mysql_query("UPDATE RPS SET score=$db_value;");
} else if ($user_choice == 'Rock' && $Computer == 'Scissors') {
echo 'Result : Win +1';
$_SESSION['Score'] = (int) $_SESSION['Score'] + 1;
$db_value = $_SESSION['Score'];
mysql_query("UPDATE RPS SET score=$db_value;");
} else if ($user_choice == 'Rock' && $Computer == 'Paper') {
echo 'Result : Lose -1';
$_SESSION['Score'] = (int) $_SESSION['Score'] - 1;
$db_value = $_SESSION['Score'];
mysql_query("UPDATE RPS SET score=$db_value;");
} else if ($user_choice == 'Scissors' && $Computer == 'Rock') {
echo 'Result : Lose -1';
$_SESSION['Score'] = (int) $_SESSION['Score'] - 1;
$db_value = $_SESSION['Score'];
mysql_query("UPDATE RPS SET score=$db_value;");
} else if ($user_choice == 'Scissors' && $Computer == 'Paper') {
echo 'Result : Win +1';
$_SESSION['Score'] = (int) $_SESSION['Score'] + 1;
$db_value = $_SESSION['Score'];
mysql_query("UPDATE RPS SET score=$db_value;");
} else if ($user_choice == 'Paper' && $Computer == 'Rock') {
echo 'Result : Win +1';
$_SESSION['Score'] = (int) $_SESSION['Score'] + 1;
$db_value = $_SESSION['Score'];
mysql_query("UPDATE RPS SET score=$db_value;");
} else if ($user_choice == 'Paper' && $Computer == 'Scissors') {
echo 'Result : Lose -1';
$_SESSION['Score'] = (int) $_SESSION['Score'] - 1;
$db_value = $_SESSION['Score'];
mysql_query("UPDATE RPS SET score=$db_value;");
}
echo ' You\'re score is currently: ' . $_SESSION['Score'];
echo '<a href="rps.php">Play Again ?</a>';
echo '<form method="POST" action="rps.php"><input type="hidden" name="hidden" /><input type="submit" value ="Reset" name="reset" /></form>';
if ($_POST['reset']) {
$_SESSION['Score'] = 0;
$db_value = $_SESSION['Score'];
unset($_SESSION['Score']);
session_start();
session_destroy();
mysql_query("UPDATE RPS SET score=$db_value;");
header('Location:rps.php');
}
} else if (!$_POST['user_choice']) {
echo 'Your Current Score is: ' . $_SESSION['Score'] . '<form action="rps.php" method="post" />
<input type="image" src="images/Rock.png" alt="Rock" name="user_choice" value="Rock" title="Rock" height="115" /> <br /><br />
<input type="image" src="images/Paper.png" alt="Paper" name="user_choice" value="Paper" title="Paper" height="115"/> <br /><br />
<input type="image" src="images/Scissors.png" alt="Scissors" name="user_choice" value="Scissors" title="Scissors" height="115"/> <br /><br />
</form> ';
}
} else if (!isset($_SESSION['Score'])) {
$_SESSION['Score'] = 0;
echo 'Your Current Score is: ' . $_SESSION['Score'] . '<form action="rps.php" method="post" />
<input type="image" src="images/Rock.png" alt="Rock" name="user_choice" value="Rock" title="Rock" height="115" /> <br /><br />
<input type="image" src="images/Paper.png" alt="Paper" name="user_choice" value="Paper" title="Paper" height="115"/> <br /><br />
<input type="image" src="images/Scissors.png" alt="Scissors" name="user_choice" value="Scissors" title="Scissors" height="115"/> <br /><br />
</form>';
}
?>
echo'<form method="POST" action="">
<input type="hidden" name="hidden" />
<input type="submit" value ="Reset" name="reset" />
</form>';
if (isset($_POST['reset']) && ($_POST['reset'] == "Reset")) {
$_SESSION['Score'] = 0;
$db_value = $_SESSION['Score'];
unset($_SESSION['Score']);
session_start();
session_destroy();
mysql_query("UPDATE RPS SET score=$db_value;");
header('Location:rps.php');
}