Been down that road. I've used unset($duplicate), $duplicate="" - so I don't know. I have been going around in circles since 5 this afternoon EST with this - no matter what I do I get the same results. I'm just at a complete loss. I've even tried setting it to a letter $duplicate="T", but get the same results. I'm not a pro, but it has to be the way the variable is being returned - extra hidden characters, slashes, dots, whatever. When I do echo $duplicate - it displays 1, but when I do if($duplicate == 1) nothing happens - I even tried "1". I am so frustrated and tired right now, I just don't get this.
----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Wednesday, April 02, 2003 2:16 AM Subject: RE: [PHP-WIN] I really don't understand this? > I _THINK_ this is to do with scope. > > If you say > > elseif ($duplicate = ...) > { > } > > and this is the first use of the variable $dublicate, then $duplicate goes > out of scope at the end of the right brace. > > I could be wrong about that, but it's worth a try. See what happens if you > declare the variable $duplicate _before_ the first if(...). For example: > > $duplicate = ""; > if (...) > ... > > Jill > > > -----Original Message----- > From: ODCS [mailto:[EMAIL PROTECTED] > Sent: Wednesday, April 02, 2003 6:26 AM > To: PHP Windows > Subject: [PHP-WIN] I really don't understand this? > > > I have spent the last 8 hours (seriously) trying to figure out this stupid > piece of code, and it's just beyond me why it doesn't work. I hope someone > here can help, or even follow the code. > > I have a form where the user inputs information - the code below is the > error checking for one of the fields. The first IF statement just checks > that the filed is not empty. > > The first ELSEIF checks a function to see if the user is already in the > mysql database and returns the letter T, D or S. ** This part works fine. > > If the first ELSIF is not = to T then the second ELSEIF is checked to see if > the letter returned is D. I have checked over and over and over and over and > the letter D is being returned (I have checked the third ELSEIF and it is > the same). It appears like they are just being ignored. > > Either I am just not getting the concept, or there is something seriously > weird going on. > > Any help in solving this mystery is truely appreciated. > > if (empty($form["name"])) { $error["name"] = "*"; $message["name"] = > "Required field!"; > } > elseif($duplicate = duplicate_name($form["name"]) == "T") { > $error["name"] = "*"; $message["name"] = "Screen name already used!"; > } > elseif ($duplicate == "D") { > $error["name"] = "*"; $message["name"] = "Database error - Please try > again in a few moments!"; > } > elseif ($duplicate == "S") { > $error["name"] = "*"; $message["name"] = "Server error - Please try > again in a few moments!"; > } > > > function duplicate_name($name) { > > if (!($connect = @mysql_connect($serverhost,$serveruser,$serverpass))) { > **** These are all defined above - not included here. > $server_error = "S"; > } > > if ([EMAIL PROTECTED]($databasename)) { > $server_error = "D"; > } > > if($server_error) { $duplicate = $server_error; > } > else > { > $query = "SELECT name FROM $tablename WHERE name = '$name'"; > > if(!$query) { $duplicate = "D"; } > > else { > $result = mysql_query($query); > $line = mysql_fetch_array($result); > > if($line['name'] == $name) { $duplicate = "T"; } > > mysql_free_result($result); > mysql_close($connect); > > } > } > > echo $duplicate; ***** This shows that the variable $duplicate contains > T, D, or S. > > return($duplicate); > } > > > > -- > PHP Windows Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- > PHP Windows Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php