mysql_real_escape_string et autres htmlentities avec MVC

Par artnow44, il y a 14 ans


J'ai suivi le super tuto sur le MVC? J'ai un MVC qui marche bien mais du coup on les mets où les mysql_real_escape_string et les htmlentities ? Ca va un peu dégueulasser le code du controller.

Pour le model on va se retrouver avec :

array(
"nom" => mysql_real_escape_string($nom),
"prenom" => mysql_real_escape_string($prenom),
"email" => mysql_real_escape_string($email)...
)

De la même façon avec les htmlentities, les mettre dans le tableau de variables qu'on envoie au template c'est pas super lisible je trouve.

Vous avez pas une méthode sympa pour avoir un code un peu plus clair. array_map() pourrait aider mais ça fait un peu méthode de barbare parce que je n'appelle pas ces fonctions pour toutes mes valeurs (intval()...).

3 réponses

Roxeur76150, il y a 14 ans

Si non ta fonction par une fonction exemple de teste :

<?php 
function string($string){
    $string = mysql_real_escape_string($string);
    return $string;
}
$nom = 'raton';
$prenom = 'laveur';
$email = 'leratonlaveur@live.com';
$teste = array(  
"nom" => string($nom),  
"prenom" => string($prenom),  
"email" => string($email) 
);

 echo '<pre>';
 print_r($teste);
 echo '</pre>';
?>
WinuX, il y a 14 ans

Sinon tu fais ceci :

$teste = array(
    "nom" => $nom,
    "prenom" => $prenom,
    "email" => $email    
);
foreach($teste AS $name => $value){
   $value = mysql_escape_string(htmlspecialchars($value));
}

Et pour les entiers, il te suffira de faire un autre tableau et un autre foreach avec cette fois ci la fonction intval()

Ps : privilégie htmlspecialchars à htmlentities, la doc php pourra t'expliquer pourquoi ;)

artnow44, il y a 14 ans

Merci.

J'ai jamais utilisé htmlspecialchars. Mais du coup maintenant je vois pas vraiment à quoi sert htmlentities. C'est quoi sont intéret ? J'en vois pas vraiment.