Glob Design Info wrote:

> On 4/21/13 3:27 PM, Stuart Dallas wrote:
>> On 21 Apr 2013, at 20:29, Glob Design Info <> wrote:
>>> If that is the case then why does logging in with exactly the same
>>> params from a UNIX shell work fine? Command line login supposedly would
>>> be adding the @localhost or @IP_address as well but isn't. Only when I
>>> pass the variables to the script is that happening.
>> What makes you so sure it's not?
>> It is. I promise you it is. You're not seeing it because you're not
>> getting an error logging in. Do it on the command line again, but use a
>> username that doesn't exist and you will see the host it's adding in the
>> error message.
> Indeed you are correct:
> Last login: Sun Apr 21 15:41:10 on ttys000
> iMac-333:~ glob$ sudo mysql
> --port=8904 --user=fakeuser --password=somepassword
> Password:
> Warning: Using a password on the command line interface can be insecure.
> ERROR 1045 (28000): Access denied for user
> 'fakeuser'@'' (using password: YES)
> iMac-333:~ glob$
>>> I am doing exactly as you stated:
>>>> mysql_connect('localhost', $_POST['username'], $_POST['password']);
>>> Except that I am first storing $_POST['username'] in local $user and
>>> $_POST['password'] in local $pass first and then passing those to
>>> mysql_connect. And I am connecting to a remote server, not localhost.
>> Side note: why are you putting them in other variables first when you're
>> only going to use them in that one place? It's a waste of memory. It's a
>> minor niggle but it's a pet hate of mine.
> I am using them in other places - printing them on the response page to
> see their values/show the user who logged in, etc.
>>> I have already documented both the exact HTML and PHP code in this
>>> thread and so see no need to post it elsewhere.
>> And you're saying that when, instead of using $_POST variables you
>> hard-code the username and password in the script it work? I doubt it.
> I can assure you it does. However, I may have found the problem: the
> port. As a security measure the BaaS provider appears to have changed
> MySQL to a non-standard port. So............
> On the command line:
> sudo mysql --port=8904
> --user=<realuser> --password=<realpass>
> WORKS perfectly - entering the MySQL Monitor.
> However, on the same host, same command line:
> sudo mysql --user=<realuser>
> --password=<realpass>
> Does NOT work - returning an error that the host is not found.
> So it appears to be the port, which begs the obvious question: is there
> a way to tell mysql_connect() to use a different port?

Yes - please see the documentation page for mysql_connect, in particular the 
"Server parameters" part.

I assume you have taken notice of the warnings in the documentation about 
deprecation of the mysql_ functions in favour of mysqli_ or PDO.

David Robley

Multitasking: Reading in the bathroom

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to