Probleme mit mysql_real_escape_string

Probleme mit mysql_real_escape_string

am 11.08.2006 15:43:46 von Karsten Jacob

Hi NG.

vorab: alle funktioniert einwandfrei, lokal und online bei allen von mir
genutzten Providern, außer bei

1und1.

Ich habe Probleme mit der Funktion

mysql_real_escape_string

Fehlermeldung bei Anwendung dieser Funktion:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
Access denied for user 'nobody'@'localhost' (using password: NO) in
/is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
on line 231

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
A link to the server could not be established in
/is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
on line 231

"Access denied for user 'nobody'@'localhost'" verstehe ich am
allerwenigsten. Wenn ich die Funktion nicht anwende, klappt der
DB-Zugriff. Zwar nicht ordentlich, aber er klappt. Dann kanns ja nicht
daran liegen, dass die Zugangsdaten falsch sind.

Oder?

Gruß,

Karsten

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 15:56:46 von Sebastian Wessel

Karsten Jacob schrieb:
> Hi NG.
>
> vorab: alle funktioniert einwandfrei, lokal und online bei allen von mir
> genutzten Providern, außer bei
>
> 1und1.

Da hatte ich bisher nie Probleme.

> Ich habe Probleme mit der Funktion
>
> mysql_real_escape_string
>
> Fehlermeldung bei Anwendung dieser Funktion:
>
> Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
> Access denied for user 'nobody'@'localhost' (using password: NO) in
> /is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
> on line 231

Wie baust du denn die Verbindung auf?

> Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
> A link to the server could not be established in
> /is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
> on line 231
>
> "Access denied for user 'nobody'@'localhost'" verstehe ich am
> allerwenigsten. Wenn ich die Funktion nicht anwende, klappt der
> DB-Zugriff. Zwar nicht ordentlich, aber er klappt. Dann kanns ja nicht
> daran liegen, dass die Zugangsdaten falsch sind.

Der DB-Zugriff klappt nicht ordentlich? Was bedeutet das? Das ist
genauso wie eine Frau, die ein bisschen schwanger ist.

Hört sich nach einem Verbindungsaufbau an, der irgendwo abbricht bzw.
der initialisiert ist, aber auf den nicht zugegriffen wird.

MfG
Sebastian

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 16:10:20 von Frank Schenk

Karsten Jacob wrote:
> Ich habe Probleme mit der Funktion
>
> mysql_real_escape_string

Du solltest die Datenbankverbindung herstellen bevor du
mysql_real_escape_string verwendest.

> "Access denied for user 'nobody'@'localhost'" verstehe ich am
> allerwenigsten. Wenn ich die Funktion nicht anwende, klappt der
> DB-Zugriff. Zwar nicht ordentlich, aber er klappt. Dann kanns ja nicht
> daran liegen, dass die Zugangsdaten falsch sind.

Nicht ordentlich? Geht das auch verbose?

Frank

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 16:23:41 von Karsten Jacob

>> "Access denied for user 'nobody'@'localhost'" verstehe ich am
>> allerwenigsten. Wenn ich die Funktion nicht anwende, klappt der
>> DB-Zugriff. Zwar nicht ordentlich, aber er klappt. Dann kanns ja nicht
>> daran liegen, dass die Zugangsdaten falsch sind.
>
> Der DB-Zugriff klappt nicht ordentlich? Was bedeutet das? Das ist
> genauso wie eine Frau, die ein bisschen schwanger ist.
>
> Hört sich nach einem Verbindungsaufbau an, der irgendwo abbricht bzw.
> der initialisiert ist, aber auf den nicht zugegriffen wird.

Ich bekomme eine Fehlermeldung

Error 1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'XXXXXX' angelegt')' at line 1;

aber der Eintrag wird trotzdem angelegt. Das liegt daran, dass nicht
quotiert wird ohne mysql_real_escape_string und ich folgenden Wert übergebe:

"Bereich '".trim($_POST['bereich'])."' angelegt"


".trim($_POST['bereich'])." wird eben nicht quotiert, daher der Fehler,
nehme ich mal an.

Verbindungsaufbau über:

$db_connection = mysql_pconnect( DB_HOST, DB_USER, DB_PASS ) or err_log();
mysql_select_db( DB_NAME, $db_connection )or err_log();

mit den entsprechenden Werten. Und die stimmen auch garantiert.

Gruß,

Karsten

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 16:26:57 von Andre Meiske

Karsten Jacob wrote:

> Hi NG.
>
> vorab: alle funktioniert einwandfrei, lokal und online bei allen von mir
> genutzten Providern, außer bei
>
> 1und1.
>
> Ich habe Probleme mit der Funktion
>
> mysql_real_escape_string
>
> Fehlermeldung bei Anwendung dieser Funktion:
>
> Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
> Access denied for user 'nobody'@'localhost' (using password: NO) in
> /is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
> on line 231

Das Problem dürfte hier der 2. Parameter sein. Die Doku unter
http://de3.php.net/manual/de/function.mysql-real-escape-stri ng.php sagt
dazu:

--------------------------------

link_identifier

The MySQL connection. If the link identifier is not specified, the last link
opened by mysql_connect() is assumed. If no such link is found, it will try
to create one as if mysql_connect() was called with no arguments. If by
chance no connection is found or established, an E_WARNING level warning is
generated.

--------------------------------

Ich nehme mal an, dass du die Funktion aufrufst OHNE vorher eine Verbindung
aufzubauen -> PHP baut eine 'anonyme' Verbindung auf, und DIE ist bei 1und1
halt nicht vorhanden......

Ad Astra
Andre

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 16:41:37 von Karsten Jacob

Ich muss mich korrigieren:

bei hosteurope klappts nicht.

1und1 geht.

Gruß,

Karsten

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 17:03:58 von Karsten Jacob

Karsten Jacob schrieb:
> Hi NG.
>
> vorab: alle funktioniert einwandfrei, lokal und online bei allen von mir
> genutzten Providern, außer bei
>
> 1und1.
>
> Ich habe Probleme mit der Funktion
>
> mysql_real_escape_string
>
> Fehlermeldung bei Anwendung dieser Funktion:
>
> Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
> Access denied for user 'nobody'@'localhost' (using password: NO) in
> /is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
> on line 231
>
> Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
> A link to the server could not be established in
> /is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
> on line 231
>
> "Access denied for user 'nobody'@'localhost'" verstehe ich am
> allerwenigsten. Wenn ich die Funktion nicht anwende, klappt der
> DB-Zugriff. Zwar nicht ordentlich, aber er klappt. Dann kanns ja nicht
> daran liegen, dass die Zugangsdaten falsch sind.
>

Re auf mich selbst:

Ich habe

mysql_real_escape_string gegen

addslashes ausgetauscht.

Jetzt gehts. Kann ich das so einfach machen? Machen die beiden
Funktionen das Selbe?

Gruß,

Karsten

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 17:20:48 von do.not.REMOVETHAT

Karsten Jacob schrieb:

> Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
> Access denied for user 'nobody'@'localhost' (using password: NO) in
> /is/htdocs/wp1053674_08P285ARYM/www/snow/verwaltung/skripte/ monster.lib.php
> on line 231

mysql_real_escape_string erwartet eine Verbindung zum MySQL-Server. Wenn
keine da ist, dann versucht es selbst eine herzustellen (mit
Default-Werten). Das scheint nicht zu klappen.

PHP-Manual > MySQL > mysql_real_escape_string
http://de2.php.net/mysql-real-escape-string

> string mysql_real_escape_string ( string unescaped_string [, resource link_identifier] )

....und da besonders der link_identifier:

> If the link identifier is not specified, the last link opened
> by mysql_connect() is assumed. If no such link is found, it
> will try to create one as if mysql_connect() was called with
> no arguments. If by chance no connection is found or
> established, an E_WARNING level warning is generated.

Es ist davon auszugehen, dass zu dem Zeitpunkt, an dem Du m.r.e.s.
aufrufst noch keine Connection zum MySQL-Server da ist.

Lösung:

Baue Deinen Code so um, dass zuerst die Verbindung zum MySQL-Server
hergestellt wird und dann erst m.r.e.s. verwendet wird.

Grüße, Matthias

Re: Probleme mit mysql_real_escape_string

am 11.08.2006 17:52:30 von Frank Schenk

Karsten Jacob wrote:
> Re auf mich selbst:

Hallo Ingrid,

> Ich habe
>=20
> mysql_real_escape_string gegen
>=20
> addslashes ausgetauscht.
>=20
> Jetzt gehts. Kann ich das so einfach machen? Machen die beiden=20
> Funktionen das Selbe?

Nein, rtfm.

Liest du auch oder schreibst du nur? Hab dir vor fast 2 Stunden den=20
entsprechenden Hinweis gegeben, Matthias hat es dir inzwischen noch=20
einmal detailliert erklärt.


Frank