Bonjour à tous,
Après avoir parcouru internet tout entier et passé des heures, j'avoue être un peu dépassé par ce problème, donc je viens vous demander une fois de plus de l'aide.
J'ai repris un script de calendrier très très bien fait qui permet d'ajouter des évènements aux dates souhaitées. Tout marche très bien (les accents s'affichent), seulement dès que je veux mettre un "+" par exemple ou un "&" dans le texte de l'évènement, la base de données ne le prend pas en compte et met un espace. Celle-ci est en "latin1_swedish_ci".
Si je vais dans phpMyAdmin et que je tape ma requête à la main contenant des "+" pas de soucis il s'affiche bien dans phpMyAdmin et dans ma page web.
Le problème vient donc surement de l'encodage du texte dans ma page php qui envoi la requête.
Et c'est la que ça devient compliqué pour moi.
La page sur laquelle est rempli le texte événement est en "ANSI" et envoi un ajax.Request sur une page encodée en UTF-8 (sans DOM), peut-être est-ce la le soucis ?
Ensuite, l'envoi de la requête se fait comme ceci :
J'ai essayé pas mal de choses, de modifs, etc, mais rien à faire, il ne veut pas de "+" ou "&", alors que les accents fonctionnent.
Si une âme charitable passe par là, merci de son aide
Modifié par Lokomass (03 Jan 2012 - 11:17)
Après avoir parcouru internet tout entier et passé des heures, j'avoue être un peu dépassé par ce problème, donc je viens vous demander une fois de plus de l'aide.
J'ai repris un script de calendrier très très bien fait qui permet d'ajouter des évènements aux dates souhaitées. Tout marche très bien (les accents s'affichent), seulement dès que je veux mettre un "+" par exemple ou un "&" dans le texte de l'évènement, la base de données ne le prend pas en compte et met un espace. Celle-ci est en "latin1_swedish_ci".
Si je vais dans phpMyAdmin et que je tape ma requête à la main contenant des "+" pas de soucis il s'affiche bien dans phpMyAdmin et dans ma page web.
Le problème vient donc surement de l'encodage du texte dans ma page php qui envoi la requête.
Et c'est la que ça devient compliqué pour moi.
La page sur laquelle est rempli le texte événement est en "ANSI" et envoi un ajax.Request sur une page encodée en UTF-8 (sans DOM), peut-être est-ce la le soucis ?
Ensuite, l'envoi de la requête se fait comme ceci :
case 'addEvent':
$day = $_POST['d'];
$month = $_POST['m'];
$year = $_POST['y'];
$body = $_POST['body'];
$body2 = $_POST['body2'];
$body3 = $_POST['body3'];
$djour = date('Ynj');
$devent = $year.$month.$day;
if ($devent >= $djour) {
$timeStamp = mktime(0,0,0, $month, $day, $year);
$bodyF = addslashes(trim($body));
$bodyFi = $body2.$bodyF;
mysql_query("SET NAMES latin1");
$addEvent = mysql_query("INSERT INTO event (body, timestamp, auteur) VALUES ('$bodyFi', '$timeStamp', '$body3')", $conn);
break;
}
else {
exit;
}
J'ai essayé pas mal de choses, de modifs, etc, mais rien à faire, il ne veut pas de "+" ou "&", alors que les accents fonctionnent.
Si une âme charitable passe par là, merci de son aide
Modifié par Lokomass (03 Jan 2012 - 11:17)