1

Certains caractères posent problème avec la fonction de citation en sélectionnant le texte, alors que ça fonctionne en citant directement le post : topics/99087-test
(le ./2 a été fait en utilisant la fonction "Citer", le ./3 en sélectionnant le texte)

(au cas où ce serait un problème de navigateur, dans le ./2 je vois un "et commercial" et un sigle euro, et dans le ./3 un "et commercial"amp; et un point d'interrogation)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

2

J'ai corrigé le pb pr le &, mais pr le symbole € je vois pas trop ... Xmlhttp me le vire quand il l'envoie a la page php qui traite la citation neutral
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

3

le €, faut pas le remplacer par € ?
Ancien pseudo : lolo

4

marche pas
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

5

je me souviens que j'avais eu aussi un problème de ce type avec des requettes HTTP, certains caractères étaient remplacés par des ? et je crois que j'avais réussi à corriger le problème avec un header content type :

header('Content-Type: text/html; charset=iso-8859-1');

car le symbole euro n'existe pas dans tous.

je pense qu'il faut le mettre dans le fichier appelé pour récuperer les citations
Ancien pseudo : lolo

6

J'ai déjà fait tout ca (sinon les accents marcheraient pas).

Donc y'a le header dans le php, le utf8_decode dans le .php ... smile
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

7

tu as pu identifier si la perte se faisait au moment de sauver la citation, ou au moment de la rappeler ?
Ancien pseudo : lolo

8

Le JS a la bonne string, le php a la mauvaise, donc c'est quand xmlhttp transmet au php
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

9

ta correction pour le &, c'est celle à la ligne 131 de xcite.js : selectedText = text.replace(/&/g,"%26");

c'est bien ca ?


perso, j'utilise généralement cette fonction pour proteger mes chaines de caractères à envoyer en JS :

function fct_urlEncode (txt)
{
	txt = escape(txt);
	
	txt = txt.replace(/[/]/g,"%2F");
	txt = txt.replace(/[+]/g,"%2B");
	txt = txt.replace(/[ ]/g,"+");
	return txt;
}
Ancien pseudo : lolo

10

nan c pas ca, c'est juste que je décode les caracteres html dans le php wink la partie js c par ce que les params sont séparés par des & ^^
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

11

ok

mais donc, si j'ai bien compris, le problème se situe quand on clique sur "sauver" quand on a sélectionné du texte. ca récupère la sélection, et l'envoie via un httprequest POST au serveur pour le sauvegarder en session via le php. c'est la que ca plante, quand tu récupère tes variables $_POST ?

car géréralement, je n'avais pas le pb à ce moment dans mes applis. Les caractères étaient bien passés au PHP, bien sauvegardés en session, mais ca chiait juste quand je faisait ma requete pour récupérer ce que j'avais sauver (pour yN, quand on clique sur "Insérer citations sauvées"). Le jeu de caractère était différent entre ce qu'attendait le httprequest et l'header que retournait le fichier php.

après, je peux me tromper...

le seul moyen pour toi de verifier que ca vient de la, c'est de réussir à afficher le contenu de xCite.php en l'appelant direct dans le navigateur et voir si la, tu as bien € et non ?. pour ca, il faut que xCite.php accepte aussi les parametres a et s en methode GET et pas seulement POST (comme c'est le cas actuellement)

je sais pas si j'ai été assez clair, pas réveillé aujourd'hui...
Ancien pseudo : lolo

12

Donc ... j'ai modifié le script pr le GET :

xCite.php?cite=dddéé退€ donne ;dddéé退€ => ok

En passant par un :

<form action='xCite.php' method='POST'>

<input type='text' name='cite'/>
<input type='submit' />

</form>


=> ;dddéé退€ => ok


En passant par de l'ajax ... blam ^^
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

13

Complément d'infos :



En rouge : variable _post brute (non traitée)
En vert : variable _post avec utf8_decode

En bleu/violet : sans le header() dans le .php

Vala vala ^^
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

14

en fait, je crois qu'on s'est mal compris.

ce que je voulais te proposer comem test, c'est ceci :


tu sélectionnes du texte avec des € et autres
tu cliques sur sauvegarder

puis tu executes xCite.php?a=c&s=99088 afin de récuperer ce que tu a sauvé, pour ne pas passer par ajax.

si tu as bien les €, c'est que le problème est juste une incompatibilité entre le chartype php (coté serveur) et celui javascript (côté client)

tu vois ce que je veux dire ?

sauf que pour l'instant xCite n'accepte pas le get apparement sad
Ancien pseudo : lolo

15

Euh nan je pige pas trop

var texte = getSel();
document.href = "xCite.php?a="+texte;

Ca que tu veux ?
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

16

en fait, ce que je pense, c'est que ce n'est pas le passage de paramètres qui déconnent en ajax, mais la récupération du contenu généré par le php (le httpreponse)

donc je voulais juste tester si, une fois qu'on a sauvegarder une citation (normalement, sans modifier les scripts js et php de yN), la récupération de cette citation via la commande utilisée par le lien "Insérer citations sauvées", mais sans passer par ajax, marche bien. Mais pour cela, le plus simple serait que xcite.php accepte la methode get, pour qu'on est juste qu'à cliquer sur le lien xCite.php?a=c&s=99088

c'est un peu plus clair ?
Ancien pseudo : lolo

17

Euh nan, pske je vois pas cmt xCite.php peut récupérer le contenu de la citation sans ajax grin
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

18

ben si je ne me trompe pas, dans ton xcite.php :

tu initialises la session
tu vérifie que $_POST['a'] existe
si il est égale à 'c' tu vérifie que $_POST['s'] existe
et tu récupère en session la citation correspondante
tu fais un echo de celle-ci.


tout ce qu'il te suffit de faire, c'est :

if (isset($_GET['a'])) $_POST['a'] = $_GET['a'];
if (isset($_GET['s'])) $_POST['s'] = $_GET['s'];

bien sur, il faudra l'enlever quand les tests seront fini wink

le ajax, ce n'est ni plus ni moins que l'appel à une page comme quand tu tapes l'adresse dans le navigateur, sauf que ca n'affiche pas direct le contenu, mais que tu le manipules en js avant de l'afficher seulement la ou tu veux.

quand je fais du débug, ca m'arrive très souvent d'appeler direct mes fichiers php sensés être appelés par de l'ajax, directement dans le navigateur, afin de voir ce qu'il me retourne.

c'est un peu plus clair ?
Ancien pseudo : lolo

19

Bon je dois être débile mais je pige tjrs pas ce que tu veux faire grin

Car quand j'appelle xCite.php en GET et que je lui transmet les caracteres, tout fonctionne.

Et quel est le rapport avec la session là ?
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

20

je ne parle pas de quand tu lui envoie les caractères, mais quand tu les récupères smile

quand tu cliques sur "sauver", ca appele le fichier xCite.php, avec les paramètres "a=a&cite="+selectedText+"&idu="+login+"&s="+suj+"&num="+num
à ce moment, xCite.php sauvegarde la citation quelque part ? il le fait en session ou en bdd ?

ensuite, quand tu cliques sur "Insérer citations sauvées", ca appele le fichier xCite.php avec les paramètres "a=c&s="+suj
à ce moment, xCite.php récupère les citations sauvegardés (en session ou en bdd), et les ecrit (je veux dire un echo)


est-ce que c'est bien ca ? et si oui, c'est en BDD ou en session que c'est sauvegardé ?
Ancien pseudo : lolo

21

en bdd, et le texte est mauvais avant la sauvegarde en bdd
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

22

ah ok, donc en BDD, il y a déjà des ? à la place des €, c'est ca ?
Ancien pseudo : lolo

23

oui !

dans le screen que j'ai fais, j'affichais directement _POST['cite'] dans la tooltip => plus d'€
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

24

ah !!!!!!!!!!!!!!!!!!!!!!!!!! ok ok ok ok !

bon, ben je vais essayer de reproduire le pb chez moi, et de voir comment le corriger, car ca m'interesse smile

je te tiendrais au courant
Ancien pseudo : lolo

25

voila, j'ai fait des petites tests, et voici le résultat :

http://test.spipu.dynalias.net/yn/

j'ai inclus directement ton fichier xcite.js, pour être sur d'utiliser les mêmes fonctions que toi

le fichier appelé req.php est le suivant :

<?php
	session_name('test');
	session_start();

	if (isset($_POST['a']))
	{
		if ($_POST['a']=='a' && isset($_POST['cite']))
		{
			$_SESSION['cite'] = $_POST['cite'];
			echo ';Sauvegarde effectuee';
			exit;
		}
		else if ($_POST['a']=='c' && isset($_SESSION['cite']))
		{
			echo ';'.$_SESSION['cite'];
			exit;
		}
	}

	echo ';erreur';
	exit;
?>


et la, le € passe sans pb.
Ancien pseudo : lolo

26

Hmmm je viens de tester différentes combinaisons, et celle qui marche est celle sans header ET sans utf8_decode dans le fichier .php ... mais je suis sûr qu'il y a une raison pour que je les ai mis .... quelqu'un peut tester sous IE 6 ?
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

27

c'est egalement comme ca que ca marche le mieux chez moi egalement

par contre,je viens de tester sous IE6, il n'y a meme pas la proposition de sauver la ciration, la div n'apparait pas !!!
Ancien pseudo : lolo

28

Euh ca ca aucun rapport jpense, ca marchait avant sous IE 6 neutral
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

29

yAro (./12) :
dddéé退


Bon bah ca marche sous IE6 ... je sais définitivement pas pourquoi j'avais mis ces 2 choses dans le .php trifus
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

30

Mouarf, moi qui pensais que c'était le genre de problèmes corrigeables en 5 secondes chrono grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo