Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Error on query to database Antworten
Error on query to database

itmoyo
Pixelschubser


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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


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


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


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
Quasselstrippe


Beiträge: 391


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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

itmoyo
Pixelschubser


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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

raiserle
Fachidiot


Beiträge: 144


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   E-Mail   Website   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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

raiserle
Fachidiot


Beiträge: 144


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   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben