Bonjour,php: deux objets de la même indépendante de travail de classe de l'autre
Je voudrais le code dans mon contrôleur pour ressembler à quelque chose comme ceci:
<?php
$class = new sanitizeInput()
$string1 = $class -> input($_POST[name]) -> mysql_escape();
$string2 = $class -> input($_POST[age]) -> mysql_escape();
print "
String1: $string1 <br />
String2: $string2"
?>
Il semble avec ma classe sanitizeInput , toute modification de $ string2 est appliquée à $ string1. De quelles façons puis-je changer cela? J'aimerais de préférence faire les changements dans la classe pour rendre mon contrôleur aussi facile à lire que possible. Oui, je sais que je peux instancier deux fois, mais j'aimerais utiliser le même objet si possible.
Ce serait génial si ma classe:
- Instantiate une fois,
- entrée Set,
- Dites-le à mysql_escape, et revenir à __toString chaine1 $.
- Définissez l'entrée en laissant $ string2 seul, mysql_escape et renvoyez __toString string à $ string2.
EDIT: Ceci est mon code complet tel que demandé par commentaire:
$name = $sanitize -> setInput($name) -> stripTags() -> mySql() -> replaceLinks('[ En webadresse ble sensurert her ]') -> trimWhitespace();
$age = $sanitize -> setInput($age) -> stripTags() -> mySql() -> replaceLinks('[ En webadresse ble sensurert her ]') -> trimWhitespace();
class Sanitizer {
protected $_data;
public function setInput($input) {
$this -> _data = $input;
return $this;
}
public function stripTags($array = NULL) {
if (!is_null($array) and is_array($array)) {
$allowedTags = implode('', $array);
$this -> _data = strip_tags($this -> _data, $allowedTags);
}
else {
$this -> _data = strip_tags($this -> _data);
}
return $this;
}
public function mySql() {
$this -> _data = mysql_escape_string($this -> _data);
return $this;
}
public function replaceLinks($replacement = NULL) {
if (is_null($replacement)) {
$replacement = '[ Potential web-address censored here ]';
}
$this -> _data = preg_replace('~[a-z0-9:/._-]+\.(biz|com|edu|gov|info|mil|net|org|as|eu|no|se|uk)[/a-z]{0,}~i', $replacement, $this -> _data);
return $this;
}
public function trimWhitespace() {
$this -> _data = trim($this -> _data);
return $this;
}
protected function __toString() {
$str = $this -> _data;
return $str;
}
}
Merci pour votre temps.
Cordialement,
Marius
Pouvez-vous publier le code de la méthode input() de la classe sanitizeInput? –
* (alternative) * http://de2.php.net/manual/fr/book.filter.php et http://phpro.org/tutorials/Filtering-Data-with-PHP.html#23 – Gordon