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?? (é 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