Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3056 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  modification script php/mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

modification script php/mysql

n°1929242
nicx
Posté le 06-10-2009 à 11:34:03  profilanswer
 

bonjour,
 
je suis en train de modifier un script php qui permet d'interroger des équipements (routeur, switch) via une page web. le script en question est accessible ici : MRLG
 
Ce script contient 3 fichiers, 2 sont utiles à ca configuration :
mrlg-config.php et mrlg-lib.php
 
dans mrlg-config on viendra lui renseigner ou joindre le matériel : nom, ip, service, login, mot de passe + les commandes utilisables
 
dans mrlg-lib pas grand chose a faire si on veut l'utiliser tel quel.
 
 
Donc, mon souci est que pour plus de souplesse, j'aimerai allé récupérer les informations concernant mon équipement sur ma DB mysql, car j'ai plus de 300 switchs.  
Et continuer à utiliser les commandes sur le script.
 
Pour cela, j'ai effectué une liste déroulante qui m'affiche les noms des switch dans celle-ci en ce connectant bien sur à ma DB.
 
Le problème, c'est que je ne sais pas comment faire pour que une fois le matériel choisi, je puisse lui lancer une commande. Pour le moment, dès que je choisi un matériel et que je choisi une commande, la commande ne se lance pas et la sélection du matériel reviens sur la premier de la base.
 
Voici le code de mes 2 fichiers, si quelqu'un pouvait prendre le temps de m'aider, ca serai génial.
 
Le fichiers mrlg-config

Code :
  1. <?
  2. // Specify the look you wish lists to have here: ('radio'/'select')
  3. $request_list_style = 'radio';
  4. $socket_timeout = 5;
  5. // default values for all switch, used if there is no more specific setting
  6. $switch['default']['telnet_port'] = 23;
  7. $switch['default']['password'] = '*';
  8. $switch['default']['password_en'] = "*";
  9. $switch['default']['ignore_argc'] = FALSE;
  10. /*
  11. Requests definitions.
  12. [title] is what you see on the web-page. If omitted, <command> is used instead.
  13. <command> is what is sent to the CLI.
  14. <handler> is processing daemon's name
  15. <argc> is minimal argument count
  16. */
  17.   $request[010]['title'] = 'show interface status';
  18. $request[010]['command'] = 'show interface status';
  19. $request[010]['handler'] = 'telnet';
  20. $request[010]['argc'] = 0;
  21. $request[020]['title'] = 'show interface vlan';
  22. $request[020]['command'] = 'show interface vlan';
  23. $request[020]['handler'] = 'telnet';
  24. $request[020]['argc'] = 1;
  25. $request[030]['title'] = 'show vlan';
  26. $request[030]['command'] = 'show vlan';
  27. $request[030]['handler'] = 'telnet';
  28. $request[030]['argc'] = 0;
  29. $request[040]['title'] = 'show version';
  30. $request[040]['command'] = 'show version';
  31. $request[040]['handler'] = 'telnet';
  32. $request[040]['argc'] = 0;
  33. ?>


 
Le script mrlg-lib

Code :
  1. <?
  2. function printError ($message)
  3. {
  4. echo "<font color=red><code><strong>" . $message . "</strong></code></font><br>\n";
  5. }
  6. function safeOutput ($string)
  7. {
  8. return htmlentities (substr ($string, 0, 50));
  9. }
  10. //Exécution sur la base, Table_Switch de requêtes pour récupérer les infos des switch
  11. $Host_Name = "*";
  12. $User_Login = "*";
  13. $User_Password = "*";
  14. mysql_connect("$Host_Name", "$User_Login", "$User_Password" )or die ("Impossible de se connecter" );
  15. mysql_select_db ("raps" )or die ("Impossible d'accéder à la base de données" );
  16. function printSwitchList ($switch, $type)
  17. // Préparation du select
  18. echo '<select name="Nom_Switch">';
  19. // Préparation de la requête
  20. $query = 'SELECT * from Table_Switch';
  21. list ($ID, $attribute) = each ($switch)
  22.   if (strcmp ($ID, "Nom_Switch" ) && !empty($attribute["Adresse_IP_Switch"])) 
  23.      
  24. // Exécution de la requête  
  25. $result = mysql_query($query) or die($query . "-" . mysql_error());
  26. while ($tab = mysql_fetch_array($result))
  27. {   
  28. echo "<option value=".$tab['Nom_Switch'].'">'.$tab['Nom_Switch'];
  29. }
  30. echo '</select>';
  31.    
  32. //mysql_close();
  33. //exécution sur la base de requétes pour récupérer les commandes telnet à éxécuter sur les switch.
  34. function printRequestList ($request, $type)
  35. {
  36. while (list($id, $attribute) = each ($request))
  37.  if (!empty ($attribute["command"]) && !empty ($attribute["handler"]) && isset ($attribute["argc"]))
  38.  {
  39.   if ($type == "radio" ) echo "<input type=radio name=requestid value={$id}";
  40.   if ($_REQUEST["requestid"] == $id)
  41.   {
  42.    if ($type == "radio" ) echo " checked=on";
  43.   }
  44.   echo ">";
  45.   echo $attribute["title"] ? $attribute["title"] : $attribute["command"];
  46.   if ($type == "radio" ) echo "</input><br>\n";
  47.  }
  48. echo "</{$type}>\n";
  49. }
  50. function execPreviousRequest ($switch, $request)
  51. {
  52. if (!isset($_REQUEST["Nom_Switch"])) return;
  53. $Nom_Switch = $_REQUEST["Nom_Switch"];
  54. if (!isset ($switch[$Nom_Switch]["Adresse_IP_Switch"])) return;
  55. if (!isset($_REQUEST["requestid"])) return;
  56. $requestid = $_REQUEST["requestid"];
  57. if (!isset ($request[$requestid]["argc"])) return;
  58. $handler = $request[$requestid]["handler"];
  59. if (empty ($handler) || strpos ($switch[$Nom_Switch]["services"], $handler) === false)
  60. {
  61.  printError ("Cette requête n'est pas autorisé par l'administrateur." );
  62.  return;
  63. }
  64. if ($request[$requestid]["argc"] > 0)
  65. {
  66.  if (trim ($_REQUEST["argument"]) == '')
  67.  {
  68.   $switch_defined = isset ($switch[$Nom_Switch]["ignore_argc"]);
  69.   $switch_permits = $switch[$Nom_Switch]["ignore_argc"] == 1;
  70.   $default_defined = isset ($switch["default"]["ignore_argc"]);
  71.   $default_permits = $switch["default"]["ignore_argc"] == 1;
  72.   $final_permits =
  73.    (!$switch_defined && $default_defined && $default_permits) ||
  74.    ($switch_defined && $switch_permits);
  75.   if (!$final_permits)
  76.   {
  77.    printError ("Full table view is denied on this switch" );
  78.    return;
  79.   }
  80.  }
  81.  else $argument = trim ($_REQUEST["argument"]);
  82. }
  83. // All Ok, prepare to connect.
  84. $address = $switch[$Nom_Switch]["Adresse_IP_Switch"];
  85. if (!empty ($switch[$Nom_Switch][$handler . "_port"]))
  86.  $port = $switch[$Nom_Switch][$handler . "_port"];
  87. else
  88.  $port = $switch["default"][$handler . "_port"];
  89. if (!empty ($switch[$Nom_Switch][$handler . "_password"]))
  90.  $password = $switch[$Nom_Switch][$handler . "_password"];
  91. elseif (!empty ($switch[$Nom_Switch]["password"]))
  92.  $password = $switch[$Nom_Switch]["password"];
  93. else
  94.  $password = $switch["default"]["password"];
  95. $command = $request[$requestid]["command"] . (!empty ($argument) ? (" " . safeOutput ($argument)) : "" );
  96. global $socket_timeout;
  97. $link = fsockopen ($address, $port, $errno, $errstr, $socket_timeout);
  98. if (!$link)
  99. {
  100.  printError ("Erreur de connection au switch" );
  101.  return;
  102. }
  103. socket_set_timeout ($link, $socket_timeout);
  104. $username = $switch[$Nom_Switch]["username"];
  105. if (!empty ($username)) fputs ($link, "{$username}\n" );
  106. fputs ($link, "{$password}\nterminal length 0\n{$command}\n" );
  107. // let daemon print bulk of records uninterrupted
  108. if (empty ($argument) && $request[$requestid]["argc"] > 0) sleep (2);
  109. fputs ($link, "quit\n" );
  110. echo "<pre>\n";
  111. // Skip text up to the line following out command.
  112. while (!feof ($link)
  113.  && (strpos (fgets ($link, 1024), $command) === FALSE));
  114. // Skip everything up to the 'quit' command.
  115. while (!feof ($link)
  116.  && (strpos (($buf = fgets ($link, 1024)), "quit" ) === FALSE))
  117. {
  118.  echo $buf;
  119. }
  120. echo "</pre>\n";
  121. fclose ($link);
  122. }
  123. mysql_close();
  124. ?>


 
 
Je commence à apprendre le php avec ce script.  
 
Merci de votre lecture.


Message édité par nicx le 06-10-2009 à 11:34:29
mood
Publicité
Posté le 06-10-2009 à 11:34:03  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  modification script php/mysql

 

Sujets relatifs
réference à des cellules script lotus123surveiller les requêtes ou tables modifiées sur MySQL
Problème dans la rédaction d'un petit scriptDifférents pb PHP/MySQL
Connecter à la base WMI en tant que, ou "élever" le script en tant queProbleme d'update mysql
[VBS] script pour copier un fichier de serveur vers un clientBesoin d'aide sur ce script si possible
calculer % php MysqlBloquer Script vbs à l'ouverture TSE
Plus de sujets relatifs à : modification script php/mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR