| Error on query to database | 
	
| itmoyo 
 PixelschubserThreadstarter
 
 
 
 
 
 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 
 PixelschubserThreadstarter
 
 
 
 
 
 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 
 PixelschubserThreadstarter
 
 
 
 
 
 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 
 PixelschubserThreadstarter
 
 
 
 
 
 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 |