Archiv verlassen und diese Seite im Standarddesign anzeigen : [VMS2] Datenbankklasse
Hier mal eine Erweiterung der Datenbankklasse vom VMS2, wenn ihr das ändert und ein SQL Befehl falsch ist, wird nicht nur Falscher SQL Befehl ausgegeben, sondern auch die genaue FEhlerbeschreibung.
Folgendes müsst ihr dafür machen:
Öffne.:
include/system/class_datenbank.php
Suche:
if (!$this->query_id) die("Falscher SQL-Query: ".$query_string);
Ersetze mit:
if (!$this->query_id) die("Falscher SQL-Query: ".$query_string." <p>".mysql_error()."</p>");
Gruß
Gremlin
KiLLzOnE
11.04.2007, 20:24
Also versteh ich das richtig? Sobald ich z.b. ein Addon falsch einbaue, zeigt er mir dann ab sofort den Fehler und eine genaue Beschreibung an??
Nein!
Wenn es z.B. Datenbankfehler gibt, dann zeigt er dir die SQL Fehler an.
Damit weist du dann eher was es ist. :)
Gruß
Gremlin
KiLLzOnE
11.04.2007, 23:33
Besten Dank, direkt mal eingebaut ^^
SebbyPHM
12.04.2007, 02:06
Es ist nicht empfehlenswert, dies so zu machen! Da dort potentielle Angreifer viele Informationen über das Datenbanksystem herausfinden können, wie z.B. die Programmierart, Spaltennamen, Inhalte, usw...
BESCHREIBUNG: Mit dieser Änderung kann man zwischen "detailierte Fehlermeldung" und "einfache Fehlermeldung" wechseln, durch das Verändern einer Variable. Man sollte die detailierte NUR einschalten, wenn man etwas umbaut oder einen Fehler sucht o.ä. und bei normalem Betrieb immer auf die "einfache Fehlermeldung" stellen.
LÖSUNG:
1. Schritt: In der Datei include/system/class_datenbank.php folgendes nach var $link_id = 0; einfügen:
var $meldungan = 0; // MySQL bei Fehler genaue Meldung? 1=an, 0=aus
2. Schritt: Ersetze in der o.g. Datei folgendes:
if (!$this->query_id) die("Falscher SQL-Query: ".$query_string);
durch dieses:
if (!$this->query_id) { if ($meldungan == 1) die ('Falscher SQL-Query: '.$query_string.' <p>'.mysql_error().'</p>'); else die ('Falscher SQL-Query: '.$query_string);
KiLLzOnE
12.04.2007, 02:40
Danke Sebby !!
Ich lass es nun wohl doch beim alten und fummel da erst garnicht dran rum :P
Sebby ;) das kann jeder der das VMS2 hat auch :) ist zwar nicht so ne große Masse, aber zur Fehlersuche ist es empfehlenswert ;) deine Methode ist natürlich auch sicherer :)
Ich sag mal so ;) meine Varianete sollte was für Testseiten sein wo nicht jeder drauf kommt ;)
SebbyPHM
12.04.2007, 09:23
Original von Gremlin
das kann jeder der das VMS2 hat auch :)
Weißt doch, sehr viele Paid4-Betreiber können nicht programmieren und bauen nur unbewusst irgendwas rum am Script und wissen nicht, was diese damit tun. Und damit dadurch erst garkeine Fehler auftreten sollten, denk ich immer gleich so ;-)
Falsch!
Es gibt nur eine Fehlermeldung wenn ein Query an die Datenbank fehlgeschlagen ist, sei es Syntaxfehler, DB nicht erreichbar etc. pp. da jedoch das Passwort vom EF nicht an die DB übergeben wird, wird das niemals ausgegeben :rolleyes:!
Die Fehlermeldungen geben auch nicht den Query an sich aus, sondern geben Fehlermeldungen wie z.B.
unknown column unbekanntes_feld in table bekannte_tabelle!
oder
table unbekannte_tabelle doesn't exist!
Gruß
Gremlin
SebbyPHM
21.04.2007, 23:23
genau ;)
Original von SebbyPHM
[CENTER]2. Schritt: Ersetze in der o.g. Datei folgendes:
if (!$this->query_id) die("Falscher SQL-Query: ".$query_string);
durch dieses:
if (!$this->query_id) { if ($meldungan == 1) die ('Falscher SQL-Query: '.$query_string.' <p>'.mysql_error().'</p>'); else die ('Falscher SQL-Query: '.$query_string);
also bei mir hat das so nicht geklappt.
Ich musste es folgendermaßen ersetzen:
if (!$this->query_id)
{
if ($meldungan == 1)
{
die ('Falscher SQL-Query: '.$query_string.' <p>'.mysql_error().'</p>');
}
else
{
die ('Falscher SQL-Query: '.$query_string);
}
}
SebbyPHM
22.04.2007, 01:09
bei mir hatte noch das zeichen } am ende gefehlt *grins*
SebbyPHM
22.04.2007, 03:16
beweise? programmiertechnisch ist das nicht denkbar, denn mit den ef-daten werden lediglich anfragen an die webseiten klamm&co gemacht, jedoch nichts in die DB eingetragen
SebbyPHM
22.04.2007, 04:59
also
ps: kannst doch persönliche daten einfach durch **** ersetzen in der "fehlermeldung"
welches Update ist das genau ? Oder besser gesagt von wann ? Die leztzen 10 Tage hab ich nämlich keins mehr gemacht...oder ich lad mir mal am besten nochmal das neue Script aus dem Kundenzentrum runter und ersetzte die Datei mal schnell !
cu, swinxx
zweithirn
22.04.2007, 15:58
Der Fehler liegt in den Schnittstellen die einfach austauschen dann sollte der Fehler weg sein.
Hmm, is aber ja eigentlich nur bei der Klamm Schnittstelle, also bei mir nicht so schlimm da ich die ja nicht nutze !
cu, Swinxx
ganz neben bei das mit dem klammkonto ist so, da fehlern in einer VMS2 version ein @ vor den abfragen in der klamm API, wenn das da ist, dann geht es... aber wenn es nicht da ist wird alles angezeigt, solte klamm nicht ereichbar sein, ich hatte es schon nebulus gemeldet, nachdem ich alles oflline getestet ahtte...
... find ich gut ... :D
ne also .... ich hab mir das vms2 ja gestern zuglegt und je mehr ich hier lese um so mehr komme ich ins grübeln :rolleyes:
Hallo
wo bekommt mann den dieses update ?
aso und warum wird kein newsletter raus gesendet das ein updat da ist oder so eine artz Verlinkung wo mann sehen kan das ein updat verfügbar ist
mit einem hinweis uber den fehler und warume s getauscht werden sollte :) :D
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.