problème d'accent PHP/Flash

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème d'accent PHP/Flash

par Invité » 20 juil. 2005, 18:06

Oui j'ai tout en UTF-8 mais lorsque la chaine de caractères contient des accents ça affiche une virgule à la place du 'é' et ça supprime les 2 caractères suivant.
Je ne comprend pas...

J'ai aussi essayé d'encoder les chaines envoyées au flash en RFC 1738 (norme pour les URLs) dans le PHP et de la décoder dans le flash avec unescape() mais là, même résultat que précédement.

Voilà...
Ciao.

par mere-teresa » 20 juil. 2005, 12:02

tu as bien tout en UTF-8 ?

par MousveT » 20 juil. 2005, 11:59

Bonjour,

J'ai le même problème :
J'ai un script PHP qui envoie des données à flash sous la forme d'une chaine de caractères dont les variables, qui seront interprété par flash, sont séparé par des &.
Chaine du type :
&menu1=presentation&menu2=truc&menu3=chose&

Le flash n'arrive pas à afficher les accents et supprime le 'é' et les 2 caractéres suivants...
Si le 'é' est encodé en 'é' flash pense que le & représente un séparaeur d'où erreur.

Si quelqu'un a une solution à proposer je suis aussi preneur !!! :D

Merci d'avance pour votre aide. :)
Ciao.

par Guakamol » 16 juin 2005, 16:48

hum ok que represente le & dans $titre& ???

par Invité » 16 juin 2005, 16:46

la deuxième solution ne marche pas non plus,

en fait il efface toute les lettres qui suivent les accents.
exemple:

ciné concert
çà donne:
cin

par Guakamol » 16 juin 2005, 16:42

j'ai fait une petite erreur sur mes points "=." il fallait lire "=".

par Invité » 16 juin 2005, 16:38

alors, en effet pour ta première solution çà ne marche pas, voilà ce que çà donne :

htmlentities(05 fÔø?2005)

sauf que février est écrit fÏ? (point d'interrogation à l'envers)


J'essaye la deuxième solution et je te tiens au courant....

Mary34

par Guakamol » 16 juin 2005, 16:23

ok j'y vois un poil plus clair effectivement tu genere une chaine qui elle sera interprétée par flash alors ...


je dirai essai ca :
echo"titre$i=htmlentities($titre)&";
                 echo"texte$i=htmlentities($texte)&";
Ca semble fou mais ca pourrai marcher :)

EDIT : il m'est venu un doute si ca marche pas essaies comme ca
echo"titre".$i."=."htmlentities($titre)."&";
       echo"texte".$i."=."htmlentities($texte)."&";

par mary34 » 16 juin 2005, 16:19

Je trouve cette syntaxe vraiment etrange est ce que titre$i=titre& est encore interprété derriere par flash?

Voici le code placé dans flash :

1/ loadVariables("inc/news4flash.php", this);


2/ numOrigin=num;
if (loaded=="true") {gotoAndPlay ("loaded");}
else {gotoAndPlay("loading");}

3/ danews="";
for (i=(num-1);i>=0;i--) {
danews += "<font color=\"#FFFFFF\">"+this["titre"+i] + "<font color=\"#FFFFFF\">"+newline + this["texte"+i];
if (this["url"+i]!=null) {
danews += "<br><a href=\""+"http://" + this["url"+i] + "\" target=\"_blank\">" + "<font color=\"#FFCC66\">" +this["url"+i] + "</font></a>";
}
danews += "<br><br>";
}

si çà peut vous aider...

par Cyrano » 16 juin 2005, 15:42

Le code que j'ai mis était par rapport à ce que je pouvais deviner: mais je ne connais pas le nom des champs de la table qui sont dans ta requête: affiche la requête complète ici et on refera un essai: la syntaxe que tu utilise est complètement hors norme. (et pas un select *..., j'ai besoin des noms des champs)

par Guakamol » 16 juin 2005, 15:38

Je trouve cette syntaxe vraiment etrange est ce que titre$i=titre& est encore interprété derriere par flash??

par Invité » 16 juin 2005, 15:34

En fait les news affiche des dates de concert donc:

echo"titre$i=$titre&";
>>> çà affiche la date du concert

 echo"texte$i=$texte&";
>>>> çà affiche un texte (infos général) du concert


merci de prendre du temps pour m'aider,
Mary34

par Guakamol » 16 juin 2005, 15:26

echo"titre$i=$titre&";
        echo"texte$i=$texte&"; 
Tu pourrais m'expliquer ces 2 lignes?? qu'est ce que ca affiche ???

par Invité » 16 juin 2005, 15:23

Je suis pas sur de mon coup mais je dirais que tu peux essayer avec ça :


PHP:

<?php
// ...
$req = mysql_query($query);
$res = mysql_num_rows($req);
if ($res == 0)
{
    echo "news = false";
}
else
{
    while($row = mysql_fetch_array($req))
    {
        echo($row['titre']);
        echo($row['texte']);
        echo $row['url'] != "" ? $row['url'] : null;
        $date = $row['date'];
        $annee = substr ($date,0,4);
        $mois = substr ($date,4,2);
        $jour = substr ($date,6,2);

        echo($jour ."/". $mois ."/". $annee);
    }
}
?>

>>>> Non, ton code ne marche pas, c'est même pire puisque maintenant il n'affiche plus de news du tout...

Mary34

par Cyrano » 16 juin 2005, 15:13

Je suis pas sur de mon coup mais je dirais que tu peux essayer avec ça :
<?php
// ...
$req = mysql_query($query);
$res = mysql_num_rows($req);
if ($res == 0)
{
    echo "news = false";
}
else
{
    while($row = mysql_fetch_array($req))
    {
        echo($row['titre']);
        echo($row['texte']);
        echo $row['url'] != "" ? $row['url'] : null;
        $date = $row['date'];
        $annee = substr ($date,0,4);
        $mois = substr ($date,4,2);
        $jour = substr ($date,6,2);

        echo($jour ."/". $mois ."/". $annee);
    }
}
?>
Il reste des points bizarres dans ce code, mais je ne sais pas exactement ce que tu voulais afficher au juste. La partie notament echo "news = false"; qui va afficher textuellement news = false s'il n'y a pas de résultat à la requête.