Code php qui ne marche pas

Fermé
niou - 24 oct. 2008 à 16:57
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 - 24 oct. 2008 à 18:12
Bonjour,
J'ai un code qui ne marche pas mais je ne sais pas pourquoi. le voila:
<?
$rand=rand(1,5);
if($rand==1)
{
?>
	<script type="text/javascript">
		swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default1.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
	</script>
<?
}
else if($rand==2)
{
?>
	<script type="text/javascript">
		swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default2.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
	</script>
<?
}
else if($rand==3)
{
?>
	<script type="text/javascript">
		swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default3.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
	</script>
<?
}
else if($rand==4)
{
?>
	<script type="text/javascript">
		swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default4.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
	</script>
<?
}
else($rand==5)
{
?>
	<script type="text/javascript">
		swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default5.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
	</script>
<?
}
?>


Je rentre toujours dans dans ma dernière condition (même si j'enlève:
else($rand==5)
{
?>
<script type="text/javascript">
swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default5.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
</script>
<?
}

Merci
A voir également:

5 réponses

Merci. Je ne peux pas tester ta solution car mon code m'appelle une animation flash.

Mais j'ai testé dans un autre fichier mon code sans le :
<script type="text/javascript">
swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default5.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
</script>

Et mon rand change bien a chaque fois ....

Une autre solution svp ??
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 oct. 2008 à 17:20
Ben, en fait, après avoir un peu mieux regardé ton code, je dirais simplement :
<?
<script type="text/javascript">
		swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default<? echo rand(1,5) ?>.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
	</script>
}

-1
Merci j'avais déjà tenté cette solution. voila le message d'erreur:

Message: loading XML data
XML data file: default<? echo rand(1,5);?>.xml
Fail to load dataFile default<? echo rand(1,5);?>.xml

Merci pour ton aide en tout cas
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 oct. 2008 à 17:35
Tu utilises du php avant ce morceau ?
Ta page est bien en *.php ?
Et PHP est bien installé sur ton serveur ?

Parce que je viens d'essayer chez moi, il n'y a pas de problème...
Si tu n'utilises pas de PHP avant, il ne faut pas oublier que la première fois que tu "ouvres" l'interpréteur, il faut lui préciser que c'est du php :
{xmlfile:"default<?php echo rand(1,5) ?>.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});

-1
Ma page était en .html. J'ai donc enregistré en .php
Mais cela m'affiche toujours la même page ... je ne vois pas du tout d'où viens l'erreur
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 oct. 2008 à 17:45
Question stupide :
Comment ouvres-tu ta page ?
Par un navigateur, je suppose...
=> Quelle est son adresse ?
-1
Je travaille en local avec easy php
Tu ne peux (malheureusement) pas y accéder ...
Sinon il y a peux être une autre possibilitée. J'ai demandé de l'aide dans un autre post. Peux etre que tu pourra m'aider. voici mon message:

Bonjour,
J'ai un fichier xml qui se présente comme cela:

<slide_show>
<options>
<background>transparent</background> <!-- #RRGGBB, transparent -->
<interaction>
<speed>25</speed>
<!-- [-360,360] degrees per second -->
<default_speed>25</default_speed>
<!-- [-360,360] degrees per second -->
<default_view_point>50%</default_view_point>
<!-- [0,100] percentage -->

</interaction>
</options>

<photo href="http://www.flshow.net/" target="_self">images2/1.png</photo>
<photo href="http://www.flshow.net/" target="_self">images2/2.png</photo>
<photo href="http://www.flshow.net/" target="_self">images2/3.png</photo>
<photo href="http://www.flshow.net/" target="_self">images2/4.png</photo>
<photo href="http://www.flshow.net/" target="_self">images2/5.png</photo>
</slide_show>



j'aimerais bien que mes images changent aléatoirement. Comment faire dans un fichier xml ?
En php, cela devrait donner quelque chose comme cela:
<photo href="http://www.flshow.net/" target="_self">images2/<?php echo rand(1,5) ?> .png</photo>

Mais comment faire dans un fichier xml ??

Merci
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 oct. 2008 à 18:12
Je travaille en local avec easy php
Tu ne peux (malheureusement) pas y accéder ...

Je ne veux pas y accéder, je voudrais juste que tu me dises l'adresse indiquée par le navigateur.
Normalement, elle devrait être du style "http://localhost/monprojet/mapage.php" (ou http://127.0.0.1/...).

Si tu n'e l'utilises pas, je ne saurais trop te conseiller de passer à Firefox, et d'installer le plugin WebDeveloper.
Il intègre une console d'erreur. Peut-être qu'il y a une erreur plus haut dans ton code, et que le problème vient de là...

Tu utilises quoi, pour éditer tes fichiers PHP ?
Je te conseille d'utiliser Notepad++ (ou un autre éditeur à coloration syntaxique). S'il y a des problèmes de guillemets tu le verras plus facilement...

Il faudrait aussi voir la version de PHP que tu utilises : crées un fichier info.php dans lequel tu mets :<?php phpinfo()?>
Extrait de la doc PHP :
Depuis PHP 4.2.0, il n'est plus besoin d'initialiser le générateur de nombres aléatoires avec srand ou mt_srand car c'est fait automatiquement.
=> Si tu as une version antérieure de PHP, il faut initialiser le générateur de nombres aléatoires...

Sinon, tu peux essayer en procédant par étapes :
1. Tu crées un nouveau fichier test.php (je sais, le nom est original ;-)
2. Tu l'ouvres avec ton éditeur, et tu mets :
<body>
<?php echo rand(1,5) ?>
</body>

Tu l'ouvres dans ton navigateur préféré, normalement tu devrais obtenir l'affichage d'un chiffre aléatoire entre 1 et 5...
3. Tu l'ouvres avec ton éditeur, et tu tapes :
<body>
<script type="text/javascript">
		swfobject.embedSWF("Carousel.swf", "carousel1", "100%", "100%", "9.0.0", false, {xmlfile:"default<?php echo rand(1,5) ?>.xml", loaderColor:"0xCCCCCC"}, {wmode: "transparent"});
</script>
</body>

Tu l'ouvres dans ton navigateur préféré, normalement tu devrais obtenir l'affichage du Carousel.swf (si tu l'as mis dans le même répertoire !) Sinon, regarde le source.


Pour répondre à ton autre question :
Le XML est un format de données. Ce n'est pas un langage de programmation.
Du coup, tu ne peux pas générer de nombre aléatoire dans du XML...

C'est au moment où tu vas récupérer les données (avec PHP par exemple) et travailler dessus que tu vas pouvoir appliquer des fonctions dessus, pas avant.
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 oct. 2008 à 17:09
Bonjour.

Tu peux déjà faire un echo $rand.'<br />'; juste après ton affectation.
Tu verras quelle valeur a ta variable, et si c'est normal que tu aies toujours la même chose...
-1