Looking at the URL:
        guess.php?guessnumb=21&guessnumb=&tries=1
I notice that 'guessnumb' is in there twice.
PHP will use the last one in that list

I notice that in your form, you have two <input>s with the same name
    <input type="text" name="guessnumb" size="5" maxlength="3" />
    <input type="hidden" name="guessnumb" value="<?php echo $guessnumb; ?>"
/>

change one of these to something else and that should do the trick

HTH
Martin

> -----Original Message-----
> From: Jonno Agnew [mailto:[EMAIL PROTECTED]
> Sent: Friday, 23 January 2004 7:16 AM
> To: [EMAIL PROTECTED]
> Subject: [PHP] newbie issues with control structures & HTML form
> 
> 
> 
> Hello.
> 
> OK, so I'm new and I'm doing this Useractive/O'Reilly Learn 
> PHP course 
> and they want us to make a guessing game where you have to guess a 
> number between 0-100 and get 10 tries; each time you're told if your 
> guess was higher, or lower, or just right.
> 
> I've hit a wall. Can you help me (code below)?
> 
> The way the exercise set up, guess.php is supposed to print 
> out an HTML 
> form, call itself via POST and pass along the value $guessnumb. It's 
> supposed to keep generating the form until either the correct 
> answer is 
> guessed or you've had your 10 chances to guess.
> 
> I've temporarily changed the form actions to GET to try and 
> see what my 
> script it doing. You'll notice that I made a couple of other 
> changes to 
> my code temporarily to try to help me locate and fix errors. 
> You'll see 
> that I have an HTML form at the front I labeled: Guess a 
> number between 
> A and 100, while at the back of the script the form is 
> labeled: Guess a 
> number between B and 100.
> 
> I also changed the form method to GET so I could see what the 
> form was 
> sending along in the URL; it's sending along URLs like this:
> 
> guess.php?guessnumb=21&guessnumb=&tries=1
> 
> Right now, the script is jumping to the end to form B.
> 
> I know there's an error/s in my code for the form handling as 
> $guessnumb isn't being sent correctly by the form. I also know $tries 
> isn't getting incremented. When I click the Submit button, my 
> script is 
> just printing out form B each time again without handling the 
> submitted 
> data.
> 
> Any tips?
> 
> Thanks,
> 
> 
> Jonno
> -------------------------------------
> 
> <?php
> 
> // Check if $guessnumb has been passed before
> 
> if ($guessnumb) {
> 
>                               
>                               // Check the number of tries
>       
>                               if ($tries == 11) {
>       
>                                       echo "Sorry game's 
> over. The correct answer was ".$answernumb;
>       
>                                       } else {
>       
>                                       
>                                               // Increment 
> the number of tries by 1
>       
>                                               $tries = $tries + 1;
>       
>                                       
>                                               // Check the 
> passed value $guessnumb against the answer 
> $answernumb
>                                               
>                                               if ($guessnumb 
> == $answernumb) {
>                                       
>                                               echo 
> "<i>Congratulations. You win. You are correct. Game 
> over.</i>"."<br /><br />";
>                                       
>                                               } elseif 
> ($guessnumb > $answernumb) {
>                                       
>                                               echo "<i>I'm 
> sorry. Try again. The number you are looking for is 
> actually lower.</i>"."<br /><br />";
>                                       
>                                               } else {
>                                       
>                                               echo "<i>I'm 
> sorry. Try again. The number you are looking for is 
> actually higher.</i>"."<br /><br />";
>       
>                                               }
>                                       
>                                       }
>                               
>               
>                                       // Echo the HTML form 
> so they can guess
>       
>                                       ?>
>                                               <html>
>                                                       <head>
>                                                               
> <title>The PHP Guessing Game</title>
>                                                       </head>
> 
>                                                       <body>
> 
>                                                       Guess a 
> number between A and 100.
> 
>                                                       <br />
>                                                       <br />
>       
>                                                       Make your guess:
> 
>                                                               
> <form action="guess.php" method="get">
> 
>                                                               
>       <input type="text" name="guessnumb" size="5" maxlength="3" />
>                                       
>                                                               
>       <br />
>                                       
>                                                               
>       <input type="hidden" name="guessnumb" value="<?php echo 
> $guessnumb; ?>" />
>                                       
>                                                               
>       <br />
>                                       
>                                                               
>       <input type="hidden" name="tries" value="<?php echo $tries; 
> ?>" />
>                       
>                                                               
>       <br />
>               
>                                                               
>       <input type="submit" value="guess">
>       
>                                                               </form>
>                       
>                                                       </body>
>                       
>                                               </html>
>                                               
>               <?php
> 
> } else {
> 
>       // Since $guessnumb hasn't been passed already, set the 
> random number 
> $answernumb
> 
>       $answernumb = rand (1,101);
>       
>       // Set a counter for the number of tries
>       
>       $tries = 1;
>       
>       // Echo the HTML form so they can submit their answer
> 
> 
>       ?>      
>               <html>
>                       <head>
>                               <title>The PHP Guessing Game</title>
>                       </head>
> 
>                       <body>
> 
>                       Guess a number between B and 100.
> 
>                       <br />
>                       <br />
> 
>                       Make your guess:
> 
>                               <form action="guess.php" method="get">
>                       
>                                       <input type="text" 
> name="guessnumb" size="5" maxlength="3" />
>                                       
>                                       <br />
>                                       
>                                       <input type="hidden" 
> name="guessnumb" value="<? echo $guessnumb; 
> ?>" />
>                                       
>                                       <br />
>                                       
>                                       <input type="hidden" 
> name="tries" value="<? echo $tries; ?>" />
>                       
>                                       <br />
> 
>                                       <input type="submit" 
> value="guess">
> 
>                               </form>
>                       
>                       <?php
>               
>               // A little bit of currently escaped code to 
> help me find errors
>               
>               //      echo "You guessed ".$guessnumb." and 
> have had ".$tries." tries.";
>               //      echo "The answer is ".$answernumb;
>                       
>                       ?>
>                       
>                       </body>
>                       
>               </html>
> 
> <?php
> 
> }
> 
> ?>
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to