Le problème est que la fonction GET envoie les données tapées au clavier via l'URL à ton fichier PHP. Or il est interdit de mettre des accents dans un URL. La fonction GET utilise donc une table spéciale pour convertir tes accents en caractères de base. Chez moi, par exemple, mon serveur utilise l'utf8 (UNICODE), et la fonction get traduit le caractère "é" en "é".
Il est toutefois possible de faire reconvertir (dans l'autre sens) ton code PHP (à la réception de ces caractères bizarres donc) pour obtenir à nouveau les caractères accentués. Pour cela, tu dois utiliser la fonction PHP utf8_decode. Tu peux ensuite, si tu le souhaite, enregistrer ces données dans une base de données, à condition que celle-ci soit également configurée pour utiliser l'unicode...
Voici un exemple de codes html, puis php qui illustrent mes propos:
index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<FORM METHOD=GET ACTION="reception.php">
nom: <INPUT NAME="nom"><BR>
prénom: <INPUT NAME="prénom"><BR>
<INPUT TYPE=SUBMIT>
</FORM>
</body>
</html>
reception.php:
<?php
foreach($HTTP_GET_VARS as $clé=>$valeur){
$clé = utf8_decode($clé);
$valeur = utf8_decode($valeur);
echo "$clé => $valeur<BR>\n";
}
?>