le script me fais foirer les caractères spéciaux en code comme cela :
Code : Tout sélectionner
© ´ etcil les remplace genre comme cela :
Code : Tout sélectionner
¼Ã£ï¿½ï¿½Ã£ï¿½Â¼Code : Tout sélectionner
© ´ etcCode : Tout sélectionner
¼Ã£ï¿½ï¿½Ã£ï¿½Â¼
....
Exemple:Question: que va afficher alert() 1 ou 2Code : Tout sélectionner
var chaine = 1; var chaine = 2; alert(chaine);
Mais non, c'est la dernière valeur de chaine avant alert() qui sera affichée (2)Question: que va afficher alert() 1 ou 2 :
eum.... je pence que c'est sois :
- aucun
- les 2
<script language="javascript" type="text/javascript">
function change() {
var chaine = document.getElementById('title').value;
var chaine2 = document.getElementById('copyright').value;
chaine=chaine.replace("'", "´");
chaine2=chaine2.replace("'", "´");
document.getElementById('title').value=chaine;
document.getElementById('copyright').value=chaine2;
// alert('Résultat= ' + chaine);
}
</script>
<?php
require('../base.php');
require('functions.php');
// Initialisation de la variable.
empty($_POST['modifier']) ? $modifier = '' : $modifier = $_POST['modifier'];
if ($modifier == 'oui')
{
// On enregistre les donnes
$fichier = fopen('../base.php', 'w+'); // w+ comme a si le fichier n'existe pas, il est cr la vole et cela ne provoque pas d'erreur.
fwrite($fichier, "<?php\n");
fwrite($fichier, "\$title='".nettoie($_POST['title'])."';\n");
fwrite($fichier, "\$copyright='".nettoie($_POST['copyright'])."';\n");
fwrite($fichier, "?>\n");
fclose($fichier);
echo '<div align="center">Données modifiées.<br><a href="index.php" title="Retour aux paramétages">Retour aux paramétages</a></div>';
}
// Mettre les 2 fonctions : "nettoie" (plus haut) et "nettoie_reception" dans un fichier extrieur qui ensuite sera includ
function nettoie_reception($chaine)
{
$chaine = str_replace(chr(172), '\'', $chaine);
$chaine = str_replace(chr(184), '\\', $chaine);
$chaine = trim($chaine);
return $chaine;
}
// Affichage du formulaire en arrivant sur la page.
if ($modifier != 'oui')
{
echo '
<div align="center"><center><b>Configuration de certains Textes du Site</b></center></div><br />
<div align="center">
<form action="index.php" method="post" style="margin: 0px;">
<input type="hidden" name="modifier" value="oui">
<table width="90%" border="1" cellspacing="0" cellpadding="3" bordercolor="#000000">
<tr>
<td colspan="2" align="center"><span style="color:#FF0000"><b>/!\ ATTENTION /!\</b></span> pour les apostrophes, mettre <b>´</b> à la place !</td>
</tr>
<tr>
<td>Titre de la page d\'Accueil</td>
<td><input name="title" id="title" type="text" value=\''.nettoie_reception($title).'\' onChange="change()" size="90"></td>
</tr>
<tr>
<td>Copyright de la page d\'accueil (Pied de page)</td>
<td><input name="copyright" id="copyright" type="text" value=\''.nettoie_reception($copyright).'\' onChange="change()" size="90"></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="submit" type="submit" value="Modifier"></td>
</tr>
</table>
</form>
</div>
';
}
?>
functions.php
<?php
function nettoie($chaine)
{
$chaine = htmlentities($chaine);
if (!get_magic_quotes_gpc())
{
$chaine = str_replace('\'', chr(172), $chaine);
$chaine = str_replace('\\',chr(184) , $chaine);
}
else
{
$chaine = str_replace('\\\'', chr(172), $chaine);
$chaine = str_replace('\\\\',chr(184) , $chaine);
$chaine = str_replace('"', '"', $chaine);
$chaine = str_replace('<', '<', $chaine);
$chaine = str_replace('>', '>', $chaine);
$chaine = str_replace('&', '&', $chaine);
}
$chaine = stripslashes($chaine);
$chaine = trim($chaine);
//$chaine = ereg_replace('[ ]{2,}', ' ', $chaine);
return $chaine;
}
?>
base.php
<?php
// TITLE INDEX
$title='My Title ス ア ン コーヒー';
// COPYRIGHT
$copyright='Copyright © 2007';
?>
ceci :
ス ア ン コーヒー
est du japonais (=)
ス ア ン コーヒー
Code : Tout sélectionner
<a href="javascript:window.location.replace(\'index.php\');" title="Retour aux paramétages">Retour aux paramétages</a>
Code : Tout sélectionner
// On enregistre les donnes
$base = "<?php \n
\$title='".nettoie($_POST['title'])."'; \n
\$copyright='".nettoie($_POST['copyright'])."'; \n
?> \n";
file_put_contents ('../base.php', $base);Code : Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />