Script php/html structure if ouu switch case [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012
-
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012
-
Bonjour (ou bonsoir plutot !),

Voilà, je me dirige vers vous parce que j'ai un p'tit soucis !!
Je suis nul en programmation (ca, c'est dit !) mais dans le cadre d'un projet universitaire, je dois faire un script qui, à partir d'un fichier .txt, je dois en fonction du premier mot de ce fichier, insérer telle ou telle image.

Je m'explique : il s'agit en fait d'une sorte de script météo; si le premier mot du fichier *.txt est soleil (ou nuage), je dois afficher l'image "soleil.gif" (ou nuage.gif) et écrire sur cette image le deuxième mot du fichier qui est la température. Vous voyez à peu près ce que je veux dire ?

Voilà le script que j'ai écrit, et j'aurais besoin de votre avis pour que je l'améliore et surtout pour que mon script fonctionne !! (je précise de nouveau que je n'ai jamais fait de programmation, donc soyez indulgent et expliquez moi bien chaque étape !!) Parce que sinon, vous allez vite me perdre :)

<?php 
$num_ligne=2; 
$fichier = file('meteo.txt'); 
echo(""); 
$position=explode(";",$fichier[$num_ligne-1]); 

switch ($position[0]) 
{ 
    case "soleil": 
        echo '<img src="soleil.gif" />'; 
        echo '<DIV STYLE="position:absolute; top:30; left:130"> 
  <FONT FACE="Verdana" COLOR="#FFFFFF" size 7> 
  <b>.$position[1].</b> 
  </FONT> 
 </DIV>'; 
    break; 
    case "pluie": 
        echo '<img src="pluie.gif" />' 
        echo '<DIV STYLE="position:absolute; top:30; left:130"> 
  <FONT FACE="Verdana" COLOR="#FFFFFF" size 7> 
  <b>.$position[1].</b> 
  </FONT> 
 </DIV>'; 
   break; 
  [...] 
} 
?>  



Cordialement,
H.



10 réponses

Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
201
Bonjour

J'ai pas très bien compris les premieres lignes de ton code, moi j'aurai fait quelque chose comme ça

$fichier = file_get_contents('meteo.txt');
$position=explode(";",$fichier);
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Ok, je vais changer le début par ce que tu m'as dit ! Mais le reste du script, est il bon ou non ?

Et j'avais une autre question, est ce que ma div permettrait d'écrire sur l'image ?
Ou est ce mal écrit ?
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
201
Le reste a l'air bon, juste un détail on utilise plus
<FONT FACE="Verdana" COLOR="#FFFFFF" size 7>
Normalement maintenant il faut utiliser les propriété CSS pour modifier le style d'écriture

Sinon pour la div ça devrait fonctionner, elle devrai ce mettre par dessus. Si elle passe derrière il faudra modifier la propriété z-index du css pour définir leur position sur la profondeur genre
style="z-index:0" pour l'image et style="z-index:1" pour le texte
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Si dans le CSS, je définis :
span       {font-family : Verdana ; color:#FFF ; font-size : 12px;}


Dans mon fichier .php, je devrais juste écrire :
echo '<DIV STYLE="position:absolute; top:30; left:130"> 
<b><span>.$position[1].</span></b> 
</DIV> 

?


Sinon, est ce que je peux écrire directement dans le fichier php ceci :
<font size=\"7\" face=\"Verdana\">.$position[1].</font>

?
Ca me permettrait de ne pas manipuler le css, non?
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
201
justement le css n'a pas a etre manipulé, dans ton fichier css tu definie une classe

.MeteoStyle {font-family : Verdana ; color:#FFF ; font-size : 12px; font-weight:bold;}

et dans ton php

<span class="MeteoStyle">.$position[1].</span>

et partout ailleur ou tu mettra class="MeteoStyle" tu aura ce style qui s'appliquera
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Ok, j'comprends ! Merci beaucoup, j'essaye et je te tiens au courant :)
dernier petit truc: en fait, je fais un site internet où j'ai récupéré un kit graphique. Donc que des pages html, et je voulais savoir si on pouvait inclure à la suite du code html ce script php directement ? ou faut-il que dans le html, je dise d'aller chercher un second fichier php ?
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

en gros, est ce que je peux faire ca ou on a pas le droit de mélanger php et html?

<html>
[...]
<?php 
$num_ligne=2; 
$fichier = file('meteo.txt'); 
echo(""); 
$position=explode(";",$fichier[$num_ligne-1]); 

switch ($position[0]) 
{ 
    case "soleil": 
        echo '<img src="soleil.gif" />'; 
        echo '<DIV STYLE="position:absolute; top:30; left:130"> 
  <FONT FACE="Verdana" COLOR="#FFFFFF" size 7> 
  <b>.$position[1].</b> 
  </FONT> 
 </DIV>'; 
    break; 
    case "pluie": 
        echo '<img src="pluie.gif" />' 
        echo '<DIV STYLE="position:absolute; top:30; left:130"> 
  <FONT FACE="Verdana" COLOR="#FFFFFF" size 7> 
  <b>.$position[1].</b> 
  </FONT> 
 </DIV>'; 
   break; 
  [...] 
} 
?>
[...]
</html>
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
201
si tu peux le faire, faut juste renommer pour que le fichier s'appel truc.php par exemple, pour que le serveur interprète ton code et pas truc.html
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Ok, merci beaucoup ! Je teste tout ça et si j'ai un souci, je te dis ! encore merci :)
Bonne journée !
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Bon et beh, j'ai un souci =)

Je viens de tester tout ca, j'ai changé mon script, j'ai renommé le fichier meteo.html en meteo.php.
Et quand je lance le fichier dans mon navigateur, on me re-écrit une partie du script et j'comprends pas vraiment pourquoi ...


Voilà ce que l'on me met :

'; echo '
.$position[1].
'; break; case "soleilnuage": echo '' echo '
.$position[1].
'; break; case "soleilpluie": echo '' echo '
.$position[1].
'; break; case "lune": echo '' echo '
.$position[1].
'; break; case "lunenuage": echo '' echo '
.$position[1].
'; break; case "lunepluie": echo '' echo '
.$position[1].
'; break; } case "neige": echo '' echo '
.$position[1].
'; break; case "orage": echo '' echo '
.$position[1].
'; break; ?>


Sais-tu à quoi ça pourrait être dû?
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Je viens d'uploader sur le ftp les fichiers et le message d'erreur que l'on me donne est le suivant :

Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in /var/www/m/ma/man/manuel.bouras.perso.sfr.fr/public_html/Site/meteo.php on line 76

La ligne 76 correspond à ce bout de code :

76 echo '<DIV STYLE="position:absolute; top:30; left:130">
77 <span class="MeteoStyle">.$position[1].</span>
78 </DIV>';
Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
201
le probleme est a la ligne avant (75 donc), il doit manquer un ; a la fin de la ligne
Messages postés
10
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
16 février 2012

En effet, t'avais raison, j'avais oublié un ";" à la fin de la ligne 75 mais également, les apostrophes de chaque coté de ' .$position[1]. ' ! Merci pr ton aide !