Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ticket [2010/07/30 07:51] geraldticket [2024/02/29 13:36] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 50: Zeile 50:
 [[ticket:osticket|OSticket - Erfahrung, Anpassungen und Problemlösungen]] [[ticket:osticket|OSticket - Erfahrung, Anpassungen und Problemlösungen]]
  
- 
- 
-Problem: Aus dem Subject verschwinden die Umlaute und im Body werden die Umlaute falsch dargestellt. 
- 
-Lösung zu Subject: 
- 
-Umlaute in Subjectzeile. Datenbank-Zeichentabelle ändern: 
-<code> 
-ALTER TABLE `ost_ticket` CHANGE `subject` `subject` VARCHAR( 64 ) CHARACTER SET latin1 DEFAULT '[no subject]' 
-</code> 
- 
- 
-Die Umlaute im Body korrekt darzustellen, ist schwieriger (empfangen werden sie korrekt und auch korrekt in der Datenbank gespeichert): 
- 
-Zuerst die Datei include/mysql.php öffnen. Dort die Zeilen suchen: (ca. Zeile 31) 
-<code> 
-@mysql_query('SET NAMES "UTF8"'); 
-@mysql_query('SET COLLATION_CONNECTION=utf8_general_ci'); 
-</code> 
- 
-ändern in:  
-<code> 
-@mysql_query('SET NAMES "latin1"'); 
-@mysql_query('SET COLLATION_CONNECTION=latin1'); 
-</code> 
- 
-Jetzt werden alle Nachrichten korrekt dargestellt. Allerdings werden neu empfangene Nachrichten jetzt auch lach latin1 konvertiert und in der Datenbank falsch gespeichert (und dann natürlich auch falsch dargestellt; das betrifft nur den Body, nicht das Subject). 
- 
-Um das zu beheben, die Datei /include/class.ticket.php öffnen. Dort suchen: (ca. Zeile 604) 
-<code> 
-        $sql='INSERT INTO '.TICKET_MESSAGE_TABLE.' SET created=NOW() '. 
-             ',ticket_id='.db_input($this->getId()). 
-             ',messageId='.db_input($msgid). 
-             ',message='.db_input(Format::striptags($msg)). //Tags/code stripped...meaning client can not send in code..etc 
-             ',headers='.db_input($headers). //Raw header. 
-             ',source='.db_input($source). 
-             ',ip_address='.db_input($_SERVER['REMOTE_ADDR']); 
-              
- </code>   
- 
-Eine Zeile ändern (nämlich die, die die Nachricht speichert): 
-<code> 
-             ',message=CONVERT(_utf8 '.db_input(Format::striptags($msg)).' USING latin1)'. //Tags/code stripped...meaning client can not send in code..etc 
-</code>  
- 
-Jetzt sollte es gehen. 
- 
-Problem: Wenn eine Vorlage aus Vorlagendatenbank (Knowlage Base /KB) geholt wird (per Ajax), dann stimmen die Umlaute wieder nicht. 
- 
-Lösung: In der Datenbank werden die Umlaute korrekt gespeichert (Tabelle ist Latin1); auch beim Editieren werden sie korrekt dargestellt. Aber nicht, wenn sie via Ajax kommen (liegt wahrscheinlich an dem UTF8 von Ajax; allerdings ist das HTML-Dokument auch UTF8 :( ) 
- 
-Geholfen hat es, folgende Zeile in die /includes/ajax.kbase.php einzufügen: 
-Aus: 
-<code>  
-     $sql='SELECT answer FROM '.KB_PREMADE_TABLE.' WHERE isenabled=1 AND premade_id='.db_input($params['id']); 
-     if(($res=db_query($sql)) && db_num_rows($res)) 
-     list($response)=db_fetch_row($res); 
-</code> 
- 
-wird 
-<code> 
-      $sql='SELECT answer FROM '.KB_PREMADE_TABLE.' WHERE isenabled=1 AND premade_id='.db_input($params['id']); 
-     if(($res=db_query($sql)) && db_num_rows($res)) 
-     list($response)=db_fetch_row($res); 
- $response = utf8_encode($response); // ADDED BY GERALD 
-</code> 
- 
-Problem: Umlaute werden bei der gesendeten Nachricht falsch dargestellt (also beim Empfänger). 
- 
-Geholfen hat es, in der /inlclude/class.email.php folgendes zu ändern (Änderungen sind im Kommentar dahinter bekennzeichnet; auf 'gerald' achten): 
-<code> 
-        //do some cleanup 
-        $eol="\n"; 
-        $to=preg_replace("/(\r\n|\r|\n)/s",'', trim($to)); 
-        $subject=stripslashes(preg_replace("/(\r\n|\r|\n)/s",'', trim($subject))); 
-        $body = stripslashes(preg_replace("/(\r\n|\r)/s", "\n", trim($message))); 
-        $fromname=$this->getName(); 
-        $from =sprintf('"%s"<%s>',($fromname?$fromname:$this->getEmail()),$this->getEmail()); 
-        $headers = array ('From' => $from, 
-                          'To' => $to, 
-                          'Subject' => $subject, 
-                          'Date'=>date('D, d M Y H:i:s O'), 
-                          'Message-ID' =>'<'.Misc::randCode(6).''.time().'-'.$this->getEmail().'>', 
-                          'X-Mailer' =>'osTicket v 1.6', 
-                          'Content-Type' => 'text/html; charset="iso-8859-1"'// changed from utf-8 by GERALD 
-                          ); 
-        $mime = new Mail_mime(); 
-        $mime->setTXTBody($body); 
-        //attachment TODO: allow multiple attachments - $attachment should be mixed parts. 
-        if($attachment && $attachment['file'] && is_readable($attachment['file'])) { //file of mime type. 
-            $mime->addAttachment($attachment['file'],$attachment['type'],$attachment['name']); 
-        } 
-        $options=array('head_encoding' => 'quoted-printable', 
-                       'text_encoding' => 'quoted-printable', 
-                       'html_encoding' => 'base64', 
-                       'html_charset'  => 'iso-8859-1',// changed from utf-8 by GERALD 
-                       'text_charset'  => 'iso-8859-1');// changed from utf-8 by GERALD 
-        //encode the body 
- $body = utf8_decode($body);// added by GERALD 
-        $body = $mime->get($options); 
-</code>         
  
                          
                                                
 
Nach oben
ticket.1280476316.txt.gz · Zuletzt geändert: 2024/02/29 13:35 (Externe Bearbeitung)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp