Sécurité php

Bonjour,

J'ai un script que j'ai adapté d'un autre trouvé sur le net, mais il réagit bizarement :

	class Securite	{
		function bdd($string) {
			if (ctype_digit($string)) {
				$string = intval($string);
			}
			else {
				$string = mysql_real_escape_string($string);
				$string = addcslashes($string,'%_');
			}
			return $string;
		}
		function html($string) {
			return htmlentities($string);
		}
	}


En faisant : echo Securite::bdd($_POST['prenom']) par exemple, ben il ne m'affiche rien, même si echo $_POST['prenom'] réagit !

C'est assez bon pour la sécurité de mon site peut-être, mais c'est bien limite !
Configuration: Windows Vista
Firefox 3.5.7

3 réponses

  1. Mon code est-il encore trop long ?
    0
    1. Ce code ne marche pas si tu n'as pas ouvert de connexion à ta base de données. Il utilise la fonction mysql_real_escape_string et cette fonction demande que tu sois connecté au serveur de bdd.
      Si tu affichais les warning, tu aurais droit aux messages :

      Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in xxx.php on line 8

      Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in xxx.php on line 8
      0