Seite 2 von 2

Verfasst: 16.09.2005 12:30
von MichelM
dr. death hat schon recht, du willst vier werte auf eine Tabelle mit fünf spalten legen. Das geht nicht, da fehlt ein Wert.
Diese Code-Zeile ruft den Fehler in deinem Script auf:

Code: Alles auswählen

$sql = "INSERT INTO " . SMILIES_TABLE . " (code, smile_url, emoticon, smilies_order, access_level) VALUES ('" . str_replace("\'", "''", $smile_code) . "', '" . str_replace("\'", "''", $smile_url) . "', '" . str_replace("\'", "''", $smile_emotion, $order_extreme) . "', $smile_access)";
Die Erklärung zur Funktion str_replace:

str_replace ($search, $replace, $subject)

Diese Funktion ersetzt alle Vorkommen von $search innerhalb der Zeichenkette $subject durch den String $replace.

Dein 4. Wert im SQL-Befehl ist eine falscher str_replace-Befehl, da dieser 4 Argumente hat:

Code: Alles auswählen

. str_replace("\'", "''", $smile_emotion, $order_extreme)
Darin liegt der Fehler.

Verfasst: 16.09.2005 12:43
von steffi1977
das heißt ?? :oops: :oops:

Sorry aber ich versteh da nur Bahnhof :(

Verfasst: 16.09.2005 13:26
von MichelM
Nur so'ne frage, kannst du ein wenig php? Du hast ja auch schon eine ganze Menge gepostet (1003).

Also ein Bsp. für die str_replace Funktion:

Du hast eine Variable $subject, auf der liegt der String "Dies ist ein Test."
Die oben genannte Funktion sucht nun in dieser Variable $subject einen bestimmten String z.B. " " und erstetzt ihn durch einen anderen String z.B. "".

D.h.:

Code: Alles auswählen

$subject = "Dies ist ein Test"
str_replace (" ", "", $subject)
ergibt:

Code: Alles auswählen

DiesisteinTest

So kannst du alle Leerzeichen aus einem Text löschen. Mit dieser Funktion kannst du also bestimmte Zeichen löschen oder auch durch andere ersetzen.

So nun zu deinem Script.
Ich weiß, dass dort der Fehler liegt. Ich nehme mal stark an, dass der Autor dieses Scriptes einen Schusslichkeitsfehler gemacht hat.
Ich habe ja nun auch keinen Ahnung von deinem Script und kann jetzt auch nur raten.

Probier einfach mal das.

Suche

Code: Alles auswählen

str_replace("\'", "''", $smile_emotion, $order_extreme) . "', $smile_access)";
und ersetzte mit

Code: Alles auswählen

str_replace("\'", "''", $smile_emotion)  . "', $order_extreme, $smile_access)";
Diese Angaben sind jedoch ohne Gewähr :roll:

Verfasst: 16.09.2005 13:38
von steffi1977
also ich kenne php und kann schon einiges, aber solche Fälle sind für mich halt noch "Bahnhof"
Ich kann mir solche Codes nicht merken und schon gar nicht was das alles so verbindet.

Danke für deine Hilfe, ich denke das hat jetzt geklappt.
Ich kann Smilies wieder einfügen und bekomme keine Fehlermeldung mehr. :grin:

Verfasst: 16.09.2005 13:57
von MichelM
das freut mich für dich :)

hattest du eigentlich ein mod dafür aufgespielt gehabt? denn deine admin_smilies.php hatte viel mehr Code-Zeilen als meine.

Verfasst: 16.09.2005 15:21
von steffi1977
jepp ich habe 2 Mods eingebaut
smiley_permissions
smilies_order