# Form data passed to php if statement

1. May 24, 2007

### Math Is Hard

Staff Emeritus
Howdy, tonight I was playing around with trying to pass a value from a form field and use it for an "if" statement in php.
the html:
Code (Text):

<HTML>
<TITLE>Form Test</TITLE>
<BODY>
<H1>Form Test</H1>

<form name="input" action="myscript.php" method="get">
Enter a 1 or a 2:
<input type="text" name="page_number_from_form">

<input type="submit" value="Submit">

</form>
</BODY>
</HTML>

myscript.php:
Code (Text):

#!/usr/local/bin/php
<?php
$page_number=""; if(isset($_GET["page_number_from_form"])) $page_number =$_GET["page_number_from_form"];

if($page_number="1") { echo 'Number One.'; } else if($page_number="2")
{

echo 'Number Two.';

}
else
echo 'No page number.';
?>

No matter what I type in (or don't type in) it always echos "Number One". Is there a way to pass an integer from the form field instead of text? Maybe a way to convert it?
Thanks!

2. May 24, 2007

### honestrosewater

I don't know PHP, but it's the middle of the night, so here are two shots in the dark.

Can you use "==" rather than "=" for your "if($page_number="1")" comparisons? To change type, google says there are two ways: http://www.php.net/manual/en/function.settype.php" [Broken] (links have examples). I don't know if this will help at all, but I figured it couldn't hurt too much. Good lucks. Oh, now I think about it for a second, the first option makes sense. If "=" gets interpreted as variable assignment inside of the "if" test statement, you are setting "$page_number" to "1", which explains the behavior (to me). Anywho... bedtime.

Last edited by a moderator: May 2, 2017
3. May 24, 2007

### Math Is Hard

Staff Emeritus
ah, geez. double equals again. you'd think I would learn after making that mistake in C++ about 800 times!
I knew it was going to be something embarrassingly simple.
Gracias, amiga!
And thanks for the casting links, too.