Script php/html structure if ouu switch case

Résolu/Fermé
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012 - Modifié par Hate64 le 13/02/2012 à 22:37
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012 - 14 févr. 2012 à 19:29
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.



A voir également:

10 réponses

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
14 févr. 2012 à 00:05
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);
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
14 févr. 2012 à 08:48
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 ?
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
14 févr. 2012 à 09:16
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
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
Modifié par Hate64 le 14/02/2012 à 09:56
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?
0

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

Posez votre question
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
14 févr. 2012 à 10:14
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
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
14 févr. 2012 à 10:33
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 ?
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
14 févr. 2012 à 10:35
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>
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
14 févr. 2012 à 10:56
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
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
14 févr. 2012 à 10:58
Ok, merci beaucoup ! Je teste tout ça et si j'ai un souci, je te dis ! encore merci :)
Bonne journée !
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
14 févr. 2012 à 12:04
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û?
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
14 févr. 2012 à 12:12
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>';
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
Modifié par Mimiste le 14/02/2012 à 14:21
le probleme est a la ligne avant (75 donc), il doit manquer un ; a la fin de la ligne
0
Hate64 Messages postés 10 Date d'inscription vendredi 10 février 2012 Statut Membre Dernière intervention 16 février 2012
14 févr. 2012 à 19:29
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 !
0