IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mise en place d'un affichage multi-screen en reseau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Mise en place d'un affichage multi-screen en reseau
    Bonjour a tous et a toutes !

    Donc je suis actuellement en stage dans un lycée ou je dois réaliser un affichage de messages d'informations en trois points du lycée. Les messages seront diffusés sur de vieux pc (PIII) et avec leur écran CRT. La connexion se fait par câble RJ45.

    D'un point de vue général la rédaction et la diffusion d'un message se passe ainsi :

    Dans un premier temps une des personnes de l'administration se connecte a la plateforme web (développée en PHP/MySQL, cette dernière étant terminée) afin de pouvoir, suivant ses droits soit créer, supprimer ou modifier un message . Ces données sont transmises et inscrites dans une base de donnée MySQL.

    C'est ici que les problèmes commencent : le premier est le choix du langage qui me permettra de récupérer ces données, de les mettre en forme et ensuite de les afficher sur les moniteurs dispersés dans le lycée.

    Pour l'instant j'envisage de développer un afficheur en PHP( style une visionneuse avec des slide).
    Est ce que ce langage pourra me permettre de faire un formatage, (d'un point de vue design), correct des messages lors de la diffusion ?
    Est-il possible avec PHP de gérer l'alternance des messages ?
    Serai-t-il possible d'afficher ses messages directement en full screen?

    Et j'aimerai aussi avoir l'avis des personnes ayant un bon niveau en programmation de type objet (soit C# soit C++) pour savoir si jamais ce ne serai pas plus simple d'utiliser un de ces langages.

    Je précise que je n'ai pas de grandes connaissances en programmation objet j'ai seulement les bases.


    Il me reste un mois avant la fin de ce projet donc si certains pouvait me dire quel est le meilleur langage pour le rapport temps/qualité .

    Voila j'espère que quelqu'un pourra m'éclairer sur ce problème

    Muganda

    Ps : Je ne sais pas si je suis dans la bonne section afin de poster ce message mais si ce n'est pas le cas déplacez le

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    as-tu besoin de "temps réel" ? ou est-ce qu'une mise à jour de la page à afficher toutes les x min te conviendrait ?


    dans le premier cas, php mysql ne me semble pas adapté... et je m'orienterais vers un protocole réseau avec gestion des événements (CORBA, DCom ou .Net Remoting conviendrait )

    dans le second cas, n'importe quel langage web / base de données feront l'affaire
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    C'est un point que j'ai oublié de souligner les messages auront une durée de vie limitée une date de création et une date de fin qui elle sera choisi par l'auteur du message.

    Au départ je pensais faire du temps réel mais je pense que ce serait consommer plus de ressource que nécessaire donc il semblerai plus pratique et plus simple de faire de façon récurrente une lecture des messages dont la validité est encore bonne et les afficher dans ce cas.

    De plus les trois langages que tu m'a cité pour le temps réel ne me disent absolument rien ^^
    En tout cas merci de ces conseils gorgonite !

    Et je voulais aussi savoir si on pouvait faire de Mozilla une visionneuse par l'intermédiaire du PHP ?

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par Muganda Voir le message
    De plus les trois langages que tu m'a cité pour le temps réel ne me disent absolument rien ^^
    ce ne sont pas des langages mais des API pouvant être utilisés dans plein de langages

    nb : ce n'est pas réellement du temps réel, j'ai mis des guillemets... mais avec les événements, tu auras de quoi faire illusion pour une petite appli comme celle-ci

    Citation Envoyé par Muganda Voir le message
    Et je voulais aussi savoir si on pouvait faire de Mozilla une visionneuse par l'intermédiaire du PHP ?
    aucun soucis
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Pour te simplifier la vie utilise le WEB, j'avais justement un projet sous le coude qui faisait la même chose, mais j'ai changer de travail et du coup c'est tombé à l'eau.

    Mon but etait en faite de crée sur une machine un intranet gérant l'affichage et l'administration de l'application.

    Donc pour administrer on ce connecter sur url/adm/ saisie de login/passe et on inscrivez les messages.
    Pour l'affichage trés simple on allait sur url/ ( le script d'affichage sur index comme ca facile.
    Ca me permet justement d'afficher sur X endroits les nouvelles, au pire seul un décalage entre les actualisations des pages sont possibles ( mais visible humainement que si les X sources sont côte à côte ).
    Aprés suivant la machine j'activé le mode plein écran d'IE ( F11 ) et j'était tranquille.

    Donc dans ton cas de figure je conserverai php/mysql pour l'affichage, que j'actualiserais toute les 1 min.
    Ensuite pour la mise en forme tu peux t'orienté vers CSS.
    Aprés si tu veux plus d'infos hesite pas.

    (PS : me dit pas que tu travail sur Jean Moulin à Pézénas c'est là ou j'était lol ).
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Citation Envoyé par SirDarken Voir le message
    (PS : me dit pas que tu travail sur Jean Moulin à Pézénas c'est là ou j'était lol ).
    Non je suis désolé SirDarken mais je ne suis pas a Pézénas . Quoiqu'il en soit je te remercie de tes conseils, je me suis donc orienté vers une programmation php/mysql mais le je bloque un peu.

    Voicie le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php
    include('fonctions1.inc.php');
     
    	$dbHost = "localhost";
    	$dbUser = "root";
    	$dbPass = "";
    	$dbName = "site";
     
    	$connexion = @mysql_connect($dbHost, $dbUser, $dbPass);
    	$link = mysql_select_db($dbName, $connexion);
    	if(!$connexion || !$link)
    	{
    		echo "Désolé, connexion a ".$dbHost." impossible !\n";
    		exit;
    	}
    	$date = date('Y-m-d');
     
    	$req = "SELECT id_message, num_categorie, titre, message FROM t_message WHERE '$date' <= date_fin";
     
    	$result = mysql_query($req);
     
    	$nb_ligne = mysql_num_rows($result);
     
    	 while($ligne = mysql_fetch_array($result))
    	   {   
    	       $id_message[] = $ligne['id_message'];
    		   $categorie[] = categorie($ligne['num_categorie']);
    		   $titre[] = $ligne['titre'];
    		   $message[] = $ligne['message'];
     
    	   }
    $compteur = $nb_ligne;	
    while($i < $compteur+1)
    	{	
    		if($i > $nb_ligne)
    		{
    			$i = 0;
    		}
    		else
    		{
    			   echo 
    			   "
    			   	<html>
    				<head>
    				<title>$titre[$i]</title>
    				<link rel='stylesheet' type='text/css' href='style_affichage.css'>
    				<META http-equiv='Refresh' content='10'>
    				</head>
    				<body>
    					<div class='contenu_message'>
    					<span id=date>$date</span><h1>$categorie[$i]</h1>
    						<h2>$titre[$i]</h2>
    		
    						<div id='message'>
    							<p>$message[$i]</p>
    						</div>
    				
    					</div>
    				</body>
    				</html>
    			   ";
    			  ++$i;
    		}
    		$compteur++;
    	}
    ?>
    J'ai donc essayé ici de faire un boucle qui me permettait de changer de message a chaque rafraichissement de page... mais bizarrement cela ne fonctionne pas. Donc je suppose que m'a boucle ne convient pas mais je n'ai pas vraiment d'autre idée donc si jamais quelqu'un pouvait éclairer ma lanterne je lui en serai très reconnaissant ^^


    Ps: Si jamais il y a des aberrations de langage je m'en excuse mais je débute.

  7. #7
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Hum pourquoi changer de message à chaque actualisation ?

    Pour moi le but de rafraichir la page ne sert qua avoir les derniers messages 1 à 2 min aprés leurs insertions.

    Aprés il vas m'en falloir plus sur ce que tu désire faire.
    Desire-tu une liste de tous tes messages ?
    La liste des 10,15,20 derneirs messages ?
    Le dernier message uniquement?
    Un message au hazard dans toutes la liste ?
    Un message au hazard parmis 10,15,20 derniers messages?

    Ca m'aidera plus en sachant quel résultat tu attend.

    Sinon pour choisir un message au hazard il existe une fonction simple rand();
    Dans ton cas de figure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $hazard = rand(0,nb_ligne);
    //et ensuite au lieu de faire une boucle avec un compteur tu affiche directement.
    echo "
    <html>
    <head>
    <title>$titre[$hazard]</title>
    <link rel='stylesheet' type='text/css' href='style_affichage.css'>
    <META http-equiv='Refresh' content='10'>
    </head>
    <body>
    <div class='contenu_message'>
    <span id=date>$date</span><h1>$categorie[$hazard]</h1>
    <h2>$titre[$hazard]</h2>
    <div id='message'>
    <p>$message[$hazard]</p>
    </div>
    </div>
    </body>
    </html>";
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    En faite je souhaite changer de message a chaque actualisation car je pense que pour l'utilisateur si jamais il reste 2 minutes devant l'écran, il aurait la possibilité de lire deux messages.

    En faite les messages que je désire afficher sont déjà triés avec la requete sql car cela ne concerne uniquement ceux qui sont encore valide au niveau de la date de fin de validité du message. Donc en faite je souhaite afficher tous les messages qui sont retournés par la requête et dont le nombre est indiqué par la variable $nb_mess.

    En gros le principe serait d'afficher un message pendant 1minutes, puis un autre, et si jamais il n'y a plus de nouveau messages a afficher alors on ré affiche les premiers et ainsi de suite pendant toute la journée.

  9. #9
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Ok je voie un peu plus comment faire reste 1 choix à faire.

    Imaginons nous avons 10 messages valides.
    Veux-tu faire un aléatoire sur les 10?
    Ou bien veux tu voir les 10 messages un aprés l'autre, puis revenir au début ?

    Dans tout les cas parcontre il faudra sortir un peu de code charger de stocker la ou les anciennes valeurs, et là le choix importe surtout vis à vis du developpeur.
    Soit repassé sur un javascript, soit en utilisant les sessions, voir encore même d'autre solutions comme l'ecriture/lecture d'un fichier texte.

    Précise-moi la dernière question et on regardera suivant mon emploi du temps comment ce lancer là-dédans.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Salut SirDarken,

    Je te remercie de m'avoir donné la fonction rand() pour le moment je pense que cela devrait suffire cependant je ne pense pas que cette méthode me permette de définir une priorité sur les messages mais si par miracle tu as une idée pour m'éclairer la dessus je suis tout ouïe ^^.

  11. #11
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Je n'est pas de solution miracle, mais on peut toujours bidouiller.

    En gros on défini des niveau de prioritée, on stock les messages déja affiché et quand on a fini un niveau on passe au suivant.
    Incovénient ca vas être un jolie morceau de code à pondre, l'avantage c'est qu'on peut charger toute la bdd, et faire le traitement ensuite ( attention cependant si on fait ca il faut penser que si un nouveau message arrive on le voie pas avant un rechargement de la bdd ce qui rend l'avantage quasiment obsolète).

    En gros en therme de logistiques ca donne :

    Prio1 : 5 messages.
    Prio2 : 3 messages.
    Prio3 : 7messages.

    Je crée 3 tableau que je rempli avec les messages.
    Je stock en session ( voir tuto sur ce site ) le tableau ou je me trouve, et le dernier la liste des messages deja affiché.
    Appelons $_Session['etat_tableau'] ma variable pour le tableau.
    Appelons $_Session['deja_vu'] les messages deja afficher.
    Dans le code on retrouvera:

    Si $_Session['etat_tableau'] == '' || $_Session['etat_tableau'] == prio1 {
    //on est sur la prio1
    -tu recupére la taille du tableau de prio1
    -si le nombre d'element est égal au nombre deja affiché (pour cela on explode() notre variable $_Session['deja_vu'] qui aura la forme imaginons de 1-5-7-8, donc on stock tout les affichés dans un tableau temporaire, et si le temporaire et le prio1 on la même taille c'est qu'on a tout vu)
    -alors $_Session['etat_tableau'] = prio2 // on passe en prio2 ne pas oublier d'effacer $_Session['deja_vu'] pour le tableau prio2 sinon on affichera jamais les autres prios et on risque une erreur si les tailles changent.
    -sinon on fait un rand entre 0 et le nombre max d'élement du tableau.
    -on fait une boucle qui vas tester si le rand est deja dans la liste des affichés (on a deja le tableau temporaire)
    -on affiche ou pas suivant si le rand est bon(à prévoir donc une boucle sur la boucle qui test le rand enfin un tant que).
    -si on affiche on ajoute à notre $_Session['deja_vu'] la valeur affiché.
    (forcément à un moment cette variable sera pleine mais ca peut être long imagine un rand(0-20) ou il manque le 18 vas falloir calculer peut-etre longtemps pour avoir le 18)
    }

    Si $_Session['etat_tableau'] == prio2 {
    //on est sur la prio2 pareil que prio1
    }

    Si $_Session['etat_tableau'] == prio3 {
    //on est sur la prio3 pareil que prio1
    }

    Bon je sort en vitesse et surement quelques améliorations seraient requises, je ne te pond pas le code malheureusement car il sera assez cousu et je doute avoir le temps pour le moment.
    En espérant t'aider un peu ^^.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  12. #12
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Juste un petit mot pour dire que c'est tout a fait réalisable en PHP.

    J'ai une application web de gestion de fédération sportive qui permet de gérer des championnats de full contact en temps réel.

    Les résultats et les combats sont affichés sur 2 écrans géants (ou moniteur).
    Les deux se connectent à la page web (en plein écran) qui affiche les messages (2 affichages distincts)

    Tu peux tester la démo ici :

    https://secure.fedegestion.com/demo/

    login : demo_fede
    pass : demo

    une fois connecté, clique sur Gestion dans le menu Championnat de gauche.
    clique ensuite sur championnat en cours
    et clique sur CHAMPIONNAT DE FRANCE

    Clique sur ADMINISTRER
    puis dans le menu du haut clique sur Affichage

    Tu peux tester les affichages en cliquant sur Panneau1 ou Panneau 2


    J'espère que ça pourra t'aider ...

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci a vous deux pour ces idées, je vais commencer maintenant a essayer de mettre en place les priorités.

    Et merci N1bus, c'est exactement ou a peu de chose prêt ce que je dois faire. Je vais donc m'inspirer un peu de ce site

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en place de l affichage de surveillance des machines dans la zone de production
    Par youssef19901990 dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 21/03/2014, 10h48
  2. Mise en place d'une application multi-couche
    Par thomasaurelien dans le forum Débuter
    Réponses: 1
    Dernier message: 17/08/2012, 16h46
  3. Réponses: 1
    Dernier message: 10/10/2010, 15h38
  4. Mise en page et affichage multi-pages
    Par tyler94 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 50
    Dernier message: 14/05/2009, 17h35
  5. [phpMyAdmin] [Configuration] Mise en place d'une configuration multi-utilisateurs
    Par oceane751 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 07/06/2007, 08h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo