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 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. 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! 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
Archived
This topic is now archived and is closed to further replies.