News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 3
Seite [1]
pico


Beginner




Beiträge: 7
# Thema - 02.02.2012 um 15:46 Uhr
sqlsrv.php enthält einen Fehler, der dazu führt, dass fälschlicherweise keine Ergebnisse zurückgegeben werden.

Zeile 172:
if(!empty($max) OR $sql_order == '{random}') {

Wenn $sql_order 0 (oder ein anderer Integer) ist, führt der Vergleich mit einer Zeichenkette dazu, dass die Zeichenkette in eine Zahl umgewandelt wird. '{random}' als Zahl ist aber 0. Wenn $sql_order 0 ist, ergbit $sql_order == '{random}' true.

Siehe:

http://php.net/manual/en/language.operators.comparison.php
"If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically. These rules also apply to the switch statement. "

http://www.php.net/manual/en/language.types.string.php#language.types.string.con version
"The value is given by the initial portion of the string. If the string starts with valid numeric data, this will be the value used. Otherwise, the value will be 0 (zero)."

Lösung: statt == lieber strcmp verwenden, also:

if(!empty($max) OR !strcmp($sql_order, '{random}'))


Patch ist angehängt.

Grüße,
pico
Dateianhänge:
txt sqlsrv.php.patch.txt (529 Byte - 28 mal heruntergeladen )
Inaktiv
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 1 - 02.02.2012 um 15:51 Uhr
das random wird ja im sql query nicht zum einsatz kommen, clansphere behandelt solche {platzhalter} vorher und tauscht diese aus. dadurch wird z.b. die kompatibilität zu mehreren rdbms ermöglicht in bereichen wo der sql base 2003 standard noch nicht angekommen oder umgesetzt ist.

edit: falsch verstanden zuerst, aber tut ein === es sonst nicht genauso?


------------------
ClanSphere - professional clan care starts here

Zuletzt editiert von hajo ClanSphere Team am 02.02.2012 um 15:58 Uhr (1x Editiert)
Inaktiv
|
pico
Thread-Ersteller


Beginner




Beiträge: 7
# Antwort: 2 - 02.02.2012 um 16:10 Uhr
02.02.2012 um 15:51 Uhr - hajo:
edit: falsch verstanden zuerst, aber tut ein === es sonst nicht genauso?

Ja, das geht auch. Nur == halt nicht.


Inaktiv
|
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 3 - 02.02.2012 um 16:43 Uhr
http://trac.csphere.eu/csp/changeset/5019

danke nochmal fürs melden des problems


------------------
ClanSphere - professional clan care starts here

Inaktiv
|

Dieses Thema wurde von Deaktiviert PM geschlossen.

Antworten: 3
Seite [1]




ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo