Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 29. Dezember 2011 20:16
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
[GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Hallo cmsms-Community,
ich meld' mich nochmal!
Ich hab' bei meinem Modul (Hangman-Spiel) jetzt eine TextArea hinzugefügt, in der ein Text über den WYSIWYG-Editor eingetragen werden können soll.
Das funktioniert solange, bis man einen "cms_selflink" einfügt. Dann kann er den Inhalt nicht mehr in die Datenbank speichern.
//in etwa so:
$content = $params['content'];
$updateSQL = 'UPDATE `db` SET `content` = \''.$content.'\' WHERE `ID` = \''.$id.'\'';
if(!$db->Execute($updateSQL)) { echo 'Fehler'; }
Das oben entspricht jetzt natürlich nicht meinem Modul-Code, aber das Problem bleibt das gleiche. Bei mir würde dann auch "Fehler" ausgegeben, sobald ich einen cms_selflink im Inhalt habe. Andernfalls speichert er alles ohne Probleme.
Hab' mich auch schonmal im News-Modul umgeguckt, da find' ich aber auch nichts, was $content nochmal extra behandeln würde...
Irgendwelche Ideen?
Danke!
Grüße
Klener
Offline
#2 29. Dezember 2011 20:44
- piratos
- arbeitet mit CMS/ms
- Registriert: 12. August 2011
- Beiträge: 545
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
man sollte für alle Strings die adodb Funktion qstr verwenden, ansonsten passiert genau das.
Beitrag geändert von piratos (29. Dezember 2011 20:44)
Offline
#3 29. Dezember 2011 20:54
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Danke für den Hinweis, leider besteht das Problem aber weiterhin.
$content = $db->qstr($params['content']);
$updateSQL = 'UPDATE `db` SET `content` = \''.$content.'\' WHERE `ID` = \''.$id.'\'';
if(!$db->Execute($updateSQL)) { echo 'Fehler'; }
Er gibt mir weiterhin einen Fehler aus, sobald ich einen internen Link einfügen möchte...
Offline
#4 29. Dezember 2011 21:41
- piratos
- arbeitet mit CMS/ms
- Registriert: 12. August 2011
- Beiträge: 545
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Und - welche Tabelle soll das Update erhalten db wird es doch wohl nicht sein.
Fehler kann man mit echo $db->ErrorMsg(); ausgeben.
Offline
#5 29. Dezember 2011 21:51
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Also mein Code sieht nun wie folgt aus:
$winMsg = $db->qstr($params['winMsg']);
$updateWinMsg = 'UPDATE `'.cms_db_prefix().'hm_lists` SET `winMsg` = \''.$winMsg.'\' WHERE `ID` = \''.$params['listID'].'\'';
if($db->Execute($updateWinMsg)) {
$smarty->assign('updateSuccess', $this->Lang('updateCustomWinMsgSuccess'));
} else {
$smarty->assign('updateSuccess', $this->Lang('updateCustomWinMsgFailure'));
echo $winMsg.'<br /><br />'.$db->ErrorMsg().'<br /><br />';
}
Im Editor (WYSIWYG abgeschaltet) steht Folgendes:
<p>Cool, du hast dich fürs Gewinnspiel qualifiziert! Folge einfach folgendem Link und gewinne mit ein bisschen Glück eine nagelneue Wii + Spiel.<br /><br /> <a href="#">Hier gehts zum Gewinnspiel-Formular!</a></p>
<p><a href="#"></a>Auf was wartest Du noch?<br /></p>
Folgender Text wird mir ausgegeben:
'
Cool, du hast dich fürs Gewinnspiel qualifiziert! Folge einfach folgendem Link und gewinne mit ein bisschen Glück eine nagelneue Wii + Spiel.Hier gehts zum Gewinnspiel-Formular!
\r\n
Auf was wartest Du noch?'
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 'hast dich fürs Gewinnspiel qualifiziert! Folge einfach folgendem Link und gewin' at line 1
Der Gewinnertext konnte nicht geändert werden
Vielen Dank!
MfG
Klener
Offline
#6 29. Dezember 2011 22:38
- piratos
- arbeitet mit CMS/ms
- Registriert: 12. August 2011
- Beiträge: 545
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Ich würde das so machen
$updateWinMsg = 'UPDATE '.cms_db_prefix().'hm_lists SET winMsg = ? WHERE ID = ?';
if($db->Execute($updateWinMsg,array($winMsg,$params['listID']))) {
........
das extra qstr entfällt da Execute das automatisch macht.
Backticks sind nicht verkehrt können aber auch entfallen.
Offline
#7 29. Dezember 2011 22:57
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Hi piratos,
vielen Dank. Jetzt funktioniert auch das! :-)
Auch gut zu wissen, dass $db->Execute() automatisch "qstr" macht.
Grüße
Klener
Offline
#8 30. Dezember 2011 12:46
- piratos
- arbeitet mit CMS/ms
- Registriert: 12. August 2011
- Beiträge: 545
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Auch gut zu wissen, dass $db->Execute() automatisch "qstr" macht.
Daran denken - das läuft nur so (und das sogar Typenabhängig) wenn man mittels array - Parameter arbeitet.
Offline
#9 30. Dezember 2011 15:58
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
Re: [GELÖST] Text mit cms_selflink in Datenbank speichern macht Probleme
Oh okay, noch besser zu wissen!
Dann hab' ich mal was wichtiges nachzuholen, dachte das CMSMS über $params das direkt irgendwie absichert.
Offline
Seiten: 1