Page 1 sur 2

problème d'accent PHP/Flash

Posté : 16 juin 2005, 15:00
par Mary34
bonjour à tous,

J'utilise du php pour mettre des news dynamiques sur mon site en flash.
Tout marche sauf que j'ai un problème d'accent que je n'arrive pas à résoudre.

Je précise que j'ai essayé de mettre le code: System.useCodepage sur flash mais çà ne marche toujours pas.
J'ai aussi essayé utf8_encode et çà ne donne rien.
Je ne suis pas une pro en php et je pense que je n'arrive pas à le placer au bon endroit pour qu'il soit pris en compte...

voici un morceau du code :
<?php 
 ...
 $req = mysql_query($query);
 $res = mysql_num_rows($req);
 $i=0;
 if ($res == 0)
    { echo "news = false";}
 else 
    { while($row = mysql_fetch_array($req))
             {
                extract($row);
 
                       //echo"$id<BR>
                 echo"titre$i=$titre&";
                 echo"texte$i=$texte&";
                 if ($url) {        echo"url$i=$url&"; }
                 $date = $date;
                 $annee = substr ($date,0,4);
                 $mois = substr ($date,4,2);
                 $jour = substr ($date,6,2);
 
                 echo "date$i=$jour/$mois/$annee&";
                 
                 $i++;
     }
 }
 
 echo "num=$i&loaded=true";
 ?>
Merci d'avance à celle/celui qui pourra m'aider, je suis bloquée et je ne sais plus quoi faire...

Mary34

Posté : 16 juin 2005, 15:03
par sausee2005
un conseil utilise les balises au dessus de ton message pour mettre ton code
utilise plutôt le
 pour le colorer

Posté : 16 juin 2005, 15:08
par Guakamol
Je n'y connais rien en flash, est ce qu'il reconnais les caractere spéciaux HTML?? (&eacute; pour le é par exemple?), si c'est le cas tu peux essayer avec la fonction htmlentities()

Posté : 16 juin 2005, 15:10
par Invité
Je ne sais pas si c'est de celà dont tu parles?



<?php

header("Pragma: no-cache");
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");

include ("connect.php");

$db_connect = mysql_connect($sqlhostname,$login,$password);
$base_selection = mysql_select_db($base,$db_connect);

$query = "SELECT * FROM";
$req = mysql_query($query);
$res = mysql_num_rows($req);
$i=0;
if ($res == 0)
{ echo "news = false";}
else
{ while($row = mysql_fetch_array($req))
{
extract($row);

//echo"$id<BR>
echo"titre$i=$titre&";
echo"texte$i=$texte&";
if ($url) { echo"url$i=$url&"; }
$date = $date;
$annee = substr ($date,0,4);
$mois = substr ($date,4,2);
$jour = substr ($date,6,2);

echo "date$i=$jour/$mois/$annee&";

$i++;
}
}

echo "num=$i&loaded=true";
?>

Posté : 16 juin 2005, 15:13
par Cyrano
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.

Posté : 16 juin 2005, 15:23
par Invité
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

Posté : 16 juin 2005, 15:26
par Guakamol
echo"titre$i=$titre&";
        echo"texte$i=$texte&"; 
Tu pourrais m'expliquer ces 2 lignes?? qu'est ce que ca affiche ???

Posté : 16 juin 2005, 15:34
par Invité
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

Posté : 16 juin 2005, 15:38
par Guakamol
Je trouve cette syntaxe vraiment etrange est ce que titre$i=titre& est encore interprété derriere par flash??

Posté : 16 juin 2005, 15:42
par Cyrano
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)

Posté : 16 juin 2005, 16:19
par mary34
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...

Posté : 16 juin 2005, 16:23
par Guakamol
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)."&";

Posté : 16 juin 2005, 16:38
par Invité
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

Posté : 16 juin 2005, 16:42
par Guakamol
j'ai fait une petite erreur sur mes points "=." il fallait lire "=".

Posté : 16 juin 2005, 16:46
par Invité
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