Afficher le résultat d'un ping

Fermé
roideseaux Messages postés 261 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 16 février 2023 - Modifié par roideseaux le 9/11/2015 à 00:57
roideseaux Messages postés 261 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 16 février 2023 - 12 nov. 2015 à 21:41
Bonjour,

Avant toute chose, je tiens à dire que je ne suis pas hyper doué en php...

J'ai récupéré un site que j'heberge sur mon serveur, et sur une des pages, je voudrais rajouter le résultat d'un ping (si le serveur est en ligne ou non) mais je ne sais pas comment m'y prendre !

J'ai d'abord tenté de comprendre le code, et là c'est pas gagné !

{include="header"}

<!--
 @nom: index
 @auteur: Idleman (idleman@idleman.fr)
 @description: Page d'accueil
-->

{if="isset($myUser)"}
 
<ul class="nav nav-tabs" id="myTab">
{$first=0}
{loop="places"}
<li class="{if="$first==0"}{$first=1}active{/if}"><a href="#{$key}">{$value['name']}</a></li>
{/loop}




</ul>

<div class="tab-content">
{$first=0}
{loop="places"}
{$currentPlace=$key}
<div class="tab-pane {if="$first==0"}{$first=1}active{/if}" id="{$key}">

      <div class="row">


{loop="engines"}

 {if="$value2['place']==$currentPlace"}
 
<div class="span3">
          <h5>{$value2['name']}</h5>
    <a class="thumbnail" href="#"><img src="../../{$value['picture']}"></a>
     <br/>
    <p>{$value2['description']}
     <ul>
      <li>Code radio : <code>{$value2['code']}< /code></li>
      <li>Id : <code>{$key2}< /code></li>
      <li>Emplacement : <code>{$places[$value2['place']]['name']}< /code></li>
     </ul>
    </p>
      <div class="btn-toolbar">
    <div class="btn-group">
    <a class="btn {if="$value2['state']=='on'"}btn-success{/if}" href="action.php?engine={$key}&action=CHANGE_STATE&code={$value2['code']}&state=on"><i class="icon-thumbs-up {if="$value2['state']=='on'"}icon-white{/if}"></i></a>
    <a class="btn {if="$value2['state']=='off'"}btn-danger{/if}" href="action.php?engine={$key}&action=CHANGE_STATE&code={$value2['code']}&state=off"><i class="icon-thumbs-down {if="$value2['state']=='off'"}icon-white{/if}"></i></a>
    </div>
   </div>
        </div>
        {/if}
{/loop}

      </div>



</div>

{/loop}

</div>

   {else}
  Vous devez vous connecter pour controler cet espace !
   {/if}
{include="footer"}


J'ai vu que le site utilisait des templates (et j'ai vaguement compris comment ca fonctionnait) mais là, je ne comprend pas d'où vient la variable $value2 et comment elle change d'état .?

Ce que je voudrais faire, c'est ajouter un bouton pour lancer la fonction de mon ping qui se trouve sur la page action.php (pour le bouton, j'ai juste un copier coller a faire et à le modifier un petit peu pour que ca corresponde à mon ping) et afficher le résultat en changeant la couleur d'un bouton par exemple...

Merci pour ceux qui ont essayé de me comprendre et pour ceux qui m'aideront (donc qui m'auront à peut près compris :p )

4 réponses

samyb2313 Messages postés 52 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 15 janvier 2020 5
Modifié par samyb2313 le 9/11/2015 à 13:47
Pour un ping ce serait :


<?php
$ping = shell_exec('ping -c 4 127.0.0.1');
echo $ping;
?>

ou

<?php
$ping = exec('ping -c 4 127.0.0.1');
echo $ping;
?>
0
roideseaux Messages postés 261 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 16 février 2023 5
9 nov. 2015 à 13:57
Ca, je l'ai trouvé, mais dans une optique de progression, j'aimerais ajouter cela dans le même esprit que le reste du site, c'est à dire que la mise en page est faire dans un fichier html qui est appelé par la page php via un template (si j'ai bien tout compris !)

Donc j'aimerais savoir comment la variable $value2 change de valeur en fonction des choses 'extérieurs' à cette page html et utiliser la même méthode pour récupérer le résultat de mon ping afin de modifier un élément de cette page html :)
0
samyb2313 Messages postés 52 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 15 janvier 2020 5
10 nov. 2015 à 14:50
function pingAddress($ip){
    $pingresult = shell_exec("start /b ping $ip -n 1");
    $dead = "Request timed out.";
    $deadoralive = strpos($dead, $pingresult);

    return   $deadoralive;
}

trouver sur :
https://stackoverflow.com/questions/8030789/pinging-an-ip-address-using-php-and-echoing-the-result

if (pingAddress('8.8.8.8')) echo 'Google est joingnable';
else echo 'Google est injoingnable !';
0
roideseaux Messages postés 261 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 16 février 2023 5
Modifié par roideseaux le 11/11/2015 à 20:57
Je vais tenter de mieux m'expliquer :

Voici mon index.php (la page qui charge par défaut) :
<?php
require_once('header.php'); 
$db = (file_exists(PATH_BDD)?Functions::unstore():array());
asort($db['engines']);
$tpl->assign('engines',$db['engines']);
$places = (isset($db['places'])?$db['places']:array());
asort($places);
$tpl->assign('places',$places);
$view = 'index';
require_once('footer.php'); 
?>


Voici le code de ma page index.html (qui se trouve dans le dossier ./templates/hcc, c'est cette page qui determine l'aspect de ma page d'accueil mais je ne sais pas comment elle est appelée...) :
{include="header"}

{if="isset($myUser)"}
 
<ul class="nav nav-tabs" id="myTab">
{$first=0}
{loop="places"}
<li class="{if="$first==0"}{$first=1}active{/if}"><a href="#{$key}">{$value['name']}</a></li>
{/loop}




</ul>

<div class="tab-content">
{$first=0}
{loop="places"}
{$currentPlace=$key}
<div class="tab-pane {if="$first==0"}{$first=1}active{/if}" id="{$key}">

      <div class="row">


{loop="engines"}

 {if="$value2['place']==$currentPlace"}
 
<div class="span3">
          <h5>{$value2['name']}</h5>
    <a class="thumbnail" href="#"><img src="../../{$value['picture']}"></a>
     <br/>
    <p>{$value2['description']}
     <ul>
      <li>Code radio : <code>{$value2['code']}</ code></li>
      <li>Id : <code>{$key2}</ code></li>
      <li>Emplacement : <code>{$places[$value2['place']]['name']}</ code></li>
     </ul>
    </p>
      <div class="btn-toolbar">
    <div class="btn-group">
    <a class="btn {if="$value2['state']=='on'"}btn-success{/if}" href="action.php?engine={$key}&action=CHANGE_STATE&code={$value2['code']}&state=on"><i class="icon-thumbs-up {if="$value2['state']=='on'"}icon-white{/if}"></i></a>
    <a class="btn {if="$value2['state']=='off'"}btn-danger{/if}" href="action.php?engine={$key}&action=CHANGE_STATE&code={$value2['code']}&state=off"><i class="icon-thumbs-down {if="$value2['state']=='off'"}icon-white{/if}"></i></a>
    </div>
   </div>
        </div>
        {/if}
{/loop}

      </div>

</div>

{/loop}

</div>

<div>
 <ul>
  <li>Adresse du ping : {$IP = "192.168.1.1"}</li>
 </ul>
 <a class="btn" href="action.php?action=ping&IP={$IP}"><i class="icon-hdd"></i></a>
</div>

   {else}
  Vous devez vous connecter pour controler cet espace !
   {/if}
{include="footer"}


Et voici le code le mon fichier action.php :
<?php
require_once('header.php');


switch($_['action']){

case 'ping':
 $IP = $_GET['IP'];
 exec("ping -c 1 $IP", $output, $status);
 header('location: index.php');
break;
  
default:
 echo 'Aucune action correcte n\'est spécifiée';
break;

}
?>


Voilà.

Pour rappel : Je veux lancer un ping et modifier un élément de la page d'acceuil (dont le code se trouve sur la page index.html, dans le dossier ./templates/hcc) comme il est fait sur les boutons précédents avec la variable $value2. Mais le souci, c'est que je ne sais pas comment cette valeur change d'état (et permet donc de changer l'état des boutons...).

Je précise que j'ai trouvé ce site sur le net et que j'aimerais garder le même style de code donc coder de la même manière (d'où l'importance pour moi de comprendre comment il fonctionne ^^ ).

Merci à ceux qui chercherons à m'aider !
0
roideseaux Messages postés 261 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 16 février 2023 5
12 nov. 2015 à 21:41
Personne ?
0