cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68142
Mitglieder online: 4
Gäste online: 2
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: Gelöst | Unbekannte Interpunktion

Thread: Gelöst | Unbekannte Interpunktion


09.08.2008 13:41 Uhr

 

Status: offline
Hallo Leute,

ich hab mir einen Blog programmiert. Und wenn ich jetzt versuche einen Eintrag in die Datenbank zu speichern passiert nichts. Wenn ich mir dann den MySQL Befehl ausgeben lasse, und in phpMyAdmin einfüge kommt Unbekannte Interpunktion!

Hier die Anfrage:
php:
1
$anfrage  = "INSERT INTO `blog` VALUES(NULL,".mysql_real_escape_string($bltitle)."','".mysql_real_escape_string($bltext)."',CURRENT_TIMESTAMP,'".chkonline()."')";
Hier der MySQL Befehl:
mysql:
1
INSERT INTO `blog` VALUES(NULL,Schulbeginn','Wie alle anderen Sch�ler in Hessen muss ich jetzt auch wieder in die Schule :-|\r\n\r\n6 Wochen Sommerferien sind einfach zu kurz. Am Anfang denkt man: Boa, 6 Wochen keine Schule, und am Ende: Was??, schon zu Ende?\r\nSo aber zumindest hab ich jetzt wieder Informatik :-) und der Stundenplan sieht [u]nur[/u] 31 Stunden die Woche vor.\r\n\r\nIn 3 Wochen bin ich dann auf Austausch (England), ich hoffe, dass ich von dort auch schreiben kann.',CURRENT_TIMESTAMP,'1')
Und nun noch der Fehler:
Zitat:
Fehler

Es scheint einen Fehler in Ihrer MySQL-Abfrage zu geben. Die MySQL-Fehlerausgabe, falls vorhanden, kann Ihnen auch bei der Fehleranalyse helfen.

ERROR: Unbekannte Interpunktion @ 122
STR: :-|\
SQL: INSERT INTO `blog` VALUES(NULL,Schulbeginn','Wie alle anderen Sch�ler in Hessen muss ich jetzt auch wieder in die Schule :-|\r\n\r\n6 Wochen Sommerferien sind einfach zu kurz. Am Anfang denkt man: Boa, 6 Wochen keine Schule, und am Ende: Was??, schon zu Ende?\r\nSo aber zumindest hab ich jetzt wieder Informatik :-) und der Stundenplan sieht nur 31 Stunden die Woche vor.\r\n\r\nIn 3 Wochen bin ich dann auf Austausch (England), ich hoffe, dass ich von dort auch schreiben kann.',CURRENT_TIMESTAMP,'1')


SQL-Befehl:

INSERT INTO `blog` VALUES(NULL,Schulbeginn','Wie alle anderen Sch�ler in Hessen muss ich jetzt auch wieder in die Schule :-|\r\n\r\n6 Wochen Sommerferien sind einfach zu kurz. Am Anfang denkt man: Boa, 6 Wochen keine Schule, und am Ende: Was??, schon zu Ende?\r\nSo aber zumindest hab ich jetzt wieder Informatik :-) und der Stundenplan sieht nur 31 Stunden die Woche vor.\r\n\r\nIn 3 Wochen bin ich dann auf Austausch (England), ich hoffe, dass ich von dort auch schreiben kann.',CURRENT_TIMESTAMP,'1')

MySQL meldet: Dokumentation
#1064 - 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 '','Wie alle anderen Sch�ler in Hessen muss ich jetzt auch wieder in die Schule' at line 1


Wie kann ich den Doppelpunkt maskieren?

Ein Anführungszeichen hat gefehlt  :sad: 

Neues Problem siehe unten!
2 mal bearbeitet
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
09.08.2008 13:47 Uhr

 

Status: offline
hi!
ich kann mir ehrlich gesagt kaum vorstellen, dass der fehler im doppelpunkt liegt, da ich auch schon oft doppelpunkte ohne fehler hatte ;-)
mich verwundert aber der query, weil du einfach "INSERT INTO blog VALUES('blabla')" schreibst... eigentlich heißt dass doch:
PHP:
1
2
 
$anfrage  = "INSERT INTO `blog`  (id,title,inhalt,datum,online(?)) VALUES(NULL,".mysql_real_escape_string($bltitle)."','".mysql_real_escape_string($bltext)."',CURRENT_TIMESTAMP,'".chkonline()."')";
außerdem würde ich das mysql_real_escape_string() außerhalb des querys regeln...
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
09.08.2008 14:34 Uhr

 

Status: offline
Zitat:
Ein Anführungszeichen hat gefehlt  :sad: 

Ich hab das Problem bereits gelöst  :wink: 

Bei der Anfrage hat ein Anführungszeichen gefhlt:
$anfrage = "INSERT INTO `blog` VALUES(NULL,'".mysql_real_escape_string($bltitle)."', '".mysql_real_escape_string($bltext)."',CURRENT_TIMESTAMP,'".chkonline()."')";

Edit:// Wegen der query:

Ich habe PHP mit einem Buch gelernt. Da haben die die Query so wie ich geschrieben. Ich hab dass dann beibehalten weil es funktioniert und weil ich zu faul bin, mehr zu schreiben.

So und wegen deinem Fragezeichen (online(?)): Die Funktion gibt den angemeldeten User oder false zurück  :wink: 
2 mal bearbeitet
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
09.08.2008 14:44 Uhr

 

Status: offline
hi!
und wenn chkonline() false zurück gibt wird trotzdem eingefügt?
dann kann ja jeder sachen eintragen?

cYa
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
09.08.2008 15:03 Uhr

 

Status: offline
Zitat:
hi!
und wenn chkonline() false zurück gibt wird trotzdem eingefügt?
dann kann ja jeder sachen eintragen?

cYa

Sorry, aber für wie blöd hältst du mich?
Natürlich wird vorher überprüft, ob der User angemeldet ist!  :roll: 
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
09.08.2008 15:53 Uhr

 

Status: offline
 :lol: 
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
31.08.2008 19:06 Uhr

 

Status: offline
Hab jetzt doch noch ein Problem!

Wenn ich Anführungszeichen in meinem Text habe (sowas: ') wird zusätzlich noch ein Backslash eingefügt!
Wie kann ich das verhindern, oder wie bekomme ich den wieder weg?
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
31.08.2008 19:13 Uhr

 

Status: offline
die werden vermutlich durch ein mysql_real_escape_string hinzugefuegt und das ist auch ganz gut so, sonst koennte es ja eine injection geben.

beim Auslesen must du dann die funktion stripslashes verwenden.
___________________________
see you on
--> www.moskito-rv.de
--> www.sone-works.de
31.08.2008 19:25 Uhr

 

zombie3456
Programmierer
Status: online
Zitat:
die werden vermutlich durch ein mysql_real_escape_string hinzugefuegt und das ist auch ganz gut so, sonst koennte es ja eine injection geben.

beim Auslesen must du dann die funktion stripslashes verwenden.
Naja, wenn ich das richtig verstehe, ist das nicht ganz perfekt so. Beim Auslesen können die Strings ruhig korrekt formatiert sein. Ein zusätzliches Anführungszeichen in der Datenbank und beim Auslesen erhält man, wenn magic-quotes aktiviert ist und man zusätzlich noch sauber mit mysql_real_escape_string() absichern will. Man muss daher immer eine eigene Funktion schreiben, die prüft, ob magic-quotes aktiviert ist (get_magic_quotes_gpc()).
PHP:
1
2
3
4
5
6
7
8
<?php
function secure($string) {
    $string = (string) $string;
    if (get_magic_quotes_gpc()) {
        $string = stripslashes($string);
    }
    return mysql_real_escape_string($string);
}
Du musst beachten, dass du diese Funktion nur benutzten kannst, wenn eine MySQL-Verbindung aufgebaut ist.

Zu der Aussage oben noch: Aus folgendem String:
MySQL:
1
INSERT INTO `table` (`col`) VALUES ('O\'Brian')
wird in der Datenbank
PHP:
1
2
-- col --
O'Brian
2 mal bearbeitet
___________________________
DURATIVUM | Blog zur Sprache Latein
31.08.2008 19:50 Uhr

 

Status: offline
Hä?

PHP my Admin zeigt aber folgendes an:
Zitat:
\'[galerie=12]\'


eingegeben hatte ich
Zitat:
'[galerie=12]'


Es sollte eigentlich die selbe Anfrage sein, wie im Start-Post!

Mein Problem ist, dass ich mich grad aus dem Server ausgesperrt habe, und jetzt nichts überprüfen kann. (kann also momentan nur Theorie, den Code hab ich aber hier, nur keinen Interpreter)

Edit:// In PHP.net steht, dass Magic_quotes_gpc nicht mehr aktuell ist! Heißt das, dass ich diese Funktion besser auschalte? Dann brauch ich die Funktion von zombie3456 nicht mehr, oder?
1 mal bearbeitet
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
Ähnliche Threads Forum Ähnlichkeitsgrad
 [Problem] MySQL mehrere Einträge gleichzeitig verändern geht nicht Website & Webprogrammierung 2
 TV Planer Script Probleme (erst mal erledigt) Website & Webprogrammierung 2
 [gelöst] Fragen bezüglich MySQL Website & Webprogrammierung 1
 Fehler mit ISBN in Bücherliste Lob, Kritik, Beschwerden und Wünsche 1
 [erledigt] Files aus geschützem Download unbrauchbar Website & Webprogrammierung 1
 Fehler mit Opera bei der bewertung von Threads Lob, Kritik, Beschwerden und Wünsche 1
 Postfix User-Problem Software & Betriebssysteme 1
nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung