Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#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... sad

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... sad

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

Klener schrieb:

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