저는 PHP가 매우 새롭습니다. 수업 과제를 위해 우리는 Tic Tac Toe 게임을 만들어야합니다. 지금까지이 내 코드입니다 : 여기
<html>
<body>
<h1>Tic Tac Toe</h1>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="input">
<input type="submit" name="submit">
</form>
<?php
//Display Determinations
//Top Left
if (!ISSET($_POST['submit'])) {
$GLOBALS['ul_truefalse'] = true;
$GLOBALS['turn'] = 1;
$this_happened = "!isset";
}
if (ISSET($_POST['submit'])) {
$GLOBALS['turn'] = $GLOBALS['turn'] + 1;
if ($GLOBALS['turn'] == 3) {
$GLOBALS['turn'] = 1;
}
}
if ($GLOBALS['ul_truefalse'] == true) {
$GLOBALS['ul_display'] = "UL";
if (ISSET($_POST['input']) and $_POST['input'] == "ul" and $GLOBALS['turn'] == 1) {
$GLOBALS['ul_display'] = "X";
$GLOBALS['ul_truefalse'] = false;
$this_happened = "p1 ul";
}
if (ISSET($_POST['input']) and $_POST['input'] == "ul" and $GLOBALS['turn'] == 2) {
$GLOBALS['ul_display'] = "O";
$GLOBALS['ul_truefalse'] = false;
}
}
echo "Player " . $GLOBALS['turn'] . ", it's your turn!";
echo $this_happened;
?>
<table border="1" width="40%">
<tr>
<td><?php echo $GLOBALS['ul_display'] ?></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</body>
</html>
는 출력 (페이지가로드 될 때 왼쪽은 플레이어 1 "UL"를 입력하면, 오른쪽입니다) :
http://i.imgur.com/G0JaXYY.png이
문제는 때입니다 if (!ISSET($_POST['submit'])) {
이 false가되면 해당 if 문에 정의 된 문자열이 값을 잃어서 정의되지 않은 변수 오류가 발생합니다. 숨겨진 양식 상자에 저장하려고 시도했지만 문제가 해결되지 않았습니다. 포럼에서 한 사람에게 코드를 보냈습니다. 왜 이런 일이 일어나는 걸까요? 이 문제를 어떻게 해결할 수 있습니까?
PHP는 persistive 글로벌 바르가 없습니다. 항상 현재 페이지 요청에 대해서만 채워집니다. 당신은 세션을 찾고 있습니다. – mario