2016-05-27 15 views
0

Ich habe eine große Codeigniter-App, mit vielen Formen und Feldern. Ich muss Benutzer vermeiden, HTML-Code in irgendeiner Eingabe einzugeben. Ich weiß, dass ich es entkommen kann, die Funktionen wie strip_tags oder es mit htmlentites entkommen.Kann ich Codeigniter konfigurieren, um alle Probleme zu vermeiden?

Aber ich frage mich, ob es eine Möglichkeit gibt, es global zu tun, die entfernt oder entgeht den HTML-Code in einer der Eingaben der gesamten Anwendung eingefügt.

+0

verstehe ich nicht einmal, was Sie meinen, afaik CI verwendet 'htmlspecialchars' nur in einer Funktion namens' html_escape', die von der Form Helfer verwendet wird – sintakonte

+0

ich meine, auf die gleiche Art und Weise wie diese die SQL vermeiden injection, ich möchte konfigurieren, um htmlentities zu speichern, und/oder um die Ergebnisse zu erhalten, htmltntities zu konvertieren, um load html zu vermeiden, wenn ich es auf der Seite zeige. – jacr1614

+0

Aber ich will es in der ganzen Anwendung di, ohne jede Datei zu ändern htmlentities – jacr1614

Antwort

1

Ich habe die Funktion geändert, die Ergebnisse abruft und das HTML-Tag zum Öffnen und Schließen filtert. das ist so etwas wie ich will. html oder Javascript in der Datenbank gespeichert zu verweigern.

public function array_htmlentities(&$row){ 
     //return $row; 
     foreach($row as &$value){ 
      if(is_array($value) || is_array($value)){ 
       $value = $this->array_htmlentities($value); 
      }elseif(is_string($value)){ 
       $json = json_decode($value); 
       if(is_array($json) || is_array($json)){ 
        $value = json_encode($this->array_htmlentities($json)); 
       }else 
        $value = str_replace(array('<','>'), array('&lt;','&gt;'), $value); 
       //$value = $value; 
      }else 
       $value = $value; 
     } 

     return $row; 
    }