Help! Код не в какую работать не хочет...

Статус
В этой теме нельзя размещать новые ответы.

mister-master

Новичок
Help! Код не в какую работать не хочет...

Недавно начал изучать PHP и вот встрял... ну никак сам разобраться не могу... :(
register_globals: off, Apach: 2.2.4, OS Window: XP
Код взят из учебника:
PHP:
<html>
<head>
<title>Игра в покер</title>
<style type = "text/css">
body {
background: green;
colour: tan;
<font face = "Comic Sans MS">
}
</style>
</head>
<body>
<center>
<h1>Добро пожаловать в нашу игру: ПокеР!</h1>
<form method = "get">
<?
$cash = $_REQUEST["cash"];
$keepIt[1] = $_REQUEST["keepIt[1]"];
$keepIt[2] = $_REQUEST["keepIt[2]"];
$keepIt[3] = $_REQUEST["keepIt[3]"];
$keepIt[4] = $_REQUEST["keepIt[4]"];
$keepIt[5] = $_REQUEST["keepIt[5]"];

//check to see if this is first time here
if (empty($cash)){
 $cash = 100;
} // end if

rollDice();

if ($secondRoll == TRUE){
 print "<h2>Second roll</h2>\n";
 $secondRoll = FALSE;
 evaluate();
} else {
 print "<h2>First roll</h2>\n";
 $secondRoll = TRUE;
} // end if

printStuff();

function rollDice(){
 global $die, $secondRoll, $keepIt;
 print "<table border = 1><td><tr>";
 for ($i = 0; $i < 5; $i++){
  if ($keepIt[$i] == ""){
   $die[$i] = rand(1, 6);
  } else {
   $die[$i] = $keepIt[$i];
  } // end if
  $theFile = "die" . $die[$i] . ".jpg";
  //print out dice images
  print <<<HERE
  <td>
  <img src = "$theFile"
	height = 50
	width = 50><br>
HERE;
  //print out a checkbox on first roll only
  if ($secondRoll == FALSE){
   print <<<HERE
   <input type = "checkbox"
   	  name = "keepIt[$i]"
	  value = $die[$i]>
   </td>
HERE;
   } // end if
  } // end for loop
 //print out submit button and end of table
 print <<<HERE
 </tr></td>
  <tr>
  <td colspan = "5">
   <center>
   <input type = "submit"
 	value = "roll again">
   </center>
   </td>
  </tr>
 </table>
HERE;
} // end rollDice

function evaluate(){
 global $die, $cash;
 //set up payoff
 $payoff = 0;
 //subtract some money for this roll
 $cash -= 2;
 //count the dice
 $numVals = array(6);
 for ($theVal = 1; $theVal <= 6; $theVal++){
  for ($dieNum = 0; $dieNum < 5; $dieNum++){
   if ($die[$dieNum] == $theVal){
    $numVals[$theVal]++;
   } // end if
  } // end dieNum for loop
 } // end theVal for loop
 //print out results
 // for ($i = 1; $i <= 6; $i++){
 // print "$i: $numVals[$i]<br>\n";
 // } // end for loop
 //count how many pairs, threes, fours, fives
 $numPairs = 0;
 $numThrees = 0;
 $numFours = 0;
 $numFives = 0;
 for ($i = 1; $i <= 6; $i++){
  switch ($numVals[$i]){
   case 2:
    $numPairs++;
    break;
   case 3:
    $numThrees++;
    break;
   case 4:
    $numFours++;
    break;
   case 5:
    $numFives++;
    break;
  } // end switch
 } // end for loop
 //check for two pairs
 if ($numPairs == 2){
  print "You have two pairs!<br>\n";
  $payoff = 1;
 } // end if
 //check for three of a kind and full house
 if ($numThrees == 1){
  if ($numPairs == 1){
   //three of a kind and a pair is a full house
   print "You have a full house!<br>\n";
   $payoff = 5;
  } else {
   print "You have three of a kind!<br>\n";
   $payoff = 2;
  } // end 'pair' if
 } // end 'three' if
 //check for four of a kind
 if ($numFours == 1){
  print "You have four of a kind!<br>\n";
  $payoff = 5;
 } // end if
 //check for five of a kind
 if ($numFives == 1){
  print "You got five of a kind!<br>\n";
  $payoff = 10;
 } // end if
 //check for flushes
 if (($numVals[1] == 1)
  && ($numVals[2] == 1)
  && ($numVals[3] == 1)
  && ($numVals[4] == 1)
  && ($numVals[5] == 1)){
  print "You have a flush!<br>\n";
  $payoff = 10;
 } // end if
 if (($numVals[2] == 1)
  && ($numVals[3] == 1)
  && ($numVals[4] == 1)
  && ($numVals[5] == 1)
  && ($numVals[6] == 1)){
  print "You have a flush!<br>\n";
  $payoff = 10;
 } // end if
 print "You bet 2<br>\n";
 print "Payoff is $payoff<br>\n";
 $cash += $payoff;
 } // end evaluate

function printStuff(){
 global $cash, $secondRoll;
 print "Cash: $cash\n";
 //store variables in hidden fields
 print <<<HERE
 <input type = "hidden"
 name = "secondRoll"
 value = "$secondRoll">
 <input type = "hidden"
 name = "cash"
 value = "$cash">
HERE;
} // end printStuff
?>
</form>
</center>
</body>
</html>
Вот такие пряники....
 

Ewg

Новичок
<title>Игра в покер</title>
Код взят из учебника:

"Хороший" у Вас учебник.
 

mister-master

Новичок
— ну, нанимайте специалиста.
Обалденный ответ! Он мне так помог!
Продолжайте в том же духе! Мне уже даже нравится... :)))

-~{}~ 24.12.09 10:02:

Так в чём враньё? Можно с этого момента поподробнее?
http://www.google.ru/search?hl=ru&a...mp;aq=f&oq=
смысл начинать общение со вранья?
в оффтоп
Код тупо скопирован с учебника... ошибок в нем быть по идее не должно...
Но у меня он не работает... данные из checkbox`oв не видит... всегда делает только первый бросок... в учебнике отрыл, что нужно в начало скрипта написать //$имя переменной = $_REQUEST["Имя значения поля"]; если отключен register_globals, написал... Переменную $cash теперь видно... а массив $keepIt, не в какую не находит... уже несколько дней понять не могу...
 

Фанат

oncle terrible
Команда форума
Если большой пример не работает, надо для начала взять пример попроще. И не просто заставить его работать - это, на самом деле, не нужно. А - куда важнее - понять, как он работает. Для этого учебники нужны.
 

mister-master

Новичок
Все ранее приведённые примеры из этого учебника я отработал... а в этом не могу понять, как вытащить значения из checkbox`ов... в остальном код мне абсолютно понятен... и на мой взгляд, был бы работоспособен, если бы значение вытаскивалось из этих checkbox`oв...
 

Фанат

oncle terrible
Команда форума
такие проблемы решаются очень просто.
напиши небольшой пример, в котором есть только чекбоксы и только извлечение.

-~{}~ 24.12.09 10:31:

боле того - такие проблемы только так и надо решать. другого варианта все равно нету. какой смысл копаться в тонне кода, если не работает 5 грамм?
 

mister-master

Новичок
В других скриптах я их нормально извлекаю... а в этом, хоть убей не извлекаются... а почему не пойму...
вот например:
PHP:
<?
$check = $_POST['check'];
print <<<HERE
<form name="form1" method="post" action="" >
<input type="checkbox" name="check[0]" value="Zero" >
<input type="checkbox" name="check[1]" value="One" >
<input type="checkbox" name="check[2]" value="Two" >
<br>
<input type="submit" value="Go!">
</form >
HERE;

print "$check";

echo '

';
print_r($_POST);
echo '

';
?>
Может быть я полный нуб и чайник... но мне теперь принципиально нужно знать, что я в этом коде делаю не так, что checkbox не извлекаются...
 

mister-master

Новичок
Он не пишет... он только первый бросок делает и всё... всегда первый... а должен делать второй, и заменять не отмеченные chekbox новыми костями, а отмеченные оставлять...

у меня работает как ни станно )
Так я и говорю... что по всей логике код рабочий... вот только почему он у меня не работает и не считывает данные из chekbox...
 

baev

‹°°¬•
Команда форума
Обалденный ответ! Он мне так помог!
Продолжайте в том же духе! Мне уже даже нравится...
— а чего Вы ожидали?
Все могут самостоятельно разобраться, а Вы — один такой исключительный, что за Вас разбираться должен кто-то другой?

С хрена ли?
 

mister-master

Новичок
— а чего Вы ожидали?
Все могут самостоятельно разобраться, а Вы — один такой исключительный, что за Вас разбираться должен кто-то другой?

С хрена ли?
Во первых. ни кто никому ничего не должен!
Во вторых, вы себя что ли предлагаете в качестве специалиста? :)
А в третьих, это все навсего интересный вопрос.... обычно на форумах люди этим и занимаются... они общаются, задают вопросы, получают ответы, или сами отвечают на поставленные вопросы... в этом и есть смысл общения в общем...
А Вам рекомендую разместить объявления о предложении услуг специалиста в специальных рубриках, вероятность того, что ими воспользуются намного больше...
Да, и кстати, возможно, именно, ответив на мой вопрос человек зарекомендует себя как специалист и возможно посетив этот форум потенциальный клиент обратится именно к нему! Таким способом создаётся репутация...
А о Вас как о специалисте исходя из Ваших постов мнение не сложится... скорее, как об агрессивно настроенном, чем-то неудовлетворённым человеке... Будьте проще, может и люди к Вам потянутся.... подумайте об этом!
 

Фанат

oncle terrible
Команда форума
насчет репутации это ты верно сказал. в самую точку.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху