ERLEDIGT
NEIN
NEIN
ANTWORTEN
17
17
ZUGRIFFE
597
597
EMPFEHLEN
-
Hallo liebe Leute,
ich habe ein kleines Problem. Auf unserer Webseite war folgender Fehler über dem eigentlichen Inhalt:
PHP-Code:Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'web601'@'localhost' (using password: NO) in /home/www/web601/html/include/functions_general.php on line 64
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/www/web601/html/include/functions_general.php on line 64
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'web601'@'localhost' (using password: NO) in /home/www/web601/html/include/functions_general.php on line 64
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/www/web601/html/include/functions_general.php on line 64
Da der Programmierer der Seite kaum noch Zeit hat, sich um die Seite zu kümmern muss ich mich darum kümmern aber habe leider kaum Ahnung von der Materie. Es hat jedoch scheinbar erst einmal gereicht um das Problem zu lösen ohne jedoch zu wissen, was ich denn eigentlich gemacht habe.
Ich bin einfach mal hingegangen und habe die Zeile 64 in der besagten Datei mit einem # auskommentiert und schwups war der Fehler weg und ich konnte mich auch wieder einloggen.
Nun meine Frage: Was macht diese Zeile eigentlich überhaupt? Welche Funktion habe ich der Seite jetzt "weggenommen" und - ist das etwas wichtiges?
Als ich mich einloggen wollte kam zu den obigen Fehlern noch folgender dazu und hat dafür gesorgt dass von der Seite garnichts mehr angezeigt wird:
Würde mich freuen wenn jemand den einen oder anderen Tip parat hat. Ach und noch etwas: Mysteriöser Weise kam der fehler quasi "aus dem Nichts" da an der Seite seit Monaten nichts mehr programmiert wurde. Das einzige was ich gemacht habe ist die Seite samt Datenbank vor 2 Wochen runterzuladen um es mal lokal zu installieren, was ich aber noch nicht geschafft habe.PHP-Code:Warning: Cannot modify header information - headers already sent by (output started at /home/www/web601/html/include/functions_general.php:64) in /home/www/web601/html/include/class_website.php on line 619
Vielen Dank schonmal fürs Lesen und eventuelle Hilfestellungen
-
23.03.10 09:53 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Was die Zeile 64 macht (oder auch nicht) können wir dir nicht sagen, da wir sie nicht kennen. Du müsstest den Quelltext der Seite hier reinstellen.
Was allerdings komisch ist, das du mit "#" etwas auskommentiert hast. Normalerweise nimmt man dafür entweder "//" oder "/*" bzw. "*/"
Der Fehler selber hat aber wohl nicht mit der Seite zu tun. Es sieht eher aus als ob in der Datenbank ein Passwort geändert oder neu angelegt wurde!!
Gruß ThomasSollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Was die Zeilen machen, können wir dir nicht sagen, weil wir sie nicht sehen.
mysql_real_escape_string() und access denied klingt nach einem Zugriffsfeher auf deine Datenbank.
Warning: Cannot modify header information - headers already sent by...
ist schätzungsweise der Folgefehler, weil bereits die Fehlermeldung ausgegebne wurden....---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
23.03.10 12:26 #4KillerAti Tutorials.de Gastzugang
Mahlzeit die Herren

Erst einmal ein saftiges dankeschön für eure schnellen & netten Antworten.
Hier ist die Zeile:
Warum ich # zum auskommentieren genommen habe: Im Code waren bereits andere Zeilen grün und auskommentiert durch die Raute - ich habs es dann einfach nur nachgemacht.PHP-Code:$v = mysql_real_escape_string($v);
Nochmal danke fürs Lesen und Mitdenken!
P.S.: Vielleicht ist der folgende Code im Kontext betrachtet auch noch interessant, auch die Zeile 64 ist da drin, was ich bisher daraus verstehe ist, dass irgendwelche Zeichen durch andere ersetzt werden sollen.
PHP-Code:function clean($v) {
#$s = str_replace("'", "&", $s);
#$s = str_replace('"', """, $s);
#$s = str_replace('>', ">", $s);
#$s = str_replace('<', "<", $s);
$v = str_replace("'", "", $v);
$v = str_replace('"', "", $v);
$v = str_replace('\\', "", $v);
$v = strip_tags($v);
#$v = mysql_real_escape_string($v); #( diese Zeile am 23.3.2010 ausgeblendet von Boz, wegen Fehler auf Website )
#echo $v;
#$s = str_replace('\\', "", $s);
#$s = str_replace('\\', "\", $s);
#$s = sql_quote($s);
#$s = strip_tags($s);
return $v;
}
function sql_quote( $value ) {
if( get_magic_quotes_gpc() )
{
$value = stripslashes( $value );
}
//check if this function exists
if( function_exists( "mysql_real_escape_string" ) )
{
$value = mysql_real_escape_string( $value );
}
//for PHP version < 4.3.0 use addslashes
else
{
$value = addslashes( $value );
}
return $value;
}
Oops jetzt hab ich mich doch glatt mit dem falschen Account eingeloggt. Bitte lasst euch nicht irritieren - ich bin es. Ich dachte der Account wäre schon gelöscht.
-
So jetzt bin ich wieder mit dem richtigen Account drin, KillerAti heisst jetzt Atilla115 - sonst ändert sich nix.
Ich freue mich auf eure Antworten. 1000Dank schonmal im Vorraus.
-
23.03.10 12:42 #6
- Registriert seit
- Nov 2007
- Beiträge
- 94
Je nachdem wer von euch den Webspace bezahlt oder bestellt hat, aber derjenige hat bestimmt auch die Daten zur Mysql DB bekommen, falls sie vom Host eingerichtet eingerichtet wurde, was laut dem web601 sehr danach aussieht.
Am besten in diesen unterlagen suchen, ob überhaupt der Benutzername stimmt. Ansonsten denjenigen der den zugriff managend fragen ob der Account ein Passwort hat, da der Code versucht sich ohne Passwort einzuloggen.
Liebe Grüße
NoUse4aNick
-
Hallo NoUse4aNick,
danke für deine Antwort.
Also den Webspace habe ich bestellt, der Username stimmt auch und das Passwort habe ich auch vorliegen.
Es wird auch eigentlich verwendet. In der config Datei ist es zumindest definiv eingetragen und es besteht auch eine Verbindung da sonst die Inhalte der Seite nicht angezeigt werden könnten. Es gibt nur Probleme wenn ich sie auskommentierte Zeile wieder aktiviere.
Gruß, Atilla
-
24.03.10 07:45 #8
Hallo!
Komisch ja, aber nur weil es (in PHP) ungewohnt ist.
Verboten ist die Raute jedenfalls nicht, siehe PHP-Manual.
Daran würde ich mich auch halten, einfach weil es ein allgemein üblicher "Standard" ist.
Gruss Dr DauSchri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
-
24.03.10 08:57 #10
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Kann es sein das sich diese beiden Beiträge irgendwie widersprechen!Also den Webspace habe ich bestellt, der Username stimmt auch und das Passwort habe ich auch vorliegen.
So wie es aussieht (und NoUse4aNick auch geschrieben hat), wird versucht eine Anmeldung ohne Passwort durchzuführen. Du schreibst aber das du ein Passwort hast (und dann wohl auch zur Anmeldung verwendest).
Das passt doch nicht.
Gruß ThomasSollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Sie widersprechen sich, richtig.
Aber trotzdem ist es so. Es muss dann wohl 2 Abfragen geben. Die Datenbank ist zu 100% mit Passwortabfrage.
Ist aber diese Zeile 64 aktiv sagt er mir dass er nicht konnektieren kann und dass angeblich keine Passwort
Abfrage existiert.
Aber das ist ja eine typische Eigenschaft von Fehlern, etwas passt nicht.
Und ich versuche der Sache auf die
Schliche zu kommen, was nicht passt, und warum es das tut. Ich weiß nur nicht wo ich anfangen soll.
ich habe versucht im Code nach:
...zu suchen doch das kommt wohl irgendwo vom System meines Hosters. Ich weiß grad nicht weiter, aberPHP-Code:Access denied for user 'web601'@'localhost' (using password: NO)
Hauptsache der Fehler kommt nicht. Sonst noch Ideen wonach ich suchen sollte?
Grüße, Atilla
-
24.03.10 11:01 #12
- Registriert seit
- Nov 2007
- Beiträge
- 94
Durchsuch doich deinen Code mal nach dem Wort "mysql_connect"
Es werden warscheinlich mehrere einträge auftauchen, jedoch müsste bei allen in etwa folgendermaßen der code aussehen
Wobei die Variablen natürlich warscheinlich anders heisen, oder eventuell sogar hardcoded deine Daten darin vorhanden sind.PHP-Code:mysqlconnect($host,$user,$pw);
sollte bei einer dieser abfrage die 3te variable fehlen ergänze sie, ansonsten suche die jeweiligen Variablen des Befehles und prüfe wo sie ihre Werte herbekommen und vorallem welche.
Liebe Grüße
NoUse4aNick
-
Mahlzeit und vielen Dank für den Tip.

Also ich habe nach den Sachen gesucht und habe 4 Einträge mit mysql_connect gefunden.
Überall sind alle 3 Variablen user, host und pw eingetragen.
Hinter jeder dieser Zeilen steht zum Beispiel:
Nirgendwo steht aberPHP-Code:or die ("verbindung fehlgeschlagen");
- auch im kompletten Code nicht 1 einziges Mal.PHP-Code:"Access denied"
Was mich auch stutzig macht ist, dass ja eigentlich nichts verändert wurde.
Aber ich habe eine lauwarme Spur
Ich habe folgendes auf php.net gefunden:
" mysql_real_escape_string() ruft die Funktion mysql_real_escape_string der MySQL-Bibliothek auf, die folgende Zeichen mit einem Backslash ('\') versieht: \x00, \n, \r, \, ', " und \x1a.
Die Funktion muss immer (mit wenigen Ausnahmen) verwendet werden, um Daten abzusichern, bevor sie per Query an MySQL übermittelt werden. "
und etwas weiter unten:
"Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt."
Ist der fette unterstrichene Bereich nicht vielleicht der Grund dafür dass er sich versucht, ohne Angaben vom Passort (bzw. Argumenten), zu verbinden. Einfach, weil er keine Verbindung findet.
Das ganze scheint ja schon wichtig zu sein, denn weiter unten heißt es:
"Hinweis: Wenn die Funktion nicht verwendet wird, um die Daten zu maskieren, ist der Query anfällig für SQL Injection Angriffe. "
Grüße und nochmal vielen Dank für eure Bemühungen,
Atilla
-
Hallo nochmal Sven Mintel,
deine Antwort habe ich anfangs übersehen und jetzt erst wahrgenommen.
Wie könnte ich den überprüfen ob, vor dem Zeitpunkt wo die Funktion aufgerufen wird
die Verbindung schon steht?
Danke für eure Geduld!
-
24.03.10 13:36 #15
- Registriert seit
- Nov 2007
- Beiträge
- 94
Das du nirgends die Fehlermeldung "Acces Denied" findest, liegt daran das das ein Fehler ist der nicht vom Php Script selbst abgefangen und ausgegeben wird durch "or die", sondern ein unbehandelter fehler der eine standart fehler meldung gibt, da der Fehler nicht abggefangen wird.
Du könntest beispielsweise überprüfen ob es eine Funktion gibt die sich mit der sql datenbank verbindet, was meistens der Fall ist. Dazu suchst du am besten nochmal nach den mysql_connect befehlen, und überprüfst ob sie in einem function block stehen, das könnte in etwa so aussehen:
Sollte dies der Fall sein, dann überprüfe noch bei deinen Codezeilen bei welchen der Fehler auftritt, ob vorher ein solcher funktionsaufruf vorhanden ist.PHP-Code:function verbinden {
//code
$connection = mysql_connect($params);
return($connection);
}
Liebe Grüße
NoUse4aNick
Ähnliche Themen
-
$_Request erfolgreich obwohl nichts in der Url steht
Von rollerueckwaerts im Forum PHPAntworten: 2Letzter Beitrag: 05.06.08, 07:50 -
innerHTML funktioniert nur, wenn in der Textarea nichts verändert wurde.
Von Nord-Süd-Richtung im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 08.03.08, 23:44 -
Welches Dropdown Feld wurde verändert?
Von heikomi im Forum PHPAntworten: 8Letzter Beitrag: 04.01.08, 21:30 -
Fehler: Bild-> Einstellungen verändert -> nichts geht mehr.
Von serix im Forum PhotoshopAntworten: 2Letzter Beitrag: 16.07.04, 07:37 -
Nichts verändert sich
Von GErD im Forum JavaAntworten: 1Letzter Beitrag: 11.09.03, 14:56





Zitieren



Login






[PHP][Snippet] Array zu XML konvertieren