Bouton changement d'image
Résolu
nocram18
Messages postés
471
Date d'inscription
Statut
Membre
Dernière intervention
-
nocram18 Messages postés 471 Date d'inscription Statut Membre Dernière intervention -
nocram18 Messages postés 471 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comment ça va ?
Bon j'ai un site internet que j'ai finis de coder pour la version public. Cette dernière comporte une page d'accueil avec des serveurs de jeux et une image qui annonce si ils sont allumé, éteint ou en maintenance.
La je suis en train de faire une session admins, dans celle ci il y a des boutons reliés aux serveurs en php (shell_exec) qui permettent d'effectuer des interactions.
Genre le bouton éteindre serveurs counter strike va donner : shell_exec('/etc/init.d/css stop')
J'aimerai bien que en cliquant sur ce bouton, que l'image qui est relié au serveur (donc dans la partie public) change. Si on clique sur le bouton arrêté, elle met le serveur en off, sur le bouton allumé, elle met le serveur en on ....
Une idée ? j'ai checké pas mal de forum de js mais je ne trouve pas mon bonheur.
Ca donnerai en gros ça : https://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_lightbulb
Mais d'une autre section qui n'a pas la même feuille de style non plus.
En espérant que vous m'aillez compris car cela commence à devenir compliqué ;)
++ les ccmien(ne)s bisous :D
Comment ça va ?
Bon j'ai un site internet que j'ai finis de coder pour la version public. Cette dernière comporte une page d'accueil avec des serveurs de jeux et une image qui annonce si ils sont allumé, éteint ou en maintenance.
La je suis en train de faire une session admins, dans celle ci il y a des boutons reliés aux serveurs en php (shell_exec) qui permettent d'effectuer des interactions.
Genre le bouton éteindre serveurs counter strike va donner : shell_exec('/etc/init.d/css stop')
J'aimerai bien que en cliquant sur ce bouton, que l'image qui est relié au serveur (donc dans la partie public) change. Si on clique sur le bouton arrêté, elle met le serveur en off, sur le bouton allumé, elle met le serveur en on ....
Une idée ? j'ai checké pas mal de forum de js mais je ne trouve pas mon bonheur.
Ca donnerai en gros ça : https://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_lightbulb
Mais d'une autre section qui n'a pas la même feuille de style non plus.
En espérant que vous m'aillez compris car cela commence à devenir compliqué ;)
++ les ccmien(ne)s bisous :D
A voir également:
- Bouton changement d'image
- Changement dns - Guide
- Image iso - Guide
- Bouton reinitialisation pc - Guide
- Diagnostic bouton photo - Accueil - Outils
- Bouton home clavier ✓ - Forum PC portable
3 réponses
Pur faire ça il faut qu'il y ait une base de données qui retienne l'état du serveur(on/off).
Et donc changer cet état quand on lance le shell, bref pas grand chose avec javascript car côté client.
Et donc changer cet état quand on lance le shell, bref pas grand chose avec javascript car côté client.
'lut
Comment se présente le script
À défaut, le nom de processus pour chaque serveur de jeu potentiel est-il unique ? (on peut quand même distinguer entre 2 processus de jeux avec le même nom, par ex.
from human import idiocy
del idiocy
Comment se présente le script
/etc/init.d/css? Dispose-t-il d'une option permettant se savoir si le serveur tourne (généralement au travers de l'écriture d'un fichier de PID / "pidfile" lors du lancement, et sa lecture lors de la demande d'état) ?
À défaut, le nom de processus pour chaque serveur de jeu potentiel est-il unique ? (on peut quand même distinguer entre 2 processus de jeux avec le même nom, par ex.
srcds/Source Dedicated Server me vient en tête, via les paramètres passés au lancement du processus (qui sont conservés par Linux dans
/proc/[PID]/cmdline) mais c'est plus simple si les noms de processus diffèrent)
from human import idiocy
del idiocy
Ouh la ca ce complique. Tout simplement j'ai un bouton qui excute la commande pour demerrer le serveur. Celui la il fonctionne avec les autorisaitons root apache ... .
Maintenant c'est que j'aimerai c'est que des que l'on clique sur le bouton, sur la page d'accueil du site l'image passe de on, à off, ou maintenance ...
Je suis en train de tester un deuxieme bouton manuel. Ca serait peut etre plus simple pour ce que je veux en faire.
Merci de ta réponse ;)
Maintenant c'est que j'aimerai c'est que des que l'on clique sur le bouton, sur la page d'accueil du site l'image passe de on, à off, ou maintenance ...
Je suis en train de tester un deuxieme bouton manuel. Ca serait peut etre plus simple pour ce que je veux en faire.
Merci de ta réponse ;)
Ça se complique car c'est aussi quelque chose à prendre en compte; avant d'afficher la bonne image ou d'effectuer la bonne action, il faut savoir si le serveur dont on veut alterner l'état fonctionne ou non. Mettre les 2 boutons "Démarrer" et "Arrêter" n'est pas dur ni une idée idiote, ceci dit appuyer sur ces boutons, et sans faire de vérification d'état du serveur avant et après la vraie demande au scripts (ici
L'exemple simple serait que tu modifies la config d'un serveur et qu'il refuse de démarrer à cause d'une erreur de syntaxe. Si le PHP affiche que le serveur est en marche, on est à coté de la réalité.
Mis à part ça, il est possible d'alterner l'image affichée sur ta page avec un petit peu de JavaScript; mais dans ce cas il faut envoyer une requête d'allumage/extinction de serveur et attendre la réponse, ce qui nous ramène non seulement au problème ci-dessus, ainsi qu'à l'écriture d'une page PHP répondant à une requête JS.
Quite à faire simple (au début), je garderai ce comportement synchrone: un lien/bouton "simple" rechargeant la page avec un paramètre demandant le démarrage/arrêt d'un serveur, le script PHP attend que ça soit fini et affiche la bonne image.
/etc/init.d/css), ne garantis pas que le serveur tourne ou non au final -- ce qui est bête.
L'exemple simple serait que tu modifies la config d'un serveur et qu'il refuse de démarrer à cause d'une erreur de syntaxe. Si le PHP affiche que le serveur est en marche, on est à coté de la réalité.
Mis à part ça, il est possible d'alterner l'image affichée sur ta page avec un petit peu de JavaScript; mais dans ce cas il faut envoyer une requête d'allumage/extinction de serveur et attendre la réponse, ce qui nous ramène non seulement au problème ci-dessus, ainsi qu'à l'écriture d'une page PHP répondant à une requête JS.
Quite à faire simple (au début), je garderai ce comportement synchrone: un lien/bouton "simple" rechargeant la page avec un paramètre demandant le démarrage/arrêt d'un serveur, le script PHP attend que ça soit fini et affiche la bonne image.
Oui c'est ce que j'ai fais:
<?php
$output = shell_exec('/etc/init.d/css start');
echo "<pre>$output</pre>";
?>
Mais rajouter quel js pour lui dire que l'image devienne on ou off ou maintenance ?
Je test avec ca la:
<button onclick="document.getElementById('myImage').src='serveur_on.png'">Serveur ON</button>
<img id="myImage" src="" style="width: auto">
<button onclick="document.getElementById('myImage').src='serveur_off.png'">Serveur OFF</button>
<button onclick="document.getElementById('myImage').src='serveur_maintenance.png'">Serveur en Maintenance</button>
<?php
$output = shell_exec('/etc/init.d/css start');
echo "<pre>$output</pre>";
?>
Mais rajouter quel js pour lui dire que l'image devienne on ou off ou maintenance ?
Je test avec ca la:
<button onclick="document.getElementById('myImage').src='serveur_on.png'">Serveur ON</button>
<img id="myImage" src="" style="width: auto">
<button onclick="document.getElementById('myImage').src='serveur_off.png'">Serveur OFF</button>
<button onclick="document.getElementById('myImage').src='serveur_maintenance.png'">Serveur en Maintenance</button>
Me reste plus qu'a trouver comment rajouter ses codes sur l'autre programme php. Pour quand je l'allume manuellement que ca change l'image, quand je l'éteint ... Pas facile surtout que les pages ne sont pas aux meme endroit et ni sur le meme feuille de style mais cela ne devrait pas poser probleme.
Mais je pense que je veux faire trop compliquer
Mais je pense que je veux faire trop compliquer
Dans l'état actuel, tes boutons ne font que changer l'image sur la page ouverte, le serveur ne reçoit aucune requête start/stop de serveur. Il faut que tu contactes une page pour que ça se fasse, soit via un lien, soit via JS et XMLHttpRequest/AJAX.
Tu peux faire ceci; coté PHP (par exemple):
Tu peux faire ceci; coté PHP (par exemple):
<?php header('Content-Type: application/json'); $action = $_GET['action']; switch ($action) { case 'start': $output = shell_exec('/etc/init.d/css start'); echo json_encode(['status' => 'on', 'output' => $output]); break; case 'stop': $output = shell_exec('/etc/init.d/css stop'); echo json_encode(['status' => 'off', 'output' => $output]); break; default: echo json_encode(['error' => '...']); break; } ?>et coté JS/HTML:
function gerer_reponse() { var json = JSON.parse(this.responseText); if (json.status === 'on') { document.getElementById('myImage').src = 'serveur_on.png'; } else if (json.status === 'off') { document.getElementById('myImage').src = 'serveur_off.png'; } else { document.getElementById('myImage').src = 'serveur_erreur.png'; } } function faire_action(action) { var req = new XMLHttpRequest(); req.addEventListener('load', reqListener); req.open('GET', 'controle_serveur_css.php?action=' + action); req.send(); document.getElementById('myImage').src = 'serveur_inconnu.png'; }
<img id="myImage" src="" style="width: auto"> <button onclick="faire_action('start')">Serveur ON</button> <button onclick="faire_action('stop')">Serveur OFF</button>Pas testé, à toi d'adapter. Encore, il manque la chose cruciale qu'est la vérification de l'état. La "maintenance" n'est pas implémentée, tu peux stocker (et donc lire) cette info dans un fichier, par exemple.
Merci quand même poir ta réponse