DEVILofDARKNESS Posted August 14, 2009 Share Posted August 14, 2009 I have this piece of script: include './functions.php'; //... }elseif(isset($_POST['page31'])){ $nationname = $_POST['nationname']; $username = $_POST['username']; nation_check($nationname,$username); if($error == "AA"){ $_SESSION['nationname'] = $nationname; $_SESSION['username'] = $username; $_SESSION['pass'] = $_POST['password']; header('location:./register.php?page=41'); exit(); }elseif($error == "NNA"){ $nationNA = "NationName is already in use"; }elseif($error == "NNNA"){ $nationNA = "NationName is not allowed"; }elseif($error == "UNA"){ $userNA = "UserName is already in use"; }elseif($error == "UNNA"){ $userNA = "UserName is not allowed"; }else{ echo "<script type='text/JavaScript'>alert('UnKnown Error!?')</script>;"; } //... case 31: if($prev == '2'){ echo "<form action='' method='POST'>"; echo "Nation Name: <input type='text' name='nationname'><br>" . $nationNA; echo "User Name: <input type='text' name='username'><br>" . $userNA; echo "Password: <input type='password' name='password'><p>"; echo "<input type='submit' name='page31' value='GO ON'>"; echo "</form>"; $_SESSION['prev'] = 31; }else{ echo "Please Start From Page 1"; } break; and functions.php <?php function nation_check($nationname,$username){ $error = "AA"; // All Allowed if (preg_match("/^[A-Z][a-zA-Z]*$/", $nationname, $matches)) { $query = "SELECT nation_id FROM nations WHERE nation_name = '$nationname'"; $result = mysql_query($query); if(mysql_num_rows($result) == 1){ $error = "NNA"; // Nation Not Avaible } }else{ $error = "NNNA"; // Nation Name Not Allowed } if (preg_match("/^[A-Za-z][a-zA-Z0-9_]*$/", $nationname, $matches)) { $query = "SELECT user_id FROM users WHERE user_name = '$username'"; $result = mysql_query($query); if(mysql_num_rows($result) == 1){ $error = "UNA"; // User Not Avaible } }else{ $error = "UNNA"; // User Name Not Allowed } } ?> if I insert in every field of the form the string: "peer" it give's me the javascript pop-up telling their is an unknown error I really dunno why, I should get at least one $error from the functions.php Quote Link to comment https://forums.phpfreaks.com/topic/170267-solved-call-to-functionsphp-returns-strange-answer/ Share on other sites More sharing options...
KevinM1 Posted August 14, 2009 Share Posted August 14, 2009 It looks like a scope issue. $error is defined within your function's local scope, so it's unavailable to any higher level of scope. A quick fix would be to modify your function to return $error. You can then assign that error to a variable in the higher scope. Using code - The end of nation_check: return $error; Inside your if-conditional: $error = nation_check($nationname, $username); If that doesn't fix it, print_r $error so you can see what's inside of it. Quote Link to comment https://forums.phpfreaks.com/topic/170267-solved-call-to-functionsphp-returns-strange-answer/#findComment-898165 Share on other sites More sharing options...
DEVILofDARKNESS Posted August 14, 2009 Author Share Posted August 14, 2009 Thanks! Quote Link to comment https://forums.phpfreaks.com/topic/170267-solved-call-to-functionsphp-returns-strange-answer/#findComment-898172 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.