Everything works on the result page, but saving to database, for some reason I get these errors on the result page, yet I know, all the database login info is correct.
PHP Code:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'XXXXX@'localhost (using password: YES) in /home/.../results.php on line 16
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/.../results.php on line 17
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/.../results.php on line 31
## Save the results of this test to the database, if enabled
if($config->{'database'}->{'enable'}) {
$ip_matches = $config->{'database'}->{'ip_matches'};
if( (! $ip_matches) || ($ip_matches && preg_match("/$ip_matches/",$_SERVER['REMOTE_ADDR'])) ) {
Debug("Saving to database");
$dbh = mysql_connect(
$config->{'database'}->{'host'},
$config->{'database'}->{'user'},
$config->{'database'}->{'password'}
);
$dbs = mysql_select_db( $config->{'database'}->{'database'}, $dbh);
$table = $config->{'database'}->{'table'};
$ip = $_SERVER['REMOTE_ADDR'];
$upspeed = addslashes($_GET['upspeed']);
$downspeed = addslashes($_GET['downspeed']);
$sql = "
INSERT INTO `$table`
SET
`ip_string` = '$ip',
`ip` = INET_ATON('$ip'),
`timestamp` = NOW(),
`upspeed` = '$upspeed',
`downspeed` = '$downspeed'
";
mysql_query($sql,$dbh);
}
}
PHP Code:
// this function located in common.php
function ReadConfig($config_file) {
global $config;
$lines = file($config_file);
foreach ($lines as $line_num => $line) {
$line = rtrim(preg_replace("/#.*/","",$line));
if(preg_match("/\[.*\]/", $line, $parts)) {
$section = $parts[0];
$section = preg_replace("/[\[\]]/","",$section);
} elseif (preg_match("/=/",$line)) {
list($var,$value) = split('=',$line);
$var = preg_replace('/ $/','',$var);
$value = preg_replace('/^ +/','',$value);
$config->{$section}->{$var} = $value;
}
}
}
and below is my settings from speedtest.cfg
Code:
## Set to 1 to enable
enable = 1
host = localhost
database = testdb
user = testuser
password = testpass
table = testtable
## Regular expression to match to save results to the database
ip_matches =
Don't even need to go over the code; the error is very clear:
Code:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'XXXXX@'localhost (using password: YES) in /home/.../results.php on line 16
Now, you specify that the user is valid, BUT! Are you sure its valid for 'XXXXX'@localhost and not just 'XXXXX'@%? These are distinct user accounts depending on if the connection is local or remote.
Don't even need to go over the code; the error is very clear:
Code:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'XXXXX@'localhost (using password: YES) in /home/.../results.php on line 16
Now, you specify that the user is valid, BUT! Are you sure its valid for 'XXXXX'@localhost and not just 'XXXXX'@%? These are distinct user accounts depending on if the connection is local or remote.
Hi Fou
That user error was just redacted, before posting
I just double checked again, login info is correct
So, the problem is fixed then yes? The only error you have here is with a connection to the database (although I am relying on the error reporting to state the error).
So, the problem is fixed then yes? The only error you have here is with a connection to the database (although I am relying on the error reporting to state the error).
No, I didn't get this yet, this is unreal, I have been working with complex functions all night, and the one thing that stumps me, is connecting to a simple database. I am going to close this notebook, make some coffee. and take another fresh look later.
Then we go back to post #2.
The problem is the user you have specified does NOT have privileges on this database server. I mentioned as well that there is a difference between user@localhost and user@%. You must ensure that the user has been provided correctly for localhost and not just for %.
Also, make sure you dump your $config to verify that the data in it is correct. It doesn't look like it should be to me; these are using object dereferencing, but I don't see anywhere that these have been created as objects.