Jump to content

[SOLVED] Call to functions.php returns strange answer...


DEVILofDARKNESS

Recommended Posts

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
Share on other sites

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
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.