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