Hallo!
Ich hoffe mir kann wirklich einer helfen.
Mir ist aufgefallen, wenn ich im Originalzustand des Codes einen Beitrag aus dem Internet kopiere, der bereits Zeilenumbrüche enthält, wird der Text ebenfalls nicht in die Datenbank eingefügt!
Anscheinend kommt der "Enter" konflikt hier schon zustande, und hat mit meinem Problem an sich nichts zu tun.
In der com_yasb gibt es eine dynamic.php die anscheinend für den Eintrag in die DB verantwortlich (das einzige INSERT was ich im Quellcode finden konnte)
Also wer ne Idee hat wie ich die Zeilenumbrüche in die DB kriege, bin sehr dankbar für jede Hilfe!
Hier die gesamte Funktion...
Code:
function addShout(&$request){
//lets get some vars ready
$my =& JFactory::getUser();
$uid = $my->id;
$filter = JFilterInput::getInstance();
$name = $filter->clean( $request->name );
$text = $filter->clean( $request->text );
$ip = JRequest::getVar('REMOTE_ADDR','','SERVER');
//check the ip first
if( YaSBShoutHelper::isBanned() ){
//This ip is baned
$request->status = 1;
$request->message = JText::_('DYNAMIC_ADD_BANNED') ;
return;
}
//check for right to post
if($uid == 0){
if( !$this->_config->get('allowGuestPost') ){
$request->status = 1;
$request->message = JText::_('DYNAMIC_ADD_NO_GUEST');
return;
}
//check captcha
if( $this->_config->get('useCaptcha') && !$this->checkCaptcha($request) ){
$request->status = 1;
$request->message =( JText::_('DYNAMIC_ADD_WRONG_CAPTCHA') );
return;
}
//check the values
$name = trim($name);
if(empty($name)){
$request->status = 1;
$request->message =( JText::_('DYNAMIC_ADD_NO_NAME') );
return;
}
$mnl = $this->_config->get('limitName');
$mnl = ( $mnl<1 || $mnl>50 )?50:$mnl;
if( $this->_config->get('guestTags') ){
if(strlen($name) > $mnl-2){
$name = substr($name,0,$mnl-2);
}
$name = '['.$name.']';
}else{
if(strlen($name) > $this->_config->get('limitName')){
$name = substr($name,0,$mnl);
}
}
}else{
$name = ($this->_config->get('defaultName')==1) ? ($my->fullname) : ($my->username) ;
$mnl = $this->_config->get('limitName');
$mnl = ( $mnl<1 || $mnl>50 )?50:$mnl;
if(strlen($name) > $this->_config->get('limitName')){
$name = substr($name,0,$mnl);
}
}
$text = trim($text);
if(empty($text) ){
$request->status = 1;
$request->message =( JText::_('DYNAMIC_ADD_NO_TEXT') );
return ;
}
//check for ban-words
if( $this->_config->get('enableBan') && $this->_config->get('banWordBehavior') > 0 ){
//Banwords are enabled.
$words = $this->checkBanWords($text);
if( !empty($words) ){
$request->status = 1;
//one banword has been found.
if( $uid > 0 && !$this->_config->get('banRegistered') ){
$request->message = JText::sprintf('DYNAMIC_ADD_BANWORD_USER',implode("', '", $words));
return;
}
if( $this->_config->get('banWordBehavior') == 2 ){
$duration = $this->_config->get('banWordDuration');
$request->message = JText::sprintf('DYNAMIC_ADD_BANWORD_DUR',implode("', '", $words),$duration );
YaSBShoutHelper::banIp( $ip , $duration );
}else{
$request->message = JText::sprintf('DYNAMIC_ADD_BANWORD_PERMANENT',implode("', '", $words)) ;
YaSBShoutHelper::banIp( $ip );
}
return;
}
}
//check for badwords
$badWord = $this->_config->get('badWordEnable');
if( $badWord == 2 || ( $badWord == 1 && $uid==0 ) ){
$words = $this->replaceBadWords($text);
if( !empty($words) ){
$request->status = 2;
if( $this->_config->get('badWordBehavior') == 0 ){
$request->message = JText::sprintf('DYNAMIC_ADD_BADWORD_REPLACE',implode("', '", $words)) ;
}else{
$request->message = JText::sprintf('DYNAMIC_ADD_BADWORD_SKIP',implode("', '", $words)) ;
return;
}
}
}
$text = strip_tags($text);
if( $this->_config->get('limitText') > 0 ){
$text = substr($text,0,$this->_config->get('limitText'));
}
$text = htmlspecialchars( trim( $text ) );
$this->parseBBCode($text);
$this->_db->setQuery('INSERT INTO #__yasb (uid,name,text,ip) VALUES ( '. $uid.','.$this->_db->quote( $name ).', '.$this->_db->quote( $text ).', '.$this->_db->quote( $ip ).' )');
if(!$this->_db->query()){
$this->setError('DYNAMIC_ADD_DATABASE_ERROR');
return false;
}
}
Lesezeichen