Error on query to database |
itmoyo
Pixelschubser Threadstarter
Beiträge: 8 |
Heute habe ich mein Projekt auf ein Server hochgeladen..Alles funktioniert bis auf, wenn ich auf das link Profil klicke, dann erscheint diese Fehlermeldung:
Error on query to database: 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 'AND `user_locked` = 0)' at line 1
Query: SELECT `user_nickname`, `user_regdate`, `user_lastlogin`, `user_lastprofilechange`, `user_age`, `user_gender`,`user_singlestatus`, `user_description`, `user_like`, `user_dontlike`, `user_hobbys`, `user_icq`, `user_msn`, `user_aim`, `user_yahoo`, `user_buddy`, `profilevisits` FROM uu_users WHERE (`user_id` = AND `user_locked` = 0)
Auf meinem Lokalen Server funktioniert alles perfekt, warum nicht auf ein Webserver?
Und die Fehlermeldung bezieht sich soviel ich weiß auf diesen Code:
1:
2:
3:
4: | //General Information
$result = $db->query("SELECT `user_nickname`, `user_regdate`, `user_lastlogin`, `user_lastprofilechange`, `user_age`, `user_gender`,`user_singlestatus`, `user_description`, `user_like`, `user_dontlike`, `user_hobbys`, `user_icq`, `user_msn`, `user_aim`, `user_yahoo`, `user_buddy`, `profilevisits` FROM uu_users WHERE (`user_id` = ".$id." AND `user_locked` = 0)");
$data = mysql_fetch_array($result);
mysql_free_result($result); |
MfG Itmoyo
Diese Nachricht wurde geändert von: itmoyo |
 Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
Aus deiner Fehlermeldung: "FROM uu_users WHERE (`user_id` = AND `user_locked` = 0)"
Da wird wohl die id nicht eingesetzt.
|
 Profil
Editieren
Zitieren
|
chip
Foren-Team
Beiträge: 419 |
Könnte das selbe Problem wie in dem anderen Post sein, dass die $id per GET übergeben wird und da register_globals aus ist, kann man sie nicht über $id ansprechen. Also mal mit $_GET['id'] versuchen.
---
|
 Profil
Website
Editieren
Zitieren
|
itmoyo
Pixelschubser Threadstarter
Beiträge: 8 |
Also register_globals ist auf ON und wenn ich $id durch $_GET['id'] ersetze dann erscheint diese Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE in /home/xxx/domains/xxx/xxx/my_profile.php on line 51
|
 Profil
Editieren
Zitieren
|
itmoyo
Pixelschubser Threadstarter
Beiträge: 8 |
Also gerade habe ich gemerkt, dass auf meinem Lokalen Server register_globals auf OFF ist und auf dem Server ist es auf ON. Kann es damit was zu tun haben?
|
 Profil
Editieren
Zitieren
|
chip
Foren-Team
Beiträge: 419 |
Woher kommt denn die Variable $id?
---
Diese Nachricht wurde geändert von: chip |
 Profil
Website
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
itmoyo schrieb am 07.01.2007 14:14
Also register_globals ist auf ON und wenn ich $id durch $_GET['id'] ersetze dann erscheint diese Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE in /home/xxx/domains/xxx/xxx/my_profile.php on line 51
|
Poste mal, wie dein Code dann aussieht. Das kann nicht sein. Da musst du einen Fehler gemacht haben, dass die Meldung kommt.
|
 Profil
Editieren
Zitieren
|
itmoyo
Pixelschubser Threadstarter
Beiträge: 8 |
also danke für die antworten, dass Problem wurde gelöst. Nachdem von dem Anbieter register_globals auf OFF gesetzt wurde, kommen seitdem keine Fehlermeldungen mehr..
MfG itmoyo
|
 Profil
Editieren
Zitieren
|
jan2k_s
Pixelschubser
Beiträge: 1 |
achtung ...
wenn $id bzw. $_GET['id'] nicht überprüft wird kann da jeder was er will select'en! -> sql injection
zudem würde ich immer hochkomma verwenden
WHERE (`user_id` = ".$id." ->
WHERE (`user_id` = '".$id."'
---
Online PHP Funktionen und Tool-Sammlung: http://www.hab-leider-keine.de/
Party-Community: http://www.partyfire.de/
have fun every day - maybe you die next day
|
 Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
Single-Quotes sind für Zahlen laut SQL-Syntax nicht notwendig. Die mögliche Injection lässt sich problemlos mit mysql_real_escape behandeln, was auf jeden Fall auch gemacht werden sollte.
|
 Profil
Editieren
Zitieren
|
raiserle
Mausakrobat
Beiträge: 172 |
bitte nicht gleich schalgen.
aber, wenn magic_quotes_gpc an ist, ist dann trotzdem mysql_real_escape_string
notwendig?
weil, es werden doch sämmtliche ' zu \' maskiert
und selbst wenn \' wird doch dann raus \\\' weil, wie gesagt, magic_quotes_gpc
escaped ja schon alles.
---
Irren is Menschlich
Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!
Kameradschaft ist, wenn der
Kamerad schafft !!!!
|
 Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
magic quotes sind ein Graus, solange du halbwegs weißt, was du tust. Mit Glück kannst du die manuell abschalten mit nem ini_set (guck mal ins PHP-Handbuch). Setzt aber dann auch voraus, dass du wirklich überall mysql_real_escape benutzt. Das Problem mit den magic quotes ist, dass sie nicht SQL konform escapen. Dadurch enstehen dann halt so komische Sachen mit zu vielen Escapes etc.
|
 Profil
Editieren
Zitieren
|
raiserle
Mausakrobat
Beiträge: 172 |
danke.
ja, hast recht. manchmal passieren durch magic_quotes schon lustige dinge in der datenbank.
gruß raiserle
---
Irren is Menschlich
Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!
Kameradschaft ist, wenn der
Kamerad schafft !!!!
|
 Profil
Editieren
Zitieren
|