Skip to main content
Inspiring
February 28, 2007
Question

fatal error

  • February 28, 2007
  • 2 replies
  • 339 views
i have this code :
<?php # Script 8.1 - mysql_connect.php

// This file contains the database access information.
// This file also establishes a connection to MySQL and selects the database. function.
// This file also defines the escape_data()

// Set the database access information as constants.
DEFINE ('DB_USER', 'therainb');
DEFINE ('DB_PASSWORD', 'twocats');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'therainb_Testingphp');

// Make the connection.
$dbc = @6688122_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error() );

// Select the database.
@6688122_select_db (DB_NAME) OR die ('Could not select the database: ' . mysql_error() );

// Create a function for escaping the data.
function escape_data ($data) {

// Address Magic Quotes.
if (ini_get('magic_quotes_gpc')) {
$data = stripslashes($data);
}

// check for mysql_real_escape_string() support.
if (function_exists('mysql_real_escape_string')) {
global $dbc; // Need the connection.

$data = mysql_real_escape_string(trim($data), $dbc);
} else {
$data = mysql_escape_string(trim($data));
}

// Return the escaped value.
return $data;

} // End of function
?>


when i run it, i get this error :

Fatal error: Cannot redeclare escape_data() (previously declared in /home/therainb/public_html/myphp2/mysql_connect.php:20) in /home/therainb/public_html/myphp2/password.php on line 15

can someone help please?

This topic has been closed for replies.

2 replies

Inspiring
February 28, 2007
<?php # Script 7.8 - password.php
// This page lets a user change their password.

// Set the page title and include the HTML header.
$page_title = 'Change Your Password';
include ('./includes/header.html');

// Check if the form has been submitted.
if (isset($_POST['submitted'])) {

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

// Create a function for escaping the data.
function escape_data ($data) {
global $dbc; // Need the connection.
if (ini_get('magic_quotes_gpc')) {
$data = stripslashes($data);
}
return mysql_real_escape_string(trim($data), $dbc);
} // End of function.

$errors = array(); // Initialize error array.

// Check for an email address.
if (empty($_POST['email'])) {
$errors[] = 'You forgot to enter your email address.';
} else {
$e = escape_data($_POST['email']);
}

// Check for an existing password.
if (empty($_POST['password'])) {
$errors[] = 'You forgot to enter your existing password.';
} else {
$p = escape_data($_POST['password']);
}

// Check for a password and match against the confirmed password.
if (!empty($_POST['password1'])) {
if ($_POST['password1'] != $_POST['password2']) {
$errors[] = 'Your new password did not match the confirmed new password.';
} else {
$np = escape_data($_POST['password1']);
}
} else {
$errors[] = 'You forgot to enter your new password.';
}

if (empty($errors)) { // If everything's OK.

// Check that they've entered the right email address/password combination.
$query = "SELECT user_id FROM users WHERE (email='$e' AND password=SHA('$p') )";
$result = mysql_query($query);
$num = mysql_num_rows($result);
if (mysql_num_rows($result) == 1) { // Match was made.

// Get the user_id.
$row = mysql_fetch_array($result, MYSQL_NUM);

// Make the UPDATE query.
$query = "UPDATE users SET password=SHA('$np') WHERE user_id=$row[0]";
$result = @mysql_query ($query);
if (mysql_affected_rows() == 1) { // If it ran OK.

// Send an email, if desired.

// Print a message.
echo '<h1 id="mainhead">Thank you!</h1>
<p>Your password has been updated. In chapter 9 you will actually be able to log in!</p><p><br /></p>';

// Include the footer and quit the script (to not show the form).
include ('./includes/footer.html');
exit();

} else { // If it did not run OK.
echo '<h1 id="mainhead">System Error</h1>
<p class="error">Your password could not be changed due to a system error. We apologize for any inconvenience.</p>'; // Public message.
echo '<p>' . mysql_error() . '<br /><br />Query: ' . $query . '</p>'; // Debugging message.
include ('./includes/footer.html');
exit();
}

} else { // Invalid email address/password combination.
echo '<h1 id="mainhead">Errot!</h1>
<p class="error">The email address and password do not match those on file.</p>';
}

} else { // Report the errors.

echo '<h1 id="mainhead"Error!</h1>
<p class="error">The following error(s) occurred:<br />';
foreach ($errors as $msg) { // Print each error.
echo " - $msg<br />\n";
}
echo '</p><p>Please try again.></p><p><br /></p>';

} // End of if (empty($errors)) IF.

mysql_close(); // Close the database connection.

} // End of the main Submit conditional.
?>
<h2>Change Your Password</h2>
<form action="password.php" method="post">
<p>Email Address: <input type="text" name="email" size="20" maxlength="40" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /></p>
<p>Current Password: <input type="password" name="password" size="10" maxlength="20" /></p>
<p>New Password: <input type="password" name="password1" size="10" maxlength="20" /></p>
<p>Confirm New Password: <input type="password" name="password2" size="10" maxlength="20" /></p>
<p><input type="submit" name="submit" value="Change My Password" /></p>
<input type="hidden" name="submitted" value="TRUE" />
</form>
<?php
include ('./includes/footer.html');
?>


so if i just remove the :

require_once ('mysql_connect.php');

it that what u r saying ?

Thanks Gareth
Inspiring
February 28, 2007
Whats its telling you is that you have the same function twice, named
redeclare_escape_data()

So the function is first defined in mysql_connect.php, and then your trying
to add in another function with the same name in password.php.

If the function is exactly the same in both files, remove it from
password.php and the code will still work, as it will use the instance from
mysql_connect.php


--
Gareth
http://www.phploginsuite.co.uk/
PHP Login Suite V2 - 34 Server Behaviors to build a complete Login system.