Call to undefined function


#1

Getting this error alot lately… not sure why… any idea’s…

Fatal error: Call to undefined function: escape_data() in /var/www/html/new/12/html/login.php on line 19


#2

Tell us more about the origin of the script you are running.


#3

Well now that i look around it looks like alot of the scripts im working with here dont work have all the functions with this book im using. Im running a redhat 7.3 with apache 2.0.40 and php 4.2.2.


#4

The called function is a user defined one. The error is either a typo somewhere or the file containing the function is not included. The server configuration has nothing to do with the problem.


#5

Well the reason i think its all server related is cause i have some other scripts that arent working
[php]

Predefined Variables <?php

Script 1.6 - predefined.php

// Echo the script name.
echo “You are running the file $PHP_SELF.

n”;

// Echo the user’s information.
echo ‘You are viewing this page using:
’, $HTTP_USER_AGENT, '
from the IP address ', $REMOTE_ADDR;
?>

[/php]

Is also not working… Its not showing any of the data that it should be showing. Unless there is a setting i have turned off?? Any idea’s?[/code]


#6

Oh great, an age old problem… I thought we were finally done with that one…

Read the PHP 4.2 release note, the problem is explained in there.


#7

ok cool i got that taken care of but still getting that error when trying to get these series of scripts to run. Basicly im trying to make a registration page then login page. After the user hits register i get that error. heres the registration page code
[php]

<?php # Script 12.6 - register.php // This is the registration page for the site. // Include the configuration file for error management and such. require_once ('includes/config.inc'); // Set the page title and include the HTML header. $page_title = 'Register'; include ('includes/header.html'); if (isset($_POST['submit'])) { // Handle the form. require_once ('../mysql_connect.php'); // Connect to the database. // Check for a first name. if (eregi ("^[[:alpha:].' -]{2,15}$", stripslashes(trim($_POST['first_name'])))) { $fn = escape_data($_POST['first_name']); } else { $fn = FALSE; echo '

Please enter your first name!

'; } // Check for a last name. if (eregi ("^[[:alpha:].' -]{2,30}$", stripslashes(trim($_POST['last_name'])))) { $ln = escape_data($_POST['last_name']); } else { $ln = FALSE; echo '

Please enter your last name!

'; } // Check for an email address. if (eregi ("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]{2,4}$", stripslashes(trim($_POST['email'])))) { $e = escape_data($_POST['email']); } else { $e = FALSE; echo '

Please enter a valid email address!

'; } // Check for a username. if (eregi ("^[[:alnum:]_]{4,20}$", stripslashes(trim($_POST['username'])))) { $u = escape_data($_POST['username']); } else { $u = FALSE; echo '

Please enter a valid username!

'; } // Check for a password and match against the confirmed password. if (eregi ("^[[:alnum:]]{4,20}$", stripslashes(trim($_POST['password1'])))) { if ($_POST['password1'] == $_POST['password2']) { $p = escape_data($_POST['password1']); } else { $p = FALSE; echo '

Your password did not match the confirmed password!

'; } } else { $p = FALSE; echo '

Please enter a valid password!

'; } if ($fn && $ln && $e && $u && $p) { // If everything's OK. // Make sure the username is available. $query = "SELECT user_id FROM users WHERE username='$u'"; $result = @mysql_query ($query); if (mysql_num_rows($result) == 0) { // Available. // Add the user. $query = "INSERT INTO users (username, first_name, last_name, email, password, registration_date) VALUES ('$u', '$fn', '$ln', '$e', PASSWORD('$p'), NOW() )"; $result = @mysql_query ($query); // Run the query. if ($result) { // If it ran OK. // Send an email, if desired. echo '

Thank you for registering!

'; include ('includes/footer.html'); // Include the HTML footer. exit(); } else { // If it did not run OK. // Send a message to the error log, if desired. echo '

You could not be registered due to a system error. We apologize for any inconvenience.

'; } } else { // The username is not available. echo '

That username is already taken.

'; } mysql_close(); // Close the database connection. } else { // If one of the data tests failed. echo '

Please try again.

'; } } // End of the main Submit conditional. ?>
<h1>Register</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>

<p><b>First Name:</b> <input type="text" name="first_name" size="15" maxlength="15" value="<?php if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>" /></p>

<p><b>Last Name:</b> <input type="text" name="last_name" size="30" maxlength="30" value="<?php if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>" /></p>

<p><b>Email Address:</b> <input type="text" name="email" size="40" maxlength="40" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /> </p>

<p><b>User Name:</b> <input type="text" name="username" size="10" maxlength="20" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" /> <small>Use only letters, numbers, and the underscore. Must be between 4 and 20 characters long.</small></p>

<p><b>Password:</b> <input type="password" name="password1" size="20" maxlength="20" /> <small>Use only letters and numbers. Must be between 4 and 20 characters long.</small></p>

<p><b>Confirm Password:</b> <input type="password" name="password2" size="20" maxlength="20" /></p>
</fieldset>

<div align="center"><input type="submit" name="submit" value="Register" /></div>

</form><!-- End of Form -->
<?php // Include the HTML footer. include ('includes/footer.html'); ?><?php # Script 12.6 - register.php

// This is the registration page for the site.

// Include the configuration file for error management and such.
require_once (‘includes/config.inc’);

// Set the page title and include the HTML header.
$page_title = ‘Register’;
include (‘includes/header.html’);

if (isset($_POST[‘submit’])) { // Handle the form.

require_once ('../mysql_connect.php'); // Connect to the database.

// Check for a first name.
if (eregi ("^[[:alpha:].' -]{2,15}$", stripslashes(trim($_POST['first_name'])))) {
	$fn = escape_data($_POST['first_name']);
} else {
	$fn = FALSE;
	echo '<p><font color="red" size="+1">Please enter your first name!</font></p>';
}

// Check for a last name.
if (eregi ("^[[:alpha:].' -]{2,30}$", stripslashes(trim($_POST['last_name'])))) {
	$ln = escape_data($_POST['last_name']);
} else {
	$ln = FALSE;
	echo '<p><font color="red" size="+1">Please enter your last name!</font></p>';
}

// Check for an email address.
if (eregi ("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]{2,4}$", stripslashes(trim($_POST['email'])))) {
	$e = escape_data($_POST['email']);
} else {
	$e = FALSE;
	echo '<p><font color="red" size="+1">Please enter a valid email address!</font></p>';
}

// Check for a username.
if (eregi ("^[[:alnum:]_]{4,20}$", stripslashes(trim($_POST['username'])))) {
	$u = escape_data($_POST['username']);
} else {
	$u = FALSE;
	echo '<p><font color="red" size="+1">Please enter a valid username!</font></p>';
}

// Check for a password and match against the confirmed password.
if (eregi ("^[[:alnum:]]{4,20}$", stripslashes(trim($_POST['password1'])))) {
	if ($_POST['password1'] == $_POST['password2']) {
		$p = escape_data($_POST['password1']);
	} else {
		$p = FALSE;
		echo '<p><font color="red" size="+1">Your password did not match the confirmed password!</font></p>';
	}
} else {
	$p = FALSE;
	echo '<p><font color="red" size="+1">Please enter a valid password!</font></p>';
}

if ($fn && $ln && $e && $u && $p) { // If everything's OK.

	// Make sure the username is available.
	$query = "SELECT user_id FROM users WHERE username='$u'";		
	$result = @mysql_query ($query);
	
	if (mysql_num_rows($result) == 0) { // Available.
	
		// Add the user.
		$query = "INSERT INTO users (username, first_name, last_name, email, password, registration_date) VALUES ('$u', '$fn', '$ln', '$e', PASSWORD('$p'), NOW() )";		
		$result = @mysql_query ($query); // Run the query.

		if ($result) { // If it ran OK.
		
			// Send an email, if desired.
			echo '<h3>Thank you for registering!</h3>';
			include ('includes/footer.html'); // Include the HTML footer.
			exit();				
			
		} else { // If it did not run OK.
			// Send a message to the error log, if desired.
			echo '<p><font color="red" size="+1">You could not be registered due to a system error. We apologize for any inconvenience.</font></p>'; 
		}		
		
	} else { // The username is not available.
		echo '<p><font color="red" size="+1">That username is already taken.</font></p>'; 
	}
	
	mysql_close(); // Close the database connection.

} else { // If one of the data tests failed.
	echo '<p><font color="red" size="+1">Please try again.</font></p>';		
}

} // End of the main Submit conditional.
?>

<h1>Register</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>

<p><b>First Name:</b> <input type="text" name="first_name" size="15" maxlength="15" value="<?php if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>" /></p>

<p><b>Last Name:</b> <input type="text" name="last_name" size="30" maxlength="30" value="<?php if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>" /></p>

<p><b>Email Address:</b> <input type="text" name="email" size="40" maxlength="40" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /> </p>

<p><b>User Name:</b> <input type="text" name="username" size="10" maxlength="20" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" /> <small>Use only letters, numbers, and the underscore. Must be between 4 and 20 characters long.</small></p>

<p><b>Password:</b> <input type="password" name="password1" size="20" maxlength="20" /> <small>Use only letters and numbers. Must be between 4 and 20 characters long.</small></p>

<p><b>Confirm Password:</b> <input type="password" name="password2" size="20" maxlength="20" /></p>
</fieldset>

<div align="center"><input type="submit" name="submit" value="Register" /></div>

</form><!-- End of Form -->
<?php // Include the HTML footer. include ('includes/footer.html'); ?>

[/php]

and now the login script

[php]

<?php # Script 12.7 - login.php // This is the login page for the site. // Include the configuration file for error management and such. require_once ('includes/config.inc'); // Set the page title and include the HTML header. $page_title = 'Login'; include ('includes/header.html'); if (isset($_POST['submit'])) { // Check if the form has been submitted. require_once ('../mysql_connect.php'); // Connect to the database. if (empty($_POST['username'])) { // Validate the username. $u = FALSE; echo '

You forgot to enter your username!

'; } else { $u = escape_data($_POST['username']); } if (empty($_POST['password'])) { // Validate the password. $p = FALSE; echo '

You forgot to enter your password!

'; } else { $p = escape_data($_POST['password']); } if ($u && $p) { // If everything's OK. // Query the database. $query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')"; $result = @mysql_query ($query); $row = mysql_fetch_array ($result, MYSQL_NUM); if ($row) { // A match was made. // Start the session, register the values & redirect. $_SESSION['first_name'] = $row[1]; $_SESSION['user_id'] = $row[0]; ob_end_clean(); // Delete the buffer. header ("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/index.php"); exit(); } else { // No match was made. echo '

The username and password entered do not match those on file.

'; } mysql_close(); // Close the database connection. } else { // If everything wasn't OK. echo '

Please try again.

'; } } // End of SUBMIT conditional. ?>

Login

Your browser must allow cookies in order to login.

User Name:

Password:

<?php // Include the HTML footer. include ('includes/footer.html'); ?>

[/php]

Is this cause of the global variables are still in the old code?