Bonjour,
Lors de la création d'un site web j'ai remarqué quelque chose que je n'arrive pas à comprendre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<html>
<head>
</head>
<body>
<?php
	$a="";
	echo $a;
	if(isset($_POST['a']))
	{
		$a=$_POST['a'];
		echo $a;
	}
?>
<form method="POST" action="index.php" >
<input name="a" type="text" />
<input type="submit" />
</form>
 
</body>
</html>
Au premier chargement de la page le premier echo ne m'affiche rien et le deuxième n'est pas appelé : rien d'anormal!!.

Mais maintenant pour tester mes failles sur le site je remplit le formulaire par a";// je m'attends à ce que
devienne:
équivalent à
mais contrairement à ce que je m'attendais, il ne m'affiche pas a mais a";//.
Bon,alors c'est génial, je suis content car c'est sécurisé mais je ne comprends pas pourquoi il ne m'a pas afficher tous simplement ce que j’attendais.

La seul explication semble être que php ajoute un antislash devant le guillemet que j'ai entré dans le formulaire mais dans php.ini, j'ai magic_quotes_gpc = Off.

Savez vous d'où peut provenir ce comportement ?
j'utilise xampp 1.7.4 qui utilise PHP 5.3.5 (http://www.apachefriends.org/fr/xampp-windows.html)

merci d'avance pour vos lumières