On Wed, Jan 13, 2010 at 11:39:18AM -0800, Richard S. Crawford wrote: > Here is a snippet of code that is going to be the death of me: > > ------------------------------------------------------------ > // Create a new project > $projectcode = strtoupper(addslashes($_POST['projectcode'])); // project > code > > // Make sure the project code is unique > if (!$existingproject = mysql_query("select * from pb_versions where > projectcode like '".strtoupper($projectcode)."'")) { > die ("Could not check for existing project code!<br />".mysql_error()); > } > > $numprojects = mysql_num_rows($existingproject); > > if ($numprojects > 0) { > $pid = mysql_result($existingproject,0,"versionID"); > header("Location:managebudget.php?e=1&pid=$pid"); > } > ------------------------------------------------------------ > > Now, even if $numprojects is 1, 2, 3, etc., the header() command is not > executed. Strangely, a header("Location") command later on in the script > *is* executed. I've output the value of $numprojects, so I know that it's > greater than 0, so the command > header("Location:managebudget.php?e=1&pid=$pid"); *should* be executed... > but it isn't. (Weirdly, if I put a die() command *after* this header() > command, it works... but it seems pathologically inelegant to do so.) > > Obviously, I'm missing something incredibly basic. Can anyone help me figure > this out? For one thing, I'd put a space after "Location:" in the header() call. But I've found that this call will sometimes fail (or *look* like it fails) unless you put something like exit(); after it. This terminates execution and forces the script to transfer control as it should. Just make it a habit to always include and exit(); call after your final header() call. Paul -- Paul M. Foster -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php