Tag Plugin Problem?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
User avatar
moonchild
Regular
Posts: 186
Joined: Tue Nov 22, 2005 12:23 am
Location: Esslingen
Contact:

Tag Plugin Problem?

Post by moonchild » Sun Jun 19, 2011 1:13 am

Hallo,
gestern habe ich auf die Version 3.24 des serendipity_event_freetag Plugins upgedatet und jetzt das (Serendipity 1.6-alpha2 und PHP 5.2.17) beim Anklicken eines Tags - alles spanische Dörfer für mich :shock:

Was tun?:

Code: Select all

Query failed:

SELECT 
                    

                    e.id,
                    e.title,
                    e.timestamp,
                    e.comments,
                    e.exflag,
                    e.authorid,
                    e.trackbacks,
                    e.isdraft,
                    e.allow_comments,
                    e.last_modified,

                    a.realname AS author,
                    a.username AS loginname,
                    a.email
                     , e.body, e.extended
                     
                FROM
                    serendipity_entries AS e
                    LEFT JOIN serendipity_authors a
                        ON e.authorid = a.authorid
                    LEFT JOIN serendipity_entrycat ec
                        ON e.id = ec.entryid
                    LEFT JOIN serendipity_category c
                        ON ec.categoryid = c.categoryid
                    INNER JOIN serendipity_entrytags AS entrytags ON (e.id = entrytags.entryid) 
                    WHERE isdraft = 'false' AND e.timestamp <= 1308438000 AND entrytags.tag = 'stuttgart 21' COLLATE utf8_unicode_ci 
                     GROUP BY e.id
                     
                     ORDER BY timestamp DESC
                      LIMIT 10

/ COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
Bonan tagon,
Thomas Trueten

User avatar
moonchild
Regular
Posts: 186
Joined: Tue Nov 22, 2005 12:23 am
Location: Esslingen
Contact:

Re: Tag Plugin Problem?

Post by moonchild » Sun Jun 19, 2011 10:33 am

Hallo,
ich habe das Plugin downgegradet auf 3.20. Hier tritt das Problem nicht auf. :roll:
moonchild wrote:Hallo,
gestern habe ich auf die Version 3.24 des serendipity_event_freetag Plugins upgedatet und jetzt das (Serendipity 1.6-alpha2 und PHP 5.2.17) beim Anklicken eines Tags - alles spanische Dörfer für mich :shock:
Bonan tagon,
Thomas Trueten

User avatar
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Tag Plugin Problem?

Post by Timbalu » Sun Jun 19, 2011 11:40 am

Ein Rückfall auf 3.23 wäre besser. Es liegt nur am letzten Update der Collation einfügte. Dazu gibt es hier irgendwo ein Thread, suche nach COLLATE.
Du könntest deine *_entrytags mysql Tabelle von latin auf utf8_unicode_ci stellen, Damit sollte das auch gehen.
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian

User avatar
moonchild
Regular
Posts: 186
Joined: Tue Nov 22, 2005 12:23 am
Location: Esslingen
Contact:

Re: Tag Plugin Problem?

Post by moonchild » Sun Jun 19, 2011 12:52 pm

Hallo,
Danke für den Hinweis, die Umstellung der Datenbank hilft auch nicht:
Timbalu wrote:Ein Rückfall auf 3.23 wäre besser. Es liegt nur am letzten Update der Collation einfügte. Dazu gibt es hier irgendwo ein Thread, suche nach COLLATE.
Du könntest deine *_entrytags mysql Tabelle von latin auf utf8_unicode_ci stellen, Damit sollte das auch gehen.
Ich probiere das jetzt mal mit der 3.23, sofern ich die irgendwo auftreibe.

Code: Select all

Query failed:

SELECT 
                    

                    e.id,
                    e.title,
                    e.timestamp,
                    e.comments,
                    e.exflag,
                    e.authorid,
                    e.trackbacks,
                    e.isdraft,
                    e.allow_comments,
                    e.last_modified,

                    a.realname AS author,
                    a.username AS loginname,
                    a.email
                     , e.body, e.extended
                     
                FROM
                    serendipity_entries AS e
                    LEFT JOIN serendipity_authors a
                        ON e.authorid = a.authorid
                    LEFT JOIN serendipity_entrycat ec
                        ON e.id = ec.entryid
                    LEFT JOIN serendipity_category c
                        ON ec.categoryid = c.categoryid
                    INNER JOIN serendipity_entrytags AS entrytags ON (e.id = entrytags.entryid) 
                    WHERE isdraft = 'false' AND e.timestamp <= 1308480000 AND entrytags.tag = 'stuttgart 21' COLLATE utf8_unicode_ci 
                     GROUP BY e.id
                     
                     ORDER BY timestamp DESC
                      LIMIT 10

/ COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
Bonan tagon,
Thomas Trueten

User avatar
u1amo01
Regular
Posts: 267
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Re: Tag Plugin Problem?

Post by u1amo01 » Sun Jun 19, 2011 11:44 pm

Timbalu wrote:Du könntest deine *_entrytags mysql Tabelle von latin auf utf8_unicode_ci stellen, Damit sollte das auch gehen.
Scheint nicht so. Dann lautet die Fehlermeldung am Ende
"COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'"

User avatar
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Tag Plugin Problem?

Post by Timbalu » Mon Jun 20, 2011 10:58 am

Das stand da vorher auch schon und ist genau was ich meinte. Das Charset von Mysql ist auf latin1 gestellt. Da ist die Collation latin1_swedish_ci.

http://me.in-berlin.de/doc/mysql-doc/ma ... arset.html
Um korrekt arbeiten zu können sollte das charset aber auf UTF8 stehen, damit man richtig sortieren kann. Dies gilt allgemein für die gesamte Datenbank von Serendipity; CHARSET utf8 und COLLATION utf8_unicode_ci. Beim nachträglichen Umstellen der DB im Allgemeinen ist etwas Vorsicht und Kenntnis vonnöten, damit auch alles richtig konvertiert wird. Dazu gabs hier auch schon geeignete Threads und fundierte Antworten von Garvin.

ALTER TABLE tbl_name
[DEFAULT CHARACTER SET charset_name] [COLLATE collation_name]

also

ALTER TABLE serendipity_entrytags DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian

User avatar
u1amo01
Regular
Posts: 267
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Re: Tag Plugin Problem?

Post by u1amo01 » Mon Jun 20, 2011 4:28 pm

Äh, bei mir laute die Fehlermeldung zu Anfang "COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'latin1'", sorry.

Dann habe ich versucht, das auf utf8_unicode_ci umzustellen mit dem Ergebnis, dass die Fehlermeldung bei mir anschließend
"COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'"
lautete.

Weil ich mit Zeichensätzen und mysql nicht vertraut bin, habe ich als Workaround eine alte Version des Plugins installiert. (Und ehe ich mir die Datenbank verhunze, schmeiße ich lieber das Plugin raus)

User avatar
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Tag Plugin Problem?

Post by Timbalu » Mon Jun 20, 2011 5:11 pm

Kann ich verstehen und hätte es wahrscheinlich auch erstmal so gemacht.
Ansonsten eventuell mit
http://board.s9y.org/viewtopic.php?f=10 ... tf8#p95017
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian

User avatar
moonchild
Regular
Posts: 186
Joined: Tue Nov 22, 2005 12:23 am
Location: Esslingen
Contact:

Re: Tag Plugin Problem?

Post by moonchild » Tue Jun 21, 2011 1:57 pm

Hallo Allerseits,
wo bekomme ich denn die Version 3.23 des Plugins her?
moonchild wrote:Ich probiere das jetzt mal mit der 3.23, sofern ich die irgendwo auftreibe.
Bonan tagon,
Thomas Trueten

User avatar
seraphyn
Regular
Posts: 211
Joined: Fri Dec 01, 2006 9:42 am
Contact:

Re: Tag Plugin Problem?

Post by seraphyn » Tue Jun 21, 2011 3:51 pm

es funktioniert mit:

Code: Select all

ALTER TABLE serendipity_entrytags DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
In phpymadmin > Datenbank > SQL
Danach in Konfiguration > Datenbankeinstellungen > Datenbank-Zeichensatzkonvertierung aktivieren JA > Speichern.
Getestet und es wurde nichts "zerhauen"
Von dem Nutzen einer älteren Version rate ich ab, da Du dir damit, falls es ein Sicherheitupdate mal gibt, einen geistigen Ignorierpunkt holst und damit eine Sicherheitslücke geöffnet wird.
Gruss
Seraphyn

User avatar
u1amo01
Regular
Posts: 267
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Re: Tag Plugin Problem?

Post by u1amo01 » Tue Jun 21, 2011 4:08 pm

seraphyn wrote: Danach in Konfiguration > Datenbankeinstellungen > Datenbank-Zeichensatzkonvertierung aktivieren JA > Speichern.
Äh, damit werden bei mir die Umlaute in allen anderen Tabellen (z. B. den entries) flasch dargestellt. Vermutlich müsste man alle Tabellen konvertieren.

Ich schmeiß das Plugin 'raus.

User avatar
seraphyn
Regular
Posts: 211
Joined: Fri Dec 01, 2006 9:42 am
Contact:

Re: Tag Plugin Problem?

Post by seraphyn » Tue Jun 21, 2011 4:15 pm

Sehe ich auch gerade.
Sehr uncool.... :(

User avatar
moonchild
Regular
Posts: 186
Joined: Tue Nov 22, 2005 12:23 am
Location: Esslingen
Contact:

Re: Tag Plugin Problem?

Post by moonchild » Tue Jun 21, 2011 4:19 pm

seraphyn wrote:Getestet und es wurde nichts "zerhauen"
Ergibt bei mir mit dem 3.24er Plugin:

Code: Select all

Query failed:

SELECT 
                    

                    e.id,
                    e.title,
                    e.timestamp,
                    e.comments,
                    e.exflag,
                    e.authorid,
                    e.trackbacks,
                    e.isdraft,
                    e.allow_comments,
                    e.last_modified,

                    a.realname AS author,
                    a.username AS loginname,
                    a.email
                     , e.body, e.extended
                     
                FROM
                    serendipity_entries AS e
                    LEFT JOIN serendipity_authors a
                        ON e.authorid = a.authorid
                    LEFT JOIN serendipity_entrycat ec
                        ON e.id = ec.entryid
                    LEFT JOIN serendipity_category c
                        ON ec.categoryid = c.categoryid
                    INNER JOIN serendipity_entrytags AS entrytags ON (e.id = entrytags.entryid) 
                    WHERE isdraft = 'false' AND e.timestamp <= 1308665700 AND entrytags.tag = 'der kommende aufstand' COLLATE utf8_unicode_ci 
                     GROUP BY e.id
                     
                     ORDER BY timestamp DESC
                      LIMIT 10

/ COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
Bonan tagon,
Thomas Trueten

User avatar
seraphyn
Regular
Posts: 211
Joined: Fri Dec 01, 2006 9:42 am
Contact:

Re: Tag Plugin Problem?

Post by seraphyn » Tue Jun 21, 2011 4:30 pm

Also ich habe da ein ein PHP-Script:

Code: Select all

<?php
//mysql database name
$db_name = "$DATENBANKNAME";

//db connection
$dc = mysql_connect("$DATENBANKSERVER", "$DATENBANKUSER", "$DATENBANKPASSWORT);
mysql_select_db($db_name, $dc);

//set database charset and collation
$sql = "ALTER DATABASE `".$db_name."` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
mysql_query($sql);

//set tables charset and collation
$sql = "SHOW TABLES";
$rs = mysql_query($sql);
$tables = array();
while($r = mysql_fetch_array($rs)){
	$sql = "ALTER TABLE `".$r[0]."`  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
	mysql_query($sql);
	$tables[] = $r[0];
}

//set table rows charset and collation
foreach($tables as $tab){
	$sql = "SHOW FULL COLUMNS FROM `".$tab."`";
	$rs = mysql_query($sql);
	while($r = mysql_fetch_array($rs)){
		if(!empty($r['Collation']) && $r['Collation'] != 'utf8_unicode_ci'){
			$nu = ($r['Null'] == "YES")? "NULL" : "NOT NULL";
			$df = empty($r['Default'])? "" : "DEFAULT '".addslashes($r['Default'])."'";
			$sql = "ALTER TABLE `".$tab."` CHANGE `".$r['Field']."` `".$r['Field']."` ".$r['Type']." CHARACTER SET utf8 COLLATE utf8_unicode_ci ".$nu." ".$df;
			mysql_query($sql);
		}
	}
}
Leider deckt dies nicht alles ab, z.B. in serendipity_entries bleiben title body und extended einfach latin1_swedish_ci.
Vielleicht kann da ein netter PHP-Hacker weiterhelfen, dann wäre dies auch gelöst...

Danke
Chris

User avatar
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Tag Plugin Problem?

Post by Timbalu » Wed Jun 22, 2011 11:13 am

Das hat bestimmt etwas mit dem Indize entry_idx (FULLTEXT) auf title, body, extended zu tun.
Ist der bei dir gesetzt? Wenn ja, eventuell löschen, dann das Script laufen lassen und erst dann wieder neu setzen...
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian

Locked