decypher Posted July 19, 2007 Share Posted July 19, 2007 <html> <head> <title>Guess the number<title> </head> <body bgcolor = "maroon"> <center> <font face = "Arial"> <h1>Guess the number!</h1> <?php printgreeting(); printdice(); printform(); function printgreeting(){ global $guess, $numpetals; if (empty($guess)){ print"<h3>Welcome to Guess the number!</h3>"; } else if ($guess == $numpetals){ print "<h3>You got it!</h3>"; } else { print <<<HERE <h3>from last try: </h3> you guessed: $guess<br><br> and the correct answer was: $numpetals HERE; } // end if } // end printgreeting function printdice(){ global $numpetals; $numpetals =0; $die1 = rand(1,6); $die2 = rand(1,6); $die3 = rand(1,6); $die4 = rand(1,6); $die5 = rand(1,6); showDie($die1); showDie($die2); showDie($die3); showDie($die4); showDie($die5); print "<br>"; Calcnumpetals($die1); Calcnumpetals($die2); Calcnumpetals($die3); Calcnumpetals($die4); Calcnumpetals($die5); } // end printdice function showDie($value){ print <<<HERE <img src = "die$value.jpg" height = 100 width = 100> HERE; } // end showDie function calcnumpetals($value){ global $numpetals; switch($value) { case 3: $numpetals += 2; break; case 5: $numpetals += 4; break; } // end switch } // end calcnumpetals function printform(){ global $numpetals; print <<<HERE <H3>What is the total amount?</h3> <form method = "post"> <input type = "text" name = "guess" value = "0"> <input type = "hidden" name = "numpetals" value = "$numpetals"> <br> <input type = "submit" value = "guess"> HERE; } // end printform ?> </font> </center> </body> </html> Basically it will load up everything...However when I go to guess the total number (amount of dots) it just refreshes the page but doesn't tell me if I was right or wrong...Can anyone see the problem...So you know only been learning approx 2days...so don't start mentionin arrays and more complicated stuff Thnks in advanced Link to comment https://forums.phpfreaks.com/topic/60755-solved-dice-game/ Share on other sites More sharing options...
JasonLewis Posted July 19, 2007 Share Posted July 19, 2007 for your form, try this: <form method="post" action="{$_SERVER['PHP_SELF']}"> <input type = "text" name = "guess" value = "0"> <input type="hidden" name = "numpetals" value="{$numpetals}"> <br> <input type = "submit" value = "guess" name="submit"> </form> then at the top of your page, put this: if(isset($_POST['submit'])){ //check if the submit button is hit $guess = $_POST['guess']; $numpetals = $_POST['numpetals']; } printgreeting(); printdice(); printform(); but looking at it, i think most of your variables arnt being passed along properly... Link to comment https://forums.phpfreaks.com/topic/60755-solved-dice-game/#findComment-302249 Share on other sites More sharing options...
decypher Posted July 19, 2007 Author Share Posted July 19, 2007 All i needed was the : $guess = $_POST['guess']; $numpetals = $_POST['numpetals']; at the top of the php script... Thanks alot Link to comment https://forums.phpfreaks.com/topic/60755-solved-dice-game/#findComment-302252 Share on other sites More sharing options...
SammyP Posted July 19, 2007 Share Posted July 19, 2007 "else if" should not have a space in it. I can't help you much more as you really haven't really defined the problem very well. But to help yourself, try debugging a little. Instead of printing the messages, change in temporarily to print out the values of the variables you are checking. I usually put them in colons so I know where they should show up, like this: echo ":$guess:$numpetals:"; I think you'll find it always outputs ':::' as you haven't set the values of these variables anywhere prior to first checking them. Look in $_POST['guess'] as well. Link to comment https://forums.phpfreaks.com/topic/60755-solved-dice-game/#findComment-302253 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.