Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2010, 10:13   #1
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию Игра "угадай число"

Недавно начал писать на php.
Написал простенькую игру, которая на моей сервере(LAMP) запускается и корректно работает, но на других серверах она не работает.
Вот код(прошу прощения за кривость кода, просто ещё не привык к веб-программированию):

index.php

PHP код:
<?php
require_once("header.php");
 echo 
"<br><br>";
?>
<center>
<b>Угадайте число за 10 попыток.</b>
<br><br>
<form method="POST" action="game.php">
<b>Имя игрока: </b><input type="text" name="name" value="" />
<input type="submit" name="submitted" value="Начать игру"></form>
</center>
<?php
require_once("footer.php");
?>
game.php

PHP код:
<?php 
$mcount
=10;
if (
$zc=="")
 unset(
$zc);
if (!isset(
$zc))
{
  
srand(time()+(double)microtime()*1000000);
  
$zc=rand()%101;
  
setcookie("zc",$zc);
  
setcookie("count",0);
  
setcookie("uname",$name);

if (isset(
$zc)) 
{
$count++;
setcookie("count",$count);
if (
$chislo===$zc)
 
$count=$mcount+1; else
if ((
$count!=1) && ($count<$mcount+1)) 
{
require_once(
"header.php");
 echo 
"<br><br>";
 echo 
"<center>";
if (
$chislo<$zc
 echo 
"Загаданное число больше. <br> У вас осталось "$mcount-$count+1" попыток"; else
if (
$chislo>$zc)
 echo 
"Загаданное число меньше. <br> У вас осталось "$mcount-$count+1" попыток";
 echo 
"<br><br>";
 echo 
"</center>";
}
if (
$count==1)
{
require_once(
"header.php");
 echo 
"<br><br>";
}
}
if (
$mcount<$count)
{
 if (
$chislo==$zc)
  
$p=1;
 else 
  
$p=0;
  
$z=$zc;
  
$zc="";
  
setcookie("zc");
  
setcookie("count");
  
setcookie("uname");
  require_once(
"header.php");
 echo 
"<br><br>";
 echo 
"<center>";
  if (
$p==1)
   echo 
"$uname, вы победили. <br>"; else
   echo 
"$uname, вы проиграли. <br> Загаданное число было $z.";
   echo 
"<br><br>";
   echo 
"</center>";
  
?>
  <center>
  <form action="index.php" method="POST">
  <input type="submit" name="submitted" value="Попробовать ещё?">
  </form>
  </center>
  <?php
} else {
?>
<center>
<form method="POST" action="<?php echo $SCRIPT_NAME ?>">
<b>Число </b> <input type="text" name="chislo" value="0" />
<input type="submit" name="submitted" value="Подтвердить"></form>
</center>
<?php }
require_once(
"footer.php");
?>
footer.php

PHP код:
<hr>
<
center>
<
b>programming by russian-stalker</b>
</
center
header.php

PHP код:
<center>
<
img src="logo.png" alt="">
</
center>
<
title>Угадай число</title>
<
body text=#FFFFFF background="back1.jpg" bgproperties="fixed"> 
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 24.01.2010, 11:35   #2
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

добавте строку:
Код:
$mcount=10;
$zc=$_POST["chislo"];
вроде правильно код понял.
пояснение:
на вашем сервере включены глобальные переменные, что не безопасно, поэтому на других серверах эта опция отключена.
Разработка сайтов -дело прикольное

Последний раз редактировалось LeoN; 24.01.2010 в 11:37. Причина: пояснение
LeoN вне форума Ответить с цитированием
Старый 24.01.2010, 11:49   #3
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

я про это тоже думал, но на одном сервере в phpinfo() показывает что включены, но там, насколько я понял, сервер не хочет ставить куки пользователю.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 24.01.2010, 12:33   #4
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

опять же куки в простые переменные не превращаются.Сделай на этот момент "защиту" не влом же. флуд пошел
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 24.01.2010, 12:41   #5
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

почему же флуд? всё по теме.
а допустим если глобальные переменные выключенны, то будут ли переменные(которые идут из формы и куки) помещаться в $GLOBALS ?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 24.01.2010, 13:23   #6
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

$GLOBALS - это ассоциативный массив, ключом которого является имя, а значением - содержимое глобальной переменной. Обратите внимание, что $GLOBALS существует в любой области видимости, это объясняется тем, что этот массив является суперглобальным.
Глобальные переменные в PHP
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 24.01.2010, 14:05   #7
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Благодарю, просто книга, по которой я учил php, видимо слишком старая и в ней сказано, что на хостингах редко отключают глобальные переменные.
Сделал так и работает:
PHP код:
<?php 
$mcount
=10;
$chislo=$_POST["chislo"];
$zc=$_COOKIE["zc"];
$uname=$_COOKIE["uname"];
$count=$_COOKIE["count"];
if (
$zc=="")
 unset(
$zc);
if (!isset(
$zc))
{
  
srand(time()+(double)microtime()*1000000);
  
$zc=rand()%101;
  
setcookie("zc",$zc);
  
setcookie("count",0);
  
setcookie("uname",$_POST['name']);

...
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 29.01.2010, 21:39   #8
jokz
 
Регистрация: 27.01.2010
Сообщений: 8
По умолчанию

так число то можно в куках посмотреть. лучше сесии юзать в таком случае.
jokz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра,угадай задуманное число,Ошибка деления на ноль!!! Rid Помощь студентам 4 22.10.2009 21:12
"Угадай число" SmelMary Помощь студентам 2 22.10.2009 10:44
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Pascal - Игра "Угадай число" d_b Помощь студентам 8 16.02.2009 09:33
[Delphi] Игра "Угадай число" Bomber Помощь студентам 15 05.06.2008 09:34