[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * Librairie de fonctions utilisees dans l'interface d'administration parcs 7 * @Version $Id: fonc_parc.inc.php 8468 2015-02-10 09:22:04Z dbo $ 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Equipe Tice academie de Caen 12 * @auteurs sandrine dangreville matice creteil aout 2005 13 14 * @Licence Distribue selon les termes de la licence GPL 15 16 * @note 17 18 */ 19 20 /** 21 22 * @Repertoire: includes/ 23 * file: fonc_parc.php 24 25 */ 26 27 28 29 require_once ("lang.inc.php"); 30 bindtextdomain('se3-parcs',"/var/www/se3/locale"); 31 textdomain ('se3-parcs'); 32 33 34 //*****************connexion bdd******************* 35 $authlink = @mysql_connect($dbhost,$dbuser,$dbpass); 36 @mysql_select_db($dbname) or die("Impossible de se connecter à la base $dbname."); 37 38 39 40 /** 41 42 * Fonctions d'affichage de menu action dans parcs 43 * @Parametres 44 * @Return 45 */ 46 47 48 function affiche_action($parc) 49 { 50 echo "<script type=\"text/javascript\"> 51 <!-- 52 window.onload=montre; 53 function montre(id) { 54 var d = document.getElementById(id); 55 for (var i = 1; i<=10; i++) { 56 if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} 57 } 58 if (d) {d.style.display='block';} 59 } 60 //--></script><div id=\"menu\"> 61 "; if ($parc) { 62 echo "<dl><dt onmouseover=\"javascript:montre('smenu0');\" onmouseout=\"javascript:montre('');\"><a href=\"action_parc.php\" title=\"Parc choisi\">$parc <img src=\"../elements/images/command.png\" alt=\"".gettext("Changer de parc")."\" title=\"".gettext("Changer de parc")."\" width=\"20\" height=\"20\" border=\"0\" /></a></dt></dl>\n"; 63 } 64 else{ 65 66 echo " <dl><dt onmouseover=\"javascript:montre('smenu0');\" onmouseout=\"javascript:montre('');\"><a href=\"action_parc.php\" title=\"".gettext("Choisir un parc")."\">".gettext("Choisir un parc")."</a></dt>\n"; 67 echo "<dd id=\"smenu0\" onmouseover=\"javascript:montre('smenu0');\" onmouseout=\"javascript:montre('');\"> 68 <ul class=ssmenu onmouseout=\"javascript:montre('');\">\n"; 69 $list_parcs=search_machines("objectclass=groupOfNames","parcs"); 70 if ( count($list_parcs)>0) { 71 for ($loop=0; $loop < count($list_parcs); $loop++) { 72 if ($acces_restreint) { if ((!this_parc_delegate($login,$list_parcs[$loop]["cn"],"manage")) and (!this_parc_delegate($login,$list_parcs[$loop]["cn"],"view"))) { continue; } } 73 if ($list_parcs[$loop]["cn"]<>$parc) { echo"<li class=ssmenu onmouseout=\"javascript:montre('');\"><a href=\"action_parc.php?parc=".$list_parcs[$loop]["cn"]."\"><img src=\"../elements/images/typebullet.png\" width=\"30\" height=\"11\" border=\"0\">".$list_parcs[$loop]["cn"]."</a></li>\n";} 74 } } 75 echo "</ul> 76 </dd> 77 </dl>\n"; 78 79 80 81 } 82 83 $testniveau=getintlevel(); 84 if (($parc) and ($testniveau>3)) { 85 echo " <dl> 86 <dt onmouseover=\"javascript:montre('smenu1');\">".gettext("Installations clientes")."</dt> 87 88 <dd id=\"smenu1\" onmouseover=\"javascript:montre('smenu1');\" onmouseout=\"javascript:montre('');\"> 89 <ul class=ssmenu> 90 <li class=ssmenu><a href=\"install_locale.php?parc=$parc&action=verif_1\"><img src=\"../elements/images/typebullet.png\" width=\"30\" height=\"11\" border=\"0\">".gettext("I Verification des postes")."</a></li> 91 <li class=ssmenu><a href=\"install_locale.php?parc=$parc&action=msi\"><img src=\"../elements/images/typebullet.png\" width=\"30\" height=\"11\" border=\"0\">".gettext("II Préparer l'installation")."</a></li> 92 <li class=ssmenu><a href=\"install_locale.php?parc=$parc&action=msi_3\"><img src=\"../elements/images/typebullet.png\" width=\"30\" height=\"11\" border=\"0\">".gettext("III Executer l'installation")."</a></li> 93 </ul> 94 </dd> 95 </dl> 96 "; } 97 //else { echo"<dl><dt onmouseover=\"javascript:montre('smenu1');\">Installations clientes</dt></dl>";} 98 99 // else { 100 // echo "<dl><dt onmouseover=\"javascript:montre('smenu2');\">Gérer les applications</dt></dl>";} // */ 101 if ($parc) { 102 echo " <dl> 103 <dt onmouseover=\"javascript:montre('smenu3');\">Etat du parc</dt> 104 <dd id=\"smenu3\" onmouseover=\"javascript:montre('smenu3');\" onmouseout=\"javascript:montre('');\"> 105 <ul class=ssmenu> 106 107 <li class=ssmenu><a href=\"wolstop_station.php?parc=$parc&action=timing\"><img src=\"../elements/images/typebullet.png\" width=\"30\" height=\"11\" border=\"0\">".gettext("Planification")."</a></li> 108 <li class=ssmenu><a href=\"action_parc.php?parc=$parc&action=detail\"><img src=\"../elements/images/typebullet.png\" width=\"30\" height=\"11\" border=\"0\">".gettext("Etat - Controle")."</a></li> 109 </ul> 110 111 </dd> 112 </dl>\n"; } 113 // else { echo "<dl><dt onmouseover=\"javascript:montre('smenu3');\">Etat du parc</dt></dl>";} 114 echo " </div> 115 "; 116 } 117 118 119 /** 120 121 * Fonctions d'affichage des appli 122 * @Parametres 123 * @Return 124 */ 125 126 127 function affiche_appli() 128 { 129 echo "<table align=center><tr> 130 <td class=menuheader width=\"130\" height=\"30\" align=\"center\"><a href=\"appli_client.php?action=new_private_appli\">".gettext("Ajouter")."</a></td> 131 <td class=menuheader width=\"130\" height=\"30\" align=\"center\"><a href=\"appli_client.php?action=list_cat\">".gettext("Par catégorie")."</a></td> 132 <td class=menuheader width=\"130\" height=\"30\" align=\"center\"><a href=\"appli_client.php?action=list_alpha\">".gettext("Par ordre alphabétique")."</a></td> 133 <td class=menuheader width=\"130\" height=\"30\" align=\"center\"><a href=\"appli_client.php?action=waiting\">".gettext("En attente")."</a></td> 134 <!--<td class=menuheader width=\"130\" height=\"30\" align=\"center\"><a href=\"appli_client.php?action=validate_central\">".gettext("Mise a jour Serveur Central")."</a></td>--> 135 </table>\n"; 136 137 } 138 139 140 /** 141 142 * retourne l'ID de $nom_machine ou 0 a partir de la table hardware 143 * @Parametres 144 * @Return 145 */ 146 147 function avoir_systemid($nom_machine) { // retourne l'ID de $nom_machine ou 0 a partir de la table hardware 148 if ( ! file_exists("/var/www/se3/includes/dbconfig.inc.php")) 149 return 0; 150 session_start(); 151 $_SESSION["loggeduser"]="$login"; 152 include "dbconfig.inc.php"; 153 $dbnameinvent="ocsweb"; 154 155 $authlink_invent=@mysql_connect($_SESSION["SERVEUR_SQL"],$_SESSION["COMPTE_BASE"],$_SESSION["PSWD_BASE"]); 156 @mysql_select_db($dbnameinvent) or die("Impossible de se connecter à la base $dbnameinvent."); 157 158 $query="select ID from hardware where NAME='$nom_machine'"; 159 $result = mysql_query($query,$authlink_invent); 160 if ($result) { 161 $ligne=mysql_num_rows($result); 162 if ($ligne > 0) { 163 while ($res = mysql_fetch_array($result)) { 164 $retour=$res["ID"]; 165 } 166 } else { 167 $retour=0; 168 } 169 170 return $retour; 171 } else { // Pas d'inventaire a ce nom 172 return 0; 173 } 174 } 175 176 177 /** 178 179 * test si une machine cliente repond au ping 180 * @Parametres $ip adresse a pinguer 181 * @Return 182 */ 183 184 185 function fping($ip) 186 { 187 // return exec("ping ".$ip." -c 1 -w 1 | grep received | awk '{print $4}'"); 188 // system("ping ".$ip." -c 1 -w 1 > /dev/null", $ret); 189 190 exec("/usr/share/se3/sbin/tcpcheck 1 $ip:445 | grep alive",$arrval,$ret); 191 if ( $ret != "1" ) { 192 return 1; 193 } 194 else { 195 return 0; 196 } 197 } 198 199 200 201 /** 202 203 * test la connexion ssh sur une machine cliente 204 * @Parametres $ip adresse a tester 205 * @Return 206 */ 207 208 209 function ssh($ip) 210 { 211 $fp=@fsockopen($ip,22,$errno,$errstr,5); 212 if (!$fp) { 213 return 0; 214 } else { return 1; } 215 } 216 217 218 219 /** 220 221 * test si une machine cliente repond sur le port 3389 222 * @Parametres $ip adresse a tester 223 * @Return construit un fichier ts dans /tmp pour cette machine si c'est le cas 224 */ 225 226 227 function ts($ip) 228 { 229 $fp=@fsockopen($ip,3389,$errno,$errstr,5); 230 if (!$fp) { 231 return 0; 232 } else { 233 $ligne="screen mode id:i:2 234 desktopwidth:i:1400 235 desktopheight:i:1050 236 session bpp:i:16 237 winposstr:s:0,1,23,0,1379,619 238 full address:s:$ip 239 compression:i:1 240 keyboardhook:i:2 241 audiomode:i:0 242 redirectdrives:i:0 243 redirectprinters:i:1 244 redirectcomports:i:0 245 redirectsmartcards:i:1 246 displayconnectionbar:i:1 247 autoreconnection enabled:i:1 248 username:s: 249 domain:s: 250 alternate shell:s: 251 shell working directory:s: 252 disable wallpaper:i:1 253 disable full window drag:i:1 254 disable menu anims:i:1 255 disable themes:i:0 256 disable cursor setting:i:0 257 bitmapcachepersistenable:i:1"; 258 $content_dir = '/tmp/'; 259 $fichier_rdp = $content_dir . "$ip.rdp"; 260 if (file_exists($fichier_rdp)) unlink($fichier_rdp); 261 262 $get= fopen ($fichier_rdp, "w+"); 263 fputs($get,$ligne); 264 fclose($get); 265 $ts= "<a href=\"tsvnc.php?machine=$ip&action=ts&file=$fichier_rdp\"" 266 . "onmouseout=\"UnTip();\" onmouseover=\"Tip('".$action_parc['msgTsWarning']."',WIDTH,250,SHADOW,true,DURATION,5000);\"" 267 . "><img src=\"../elements/images/monitorTS.gif\" alt=\"\" title=\"terminal server\" width=\"30\" height=\"30\" border=\"0\" /></a>\n"; 268 return $ts; 269 270 } 271 } 272 273 274 275 /** 276 277 * test si une machine cliente repond sur le port 5900 vnc 278 * @Parametres $ip adresse a tester 279 * @Return construit un fichier vnc dans /tmp pour cette machine si c'est le cas 280 */ 281 282 283 function vnc($ip) 284 { 285 $fp=@fsockopen($ip,5900,$errno,$errstr,5); 286 if (!$fp) { 287 // echo "$errstr ($errno)<br />\n"; 288 return 0; 289 } 290 else 291 { 292 $ligne="[connection] 293 host=$ip 294 port=5900 295 proxyhost= 296 proxyport=5900 297 password= 298 [options] 299 use_encoding_0=1 300 use_encoding_1=1 301 use_encoding_2=1 302 use_encoding_3=0 303 use_encoding_4=1 304 use_encoding_5=1 305 use_encoding_6=1 306 use_encoding_7=1 307 use_encoding_8=1 308 use_encoding_9=1 309 use_encoding_10=0 310 use_encoding_11=0 311 use_encoding_12=0 312 use_encoding_13=0 313 use_encoding_14=0 314 use_encoding_15=0 315 use_encoding_16=1 316 preferred_encoding=5 317 restricted=0 318 viewonly=0 319 nostatus=0 320 nohotkeys=0 321 showtoolbar=1 322 AutoScaling=0 323 fullscreen=0 324 autoDetect=1 325 8bit=0 326 shared=1 327 swapmouse=0 328 belldeiconify=0 329 emulate3=1 330 emulate3timeout=100 331 emulate3fuzz=4 332 disableclipboard=0 333 localcursor=1 334 Scaling=0 335 scale_num=100 336 scale_den=100 337 cursorshape=1 338 noremotecursor=0 339 compresslevel=6 340 quality=6 341 ServerScale=1 342 EnableCache=0 343 QuickOption=1 344 UseDSMPlugin=0 345 UseProxy=0 346 DSMPlugin="; 347 $content_dir = '/tmp/'; 348 $fichier_vnc = $content_dir . "$ip.vnc"; 349 if (file_exists($fichier_vnc)) unlink($fichier_vnc); 350 351 $get= fopen ($fichier_vnc, "w+"); 352 fputs($get,$ligne); 353 fclose($get); 354 $vnc= "<a href=\"tsvnc.php?machine=$ip&action=vnc&file=$fichier_vnc\"" 355 . "onmouseout=\"UnTip();\" onmouseover=\"Tip('".$action_parc['msgVncWarning']."',WIDTH,250,SHADOW,true,DURATION,5000);\"" 356 . "><img src=\"../elements/images/monitorVNC.gif\" alt=\"\" title=\"terminal server\" width=\"30\" height=\"30\" border=\"0\" /></a>\n"; 357 358 359 return $vnc; 360 361 } 362 } 363 364 365 366 /** 367 368 * pour l'affichage des heures dans le menu planification des allumage/extinction postes 369 * @Parametres 370 * @Return retourne un <option></option> 371 */ 372 373 374 function heure_deroulante($parcf,$jourf,$type_actionf) 375 { 376 global $authlink; 377 if ($parcf) { 378 $resultf=mysql_query("select heure from actionse3 where action='$type_actionf' and parc='$parcf' and jour='$jourf';", $authlink) or die("Impossible d'effectuer la requete"); 379 380 if ($resultf) { 381 $rowf=mysql_fetch_row($resultf); 382 $heuref=$rowf[0]; 383 } 384 } 385 386 $timef=explode(":",$heuref); 387 //$heure_act=date("H"); 388 //$minute_act=date("m"); 389 for ($if=0;$if<24;$if++) { 390 $selectedf=""; 391 for ($jf=0;$jf<4;$jf++) { 392 $mf=$jf*15; 393 $selectedf=""; 394 if (($if==$timef[0]) and ($mf==$timef[1])) { $selectedf="SELECTED"; } //elseif ($heure_act==$i-1) { $selected="SELECTED"; } 395 if ($mf<10) { echo "<option $selectedf >$if:0$mf</option>\n"; } else { echo "<option $selectedf>$if:$mf</option>\n"; } 396 $selectedf=""; 397 } 398 } 399 } 400 401 402 // test si une action d'allumage extinction est prevu sur un parc donne 403 // un jour donne ( retourne checked pour un select) 404 function jour_check($parcf,$jourf,$type_actionf) 405 { 406 global $authlink; 407 if ($parcf) { 408 $resultf=mysql_query("select heure from actionse3 where parc='$parcf' and jour='$jourf' and action='$type_actionf';", $authlink) or die("Impossible d'effectuer la requete"); 409 if ($resultf) { 410 if (mysql_num_rows($resultf)>0) { return "checked"; } 411 } 412 } 413 } 414 415 416 417 418 /** 419 420 * affiche le tableau detaillant l'allumage des machines et la prise de controle 421 * @Parametres 422 * @Return 423 */ 424 425 426 function detail_parc($parc) 427 { 428 require_once ("printers.inc.php"); 429 430 global $smbversion; 431 echo "\n<br>\n<CENTER>\n"; 432 echo "<TABLE border=1 width=\"60%\">\n<tr class=menuheader style=\"height: 30\">\n"; 433 echo "<td align=\"center\"></td>\n"; 434 echo "<td align=\"center\">STATIONS CONCERNEES</td>\n"; 435 echo "<td align=\"center\">ETAT</td>\n"; 436 echo "<td align=\"center\">CONNEXIONS</td>\n"; 437 echo "<td align=\"center\">CONTROLE</td></tr>\n"; 438 439 $mp_all=gof_members($parc,"parcs",1); 440 441 // Filtrage selon critere 442 if ("$filtrecomp"=="") $mp=$mp_all; 443 else { 444 $lmloop=0; 445 $mpcount=count($mp_all); 446 for ($loop=0; $loop < count($mp_all); $loop++) { 447 $mach=$mp_all[$loop]; 448 if (preg_match("/$filtrecomp/",$mach)) $mp[$lmloop++]=$mach; 449 } 450 } 451 452 if ( count($mp)>0) { 453 sort($mp); 454 for ($loop=0; $loop < count($mp); $loop++) { 455 $mpenc=urlencode($mp[$loop]); 456 $mp_en_cours=urldecode($mpenc); 457 $mp_curr=search_machines("(&(cn=$mp_en_cours)(objectClass=ipHost))","computers"); 458 if (isset($mp_curr[0]["ipHostNumber"])) { 459 $iphost=$mp_curr[0]["ipHostNumber"]; 460 } 461 // Test si on a une imprimante ou une machine 462 $resultat=search_imprimantes("printer-name=$mp_en_cours","printers"); 463 $suisje_printer="0"; 464 for ($loopp=0; $loopp < count($resultat); $loopp++) { 465 if ($mp_en_cours==$resultat[$loopp]['printer-name']) { 466 $suisje_printer="1"; 467 continue; 468 } 469 } 470 471 // On teste si la machine a des connexions actives 472 // en fonction de la version de samba 473 // On ne rentre dedans que si on est pas une imprimante 474 475 if ($suisje_printer!="1") { 476 $login=exec ("smbstatus -b | grep $iphost |gawk -F' ' '{print $2}' |head -n1"); 477 if ($login=="") { 478 $etat_session="<img type=\"image\" src=\"../elements/images/disabled.png\">\n"; 479 } else { 480 $etat_session="<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape('$login est actuellement connecté sur ce poste')\"><img type=\"image\" src=\"../elements/images/enabled.png\"></u>\n"; 481 } 482 483 if (isset($mp_curr[0]["ipHostNumber"])) { 484 $iphost=$mp_curr[0]["ipHostNumber"]; 485 $ping=fping($iphost); 486 487 // On teste si la machine est en marche ou pas 488 if ($ping) { 489 $etat=aide(gettext("La machine est actuellement allumée, cliquez pour l eteindre"),"<a href=\"action_machine.php?machine=$mp_en_cours&action=shutdown&parc=$parc&retour=action_parc\" onclick=\"if (window.confirm('Etes-vous sur de vouloir éteindre la machine $mp_en_cours ?')) 490 {return true;} 491 else {return false;}\"/><img type=\"image\" border=\"0\" src=\"../elements/images/enabled.png\"></a>\n"); 492 } else { 493 $etat=aide(gettext("La machine est actuellement éteinte, cliquez pour l allumer"),"<a href=\"action_machine.php?machine=$mp_en_cours&action=wol&parc=$parc&retour=action_parc\"><img type=\"image\" border=\"0\" src=\"../elements/images/disabled.png\"></a>\n"); 494 } 495 496 if (file_exists ("/var/www/se3/includes/dbconfig.inc.php")) { 497 // Inventaire 498 $sessid=session_id(); 499 $systemid=avoir_systemid($mpenc); 500 501 // Affichage du tableau 502 echo "<tr>"; 503 // Affichage de l'icone informatique 504 // Type d'icone en fonction de l'OS 505 require_once ("fonc_outils.inc.php"); 506 $retourOs = type_os($mpenc); 507 if($retourOs == "0") { $icone="computer.png"; } 508 elseif($retourOs == "Linux") { $icone="linux.png"; } 509 elseif($retourOs == "XP") { $icone="winxp.png"; } 510 elseif($retourOs == "98") { $icone="win.png"; } 511 512 echo "<td align=\"center\">\n"; 513 echo "<img style=\"border: 0px solid ;\" src=\"../elements/images/$icone\" onclick=\"popuprecherche('../ocsreports/machine.php?sessid=$sessid&systemid=$systemid','popuprecherche','scrollbars=yes,width=500,height=500');\" title=\"Station\" alt=\"Station\"></TD>"; 514 } 515 else { 516 echo "<tr><td align=\"center\"><img style=\"border: 0px solid ;\" src=\"../elements/images/computer.png\" title=\"Station\" alt=\"Station\"></TD>"; 517 } 518 echo "<td align=center ><a href=show_histo.php?selectionne=2&mpenc=$mp_en_cours>$mp_en_cours</A></td>\n<td align=center >$etat</td>\n<td align=center>$etat_session </td>\n"; 519 echo "<td align=\"center\">"; 520 if ($ping) { 521 $ts=ts($iphost); 522 $vnc=vnc($iphost); 523 if ($ts) { echo $ts; } 524 if ($vnc) { echo $vnc; } 525 if ((!$ts) and (!$vnc)) { echo "<img type=\"image\" border=\"0\" src=\"../elements/images/disabled.png\">\n"; } 526 527 } else { echo "<img type=\"image\" border=\"0\" src=\"../elements/images/disabled.png\">\n"; } 528 echo "</td></tr>\n"; 529 } 530 531 } 532 } 533 } 534 echo "</table>\n"; 535 echo "</center>\n"; 536 537 } 538 539 540 541 /** 542 543 * Affiche un tableau des imprimantes dans un parc 544 * @Parametres $parc le nom du parc a tester 545 * @Return 546 */ 547 548 function detail_parc_printer($parc) 549 { 550 // include "printers.inc.php"; 551 552 $mp_all=gof_members($parc,"parcs",1); 553 554 // Filtrage selon critere 555 if ("$filtrecomp"=="") $mp=$mp_all; 556 else { 557 $lmloop=0; 558 $mpcount=count($mp_all); 559 for ($loop=0; $loop < count($mp_all); $loop++) { 560 $mach=$mp_all[$loop]; 561 if (preg_match("/$filtrecomp/",$mach)) $mp[$lmloop++]=$mach; 562 } 563 } 564 565 if ( count($mp)>0) { 566 sort($mp); 567 568 $tableau_printer = "\n<br>\n<CENTER>\n"; 569 $tableau_printer .= "<TABLE border=1 width=\"60%\">\n<tr class=menuheader style=\"height: 30\">\n"; 570 $tableau_printer .= "<td align=\"center\"></td>\n"; 571 $tableau_printer .= "<td align=\"center\">Imprimantes</td>\n"; 572 $tableau_printer .= "<td align=\"center\">Etat</td>\n"; 573 574 $tableau_printer .= "<td align=\"center\">Travaux d'impression</td>\n"; 575 $tableau_printer .= "</tr>\n"; 576 577 $suisje_printer="0"; 578 for ($loop=0; $loop < count($mp); $loop++) { 579 $mpenc=urlencode($mp[$loop]); 580 $mp_en_cours=urldecode($mpenc); 581 $mp_curr=search_machines("(&(cn=$mp_en_cours)(objectClass=ipHost))","computers"); 582 583 // Test si on a une imprimante ou une machine 584 $resultat=search_imprimantes("printer-name=$mp_en_cours","printers"); 585 for ($loopp=0; $loopp < count($resultat); $loopp++) { 586 if ($mp_en_cours==$resultat[$loopp]['printer-name']) { 587 $suisje_printer="1"; 588 $tableau_printer .= "<tr>"; 589 $tableau_printer .= "<td align=\"center\"><img style=\"border: 0px solid ;\" src=\"../elements/images/printer.png\" title=\"Imprimante\" alt=\"Imprimante\"></TD>"; 590 591 $tableau_printer .= "<TD align=\"center\"><A href='../printers/view_printers.php?one_printer=$mp_en_cours'>$mp_en_cours</A></TD>\n"; 592 593 $printer = $mp_en_cours; 594 $sys= exec("/usr/bin/lpstat -p $printer | grep enabled"); 595 $sys2= exec("/usr/bin/lpstat -a $printer | grep not"); 596 597 if (($sys != "") and ($sys2 == "")) { 598 $tableau_printer .= "<TD align=\"center\"><u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape('$printer est actuellement active.')\"><img type=\"image\" border=\"0\" src=\"../elements/images/enabled.png\"></u>\n"; 599 600 } else { 601 if ($sys2 == "") { 602 $tableau_printer .= "<TD align=\"center\"><u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape('$printer est actuellement inactive. Les documents sont stockés dans la file d impression.')\"><img type=\"image\" border=\"0\" src=\"../elements/images/disabled.png\"></u>\n"; 603 } else { 604 $tableau_printer .= "<TD align=\"center\"><u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape('$printer rejette actuellement tout travail d impression.')\"><img type=\"image\" border=\"0\" src=\"../elements/images/disabled.png\"></u>\n"; 605 } 606 } 607 $tableau_printer .= "</TD>\n"; 608 609 // Travaux d'impression 610 $sys= exec("/usr/bin/lpstat -o $printer"); 611 if ($sys != "") { 612 $tableau_printer .= "<TD align=\"center\"><img type=\"image\" border=\"0\" src=\"../elements/images/enabled.png\">\n"; 613 } else { 614 $tableau_printer .= "<TD align=\"center\"><img type=\"image\" border=\"0\" src=\"../elements/images/disabled.png\">\n"; 615 } 616 617 $tableau_printer .= "</tr>\n"; 618 continue; 619 } 620 } 621 } 622 $tableau_printer .= "</table></center>"; 623 if ($suisje_printer=="1") { 624 echo $tableau_printer; 625 echo "<br>"; 626 } 627 } 628 } 629 630 631 632 633 /** 634 635 * Cette machine a-t-elle ete validee pour la liaison ssh? 636 * @Parametres $mpenc le nom de la machine a tester 637 * @Return 638 */ 639 640 641 function deja_valid($mpenc) 642 { 643 $fichier_valid="/var/se3/unattended/install/computers/$mpenc.tmp"; 644 645 if(!(file_exists($fichier_valid) and (filesize($fichier_valid) > 2) )) { 646 return aide(gettext("Cette machine n a jamais été validée complètement"),"<img src=\"../elements/images/serviceevent.gif\" alt=\"".gettext("Machine jamais validée")."\" width=\"20\" height=\"20\" border=\"0\" />"); } 647 else { 648 return aide(gettext("Pour supprimer ce poste de la liste des clients validés, nécéssaire si <ul><li>un poste est réinstallé </li><li>après un clonage</li><li>après une réinstalation du client ssh</li></ul>"),"<a href=\"install_locale.php?action=trash&mpenc=$mpenc\"><img src=\"../elements/images/edittrash.png\" alt=\"Supprimer un client\" title=\"Supprimer $mpenc\" width=\"16\" height=\"16\" border=\"0\" /></a>"); } 649 } 650 651 652 /** 653 654 * Supprime l'anti slash 655 * @Parametres $string la chaine a traiter 656 * @Return 657 */ 658 659 function enleveantislash($string) 660 { 661 $temp=rawurlencode($string); 662 $temp1=preg_replace("/%5C%27/","%27",$temp); 663 $temp2=preg_replace("/%5C%22/","%22",$temp1); 664 $final=rawurldecode($temp2); 665 return $final; 666 } 667 668 669 670 /** 671 672 * Supprime la double barre 673 * @Parametres $string la chaine a traiter 674 * @Return 675 */ 676 677 function enlevedoublebarre($string) 678 { 679 $temp=rawurlencode($string); 680 $temp1=preg_replace("/%5C%5C/","%5C",$temp); 681 $final=rawurldecode($temp1); 682 return $final; 683 } 684 685 686 /** 687 688 * Test reponse d'une url 689 * @Parametres $string la chaine a traiter 690 * @Return 691 */ 692 693 function filemtime_remote($uri) 694 { 695 $uri = parse_url($uri); 696 $handle = @fsockopen($uri['host'],80); 697 if(!$handle) 698 return 0; 699 700 fputs($handle,"GET $uri[path] HTTP/1.1\r\nHost: $uri[host]\r\n\r\n"); 701 $result = 0; 702 while(!feof($handle)) 703 { 704 $line = fgets($handle,1024); 705 if(!trim($line)) 706 break; 707 708 $col = strpos($line,':'); 709 if($col !== false) 710 { 711 $header = trim(substr($line,0,$col)); 712 $value = trim(substr($line,$col+1)); 713 if(strtolower($header) == 'last-modified') 714 { 715 $result = strtotime($value); 716 break; 717 } 718 } 719 } 720 fclose($handle); 721 return $result; 722 } 723 724 725 /** 726 727 * Selectionne des scripts 728 * @Parametres 729 * @Return 730 */ 731 732 733 function list_alpha() 734 { 735 global $authlink; 736 737 $query="Select nom,script,valide from appli_se3 order by nom asc;"; 738 $resultat = mysql_query($query) or die ( "Probleme d'accès à la base" ); 739 $query_nom="Select nom from appli_se3 order by nom asc;"; 740 $resultat_nom = mysql_query($query_nom) or die ( "Probleme d'accès à la base" ); 741 742 //echo "<div align=center><a href=appli_client.php?action=list_cat><img src=\"../elements/images/left.gif\" alt=\"\" title=\"left\" width=\"15\" height=\"15\" border=\"0\" /> Retour vers liste par catégories</a></div>"; 743 echo "<table align=center width=\"60%\">\n<tr><td class=menuheader height=\"30\" align=\"center\">".gettext("NOM")."</td>\n<td class=menuheader height=\"30\" align=\"center\">".gettext("SCRIPT")."</td>\n<td class=menuheader height=\"30\" align=\"center\" width=\"25\">".gettext("ETAT")."</td>\n<td class=menuheader height=\"30\" width=\"25\" align=\"center\">\n<img src=\"../elements/images/edit.png\" alt=\"\" title=\"edit\" width=\"16\" height=\"16\" border=\"0\" /></td>\n</tr>\n</table>\n"; 744 echo "<table align=center width=\"60%\">\n<tr>\n"; 745 while ($row_nom=mysql_fetch_row($resultat_nom)) 746 { 747 $chaine = strtoupper(substr("$row_nom[0]", 0,1)); 748 if ($test_alpha<>$chaine) 749 { 750 echo "<td align=center><a href=#$chaine>$chaine</a></td>\n"; 751 $test_alpha=$chaine; 752 } 753 } 754 echo "</table>\n<table align=center width=\"60%\">\n"; 755 while ($row=mysql_fetch_row($resultat)) 756 { 757 $chaine = strtoupper(substr("$row[0]", 0,1)); 758 if ($test_alpha<>$chaine) 759 { 760 echo "<tr><td colspan=4 class=menuheader ><a name=\"$chaine\">$chaine</a></td></tr>\n"; 761 $test_alpha=$chaine; 762 } 763 if ((!$row[2]) or (!file_exists('/var/se3/unattended/install/scripts/'.$row[1]))) 764 { 765 $alert=aide(gettext("Une application n est pas validée si lors de la création ou de la modification de de cette application, les executables demandés dans le script ne sont pas trouvés à l endroit indiqué. A vous de les placer au bon endroit (X:\\unattended\\install\\packages) puis Editer l application, puis cliquer sur Enregistrer mes modifications, si les executables sont trouvés, votre application sera automatiquement validée."),"<img src=\"../elements/images/critical.png\" alt=\"Application non validée\" width=\"20\" height=\"20\" border=\"0\" />"); 766 } 767 else 768 { 769 $alert=aide(gettext("Cette application a été validée, cela signifie que les executables ont été trouvés. Cela ne signifie pas que le script associé à l application est correct. Seul les scripts importés du serveur central ont été testés par l equipe de sambaedu."),"<img src=\"../elements/images/enabled.png\" alt=\"Application validée\" width=\"20\" height=\"20\" border=\"0\" />"); 770 } 771 echo "<tr><td align=\"center\" >".$row[0]."</td><td align=\"center\">".$row[1]."</td>\n<td align=\"center\">$alert</td>\n<td align=\"center\"><a href=appli_client.php?action=edit_appli&appli=".urlencode($row[0])."><img src=\"../elements/images/edit.png\" alt=\"\" title=\"Editer l appllication\" width=\"16\" height=\"16\" border=\"0\" /></A></td>\n</tr>\n"; 772 } 773 echo "</table>\n"; 774 } 775 776 777 /** 778 779 * Test la presence d'un fichier de log pour une machine 780 * @Parametres $machine la machine a tester 781 * @Return 782 */ 783 784 function test_log($machine) 785 { 786 $fichier_log="/var/se3/unattended/install/computers/$machine.log"; 787 788 if(!(file_exists($fichier_log) and (filesize($fichier_valid) > 2) )) { 789 // $fp = @fopen($fichier_log, "r"); 790 $tab = file($fichier_log); 791 792 $inverse_tab=array_reverse($tab); 793 if (preg_match("/A)bort/i",$inverse_tab[0])) { 794 return true; 795 } else { 796 return false; 797 } 798 } 799 } 800 801 /** 802 * Ajoute une machine dans un parc 803 804 * @Parametres $name : nom de la machine - $parc : Parc dans lequel on veut ajouter la machine 805 806 * @Return Affichage HTML d'un message d'ajout 807 808 */ 809 810 function add_machine_parc($name,$parc) 811 { 812 include("config.inc.php"); 813 $ret .= "Ajout de l'ordinateur $name au parc <U>$parc</U><BR>"; 814 $cDn = "cn=".$name.",".$computersRdn.",".$ldap_base_dn; 815 $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; 816 exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\""); 817 // #NJ 10-2004 reconstruction des partages imprimantes par parc 818 exec ("/usr/share/se3/sbin/printers_group.pl"); 819 update_wpkg(); 820 return $ret; 821 } 822 823 /** 824 825 * vire une machine d'un parc, Supprime le parc si la machine est la derniere dedans 826 827 * @Parametres Nom du parc et de la machine 828 * @Return 829 */ 830 831 function supprime_machine_parc($mpenc,$parc) { 832 include "config.inc.php"; 833 require_once ("ihm.inc.php"); 834 require_once ("ldap.inc.php"); 835 require_once ("printers.inc.php"); 836 // On compte si la demande ne porte pas sur toutes les machines 837 $mp_all=gof_members($parc,"parcs",1); 838 $mpcount=count($mp_all); 839 // Si la demande porte sur la derniere machine du parc 840 // On vire le parc 841 if ($mpcount == "1") { 842 $cDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; 843 exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); 844 } 845 if ($mpcount > "1") { 846 $resultat=search_imprimantes("printer-name=$mpenc","printers"); 847 $suisje_printer="non"; 848 for ($loopp=0; $loopp < count($resultat); $loopp++) { 849 if ($mpenc==$resultat[$loopp]['printer-name']) { 850 $suisje_printer="yes"; 851 continue; 852 } 853 } 854 $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; 855 if ($suisje_printer=="yes") { 856 // je suis une imprimante 857 $cDn = "cn=".$mpenc.",".$printersRdn.",".$ldap_base_dn; 858 } else { 859 // je suis un ordinateur 860 $cDn = "cn=".$mpenc.",".$computersRdn.",".$ldap_base_dn; 861 } 862 // on supprime 863 exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); 864 } 865 update_wpkg(); 866 867 // Modif pour italc 868 exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh"); 869 } 870 871 /** 872 873 * renomme une machine dans tous ses parcs 874 875 * @Parametres $oldname $name 876 * @Return affichage html 877 */ 878 879 880 function renomme_machine_parcs($oldname,$name) 881 { 882 require_once ("ihm.inc.php"); 883 require_once ("ldap.inc.php"); 884 if ("$name"=="$oldname") { 885 $ret="rien a faire<br>"; 886 } else { 887 $ret="renommage de $oldname en $name dans :<br>"; 888 $parc=search_parcs($oldname); 889 if (isset($parc)) { 890 foreach($parc as $key=>$value) { 891 $ret .= add_machine_parc($name,$parc[$key]['cn']); 892 supprime_machine_parc($oldname,$parc[$key]['cn']); 893 } 894 } 895 } 896 return $ret; 897 } 898 899 900 901 /** 902 903 * Test si un parc exist 904 905 * @Parametres Nom du parc 906 * @Return yes ou no 907 */ 908 909 function parc_exist($parc) { 910 include "config.inc.php"; 911 $list_parcs=search_machines("objectclass=groupOfNames","parcs"); 912 if ( count($list_parcs)>0) { 913 for ($loop=0; $loop < count($list_parcs); $loop++) { 914 if ($parc==$list_parcs[$loop]["cn"]) { 915 return yes; 916 } 917 } 918 } 919 return no; 920 } 921 922 923 /** 924 925 * Fonction permettant de nettoyer la table delegation en fonction des parcs existants 926 927 * @Parametres 928 * @Return 929 */ 930 931 932 function nettoie_delegation() { 933 include "config.inc.php"; 934 $query="select parc from delegation GROUP BY parc"; 935 $result= mysql_query($query); 936 if ($result) { 937 $ligne= mysql_num_rows($result); 938 if ($ligne>0) { 939 while ($row = mysql_fetch_row($result)) { 940 $exist_parc=parc_exist($row[0]); 941 if ($exist_parc=="no") { 942 $query_del="delete from delegation where parc='$row[0]'"; 943 mysql_query($query_del); 944 echo "<BR> Suppression de la délégation pour le parc $row[0]"; 945 echo "<BR>"; 946 } else { continue; } 947 } 948 } 949 } 950 } 951 952 953 /** 954 955 * Mises a jour des fichiers xml de wpkg 956 957 * @Parametres 958 * @Return 959 */ 960 961 962 function update_wpkg() { 963 global $computersRdn, $parcsRdn, $ldap_base_dn; 964 // Met a jour les fichiers : 965 // /var/se3/unattended/install/wpkg/hosts.xml 966 // /var/se3/unattended/install/wpkg/profiles.xml 967 $wpkgUpdateHostsProfiles="/usr/share/se3/scripts/update_hosts_profiles_xml.sh"; 968 if (file_exists($wpkgUpdateHostsProfiles)) exec ("$wpkgUpdateHostsProfiles '$computersRdn' '$parcsRdn' '$ldap_base_dn'"); 969 970 // Met a jour le fichier /var/se3/unattended/install/wpkg/droits.xml 971 $wpkgUpdateDroit="/usr/share/se3/scripts/update_droits_xml.sh"; 972 if (file_exists($wpkgUpdateDroit)) exec ("$wpkgUpdateDroit"); 973 } 974 975 976 977 /** 978 * Supprime une machine de l'inventaire 979 * @Parametres $name : Nom de la machine 980 * @Return Message d'erreur SQL en cas de non suppression 981 982 */ 983 984 function suppr_inventaire($name) 985 { 986 $id=avoir_systemid($name); 987 if($id!=0) { 988 $exec = mysql_query("SHOW TABLES FROM `ocsweb`"); 989 include "dbconfig.inc.php"; 990 $dbnameinvent="ocsweb"; 991 $authlink_invent=@mysql_connect($_SESSION["SERVEUR_SQL"],$_SESSION["COMPTE_BASE"],$_SESSION["PSWD_BASE"]); 992 @mysql_select_db($dbnameinvent) or die("Impossible de se connecter à la base $dbnameinvent."); 993 while($row = mysql_fetch_row($exec)) { 994 if($row[0]=="hardware") { 995 mysql_query("DELETE from `hardware` where `ID`='$id'",$authlink_invent); 996 } else { 997 mysql_query("DELETE from `$row[0]` where `HARDWARE_ID`='$id'",$authlink_invent); 998 } 999 } 1000 } 1001 } 1002 1003 /* 1004 * fonction generant un tableau global a partir de smbstatus 1005 * on cache le resultat 2 minutes afin de reduire la charge 1006 * @Parametres : aucun 1007 * @ smb_status["machine"]["login"] 1008 * ["ip"] 1009 */ 1010 1011 function smbstatus() { 1012 static $smb_login; 1013 static $timestamp; 1014 if ((time() > ($timestamp + 120)) || !(isset($smb_login))) { 1015 $timestamp = time(); 1016 unset($smb_login); 1017 require_once ("ldap.inc.php"); 1018 exec("sudo smbstatus -b 2>/dev/null", $resultat); 1019 foreach ($resultat as $ligne) { 1020 $table = preg_split("/[\s]+/", $ligne); 1021 if ((count($table) == 5) && ($table[1] != root) && ($table[1] != nobody) && (preg_match("/(.+)\\$/", $table[1]) === 0)) { 1022 $mp_curr=search_machines("(&(ipHostNumber=$table[3])(objectClass=ipHost))","computers"); 1023 if (isset($mp_curr[0]["cn"])) { 1024 $hostname=$mp_curr[0]["cn"]; 1025 $smb_login[$hostname]["login"] = $table[1]; 1026 $smb_login[$hostname]["ip"] = preg_replace("/[\(\)]/", "", $table[3]); 1027 } else { 1028 $mp_curr=search_machines("(&(cn=$table[3])(objectClass=ipHost))","computers"); 1029 if (isset($mp_curr[0]["cn"])) { 1030 $hostname=$mp_curr[0]["cn"]; 1031 $smb_login[$hostname]["login"] = $table[1]; 1032 $smb_login[$hostname]["ip"] = preg_replace("/\(ipv4:(.+):(.+)\)/", "\$1}", $table[4]); 1033 } 1034 } 1035 } 1036 } 1037 } 1038 return($smb_login); 1039 } 1040 1041 /* 1042 * fonction destinee a supprimer completement une machine 1043 * @Parametres $computer : Nom de la machine 1044 */ 1045 //function suppression_computer($computer, $tab_options=array('all')) { 1046 function suppression_computer($computer) { 1047 global $computersRdn, $parcsRdn, $printersRdn, $ldap_base_dn; 1048 1049 $retour=""; 1050 1051 $resultat=search_imprimantes("printer-name=$computer","printers"); 1052 $suisje_printer="non"; 1053 for ($loopp=0; $loopp < count($resultat); $loopp++) { 1054 if ($computer==$resultat[$loopp]['printer-name']) { 1055 $suisje_printer="yes"; 1056 $retour="$computer est une imprimante. Suppression non effectuee.<br />\n"; 1057 break; 1058 } 1059 } 1060 1061 if($suisje_printer=="non") { 1062 $tab_parcs=search_machines("(&(member=cn=$computer,$computersRdn,$ldap_base_dn)(objectClass=groupOfNames))","parcs"); 1063 1064 for ($loop=0;$loop<count($tab_parcs);$loop++) { 1065 $parc=$tab_parcs[$loop]['cn']; 1066 1067 supprime_machine_parc($computer,$parc); 1068 // Si le parc est vide la fonction supprime_machine_parc() se charge de supprimer le parc 1069 $retour.="Suppression de $computer du parc $parc<br />\n"; 1070 1071 // Test la machine prof pour italc 1072 $machine_prof=search_description_parc("$parc"); 1073 if($computer==$machine_prof) { 1074 $retour.="<b>Attention :</b> vous ne disposez plus de machine professeur pour le parc $parc<br />\n"; 1075 modif_description_parc ($parc,"0"); 1076 } 1077 1078 } 1079 1080 $retour.="Suppression de $computer de la branche Computers."; 1081 $retour.="<br />\n"; 1082 $cDn = "cn=".$computer.",".$computersRdn.",".$ldap_base_dn; 1083 exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); 1084 $cDn = "uid=".$computer."$,".$computersRdn.",".$ldap_base_dn; 1085 exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); 1086 1087 $retour.="Suppression des rapports wpkg de $computer"; 1088 $retour.="<br />\n"; 1089 $rapport_computer="/var/se3/unattended/install/wpkg/rapports/".$computer.".txt"; 1090 $log_computer="/var/se3/unattended/install/wpkg/rapports/".$computer.".log"; 1091 if(file_exists($rapport_computer)) { @unlink($rapport_computer); } 1092 if(file_exists($log_computer)) { @unlink($log_computer);} 1093 1094 // Entree DHCP: 1095 $suppr_query = "DELETE FROM se3_dhcp where name='$computer';"; 1096 if(mysql_query($suppr_query)) {$retour.="Suppression de la reservation DHCP.<br />";} else {$retour.="<span style='color:red'>ERREUR</span> lors de la suppression de la reservation DHCP.<br />";} 1097 // On relance dhcp si celui-ci est active... A TESTER QUELQUE PART 1098 exec("sudo /usr/share/se3/scripts/makedhcpdconf",$ret); 1099 1100 // Nettoyage de l'inventaire 1101 $retour.="Suppression de $computer de l'inventaire."; 1102 $retour.="<br />\n"; 1103 suppr_inventaire($computer); 1104 exec("/usr/bin/touch /tmp/csvtodo",$ret); 1105 exec("sudo /usr/share/se3/sbin/update-csv.sh",$ret); 1106 } 1107 1108 return $retour; 1109 } 1110 1111 1112 /* 1113 * fonction destinee a determiner si on a une machine ou une imprimante 1114 * @Parametres $device : Nom de l'unite a verifier 1115 */ 1116 //function is_printer($device) { 1117 function is_printer($device) { 1118 // require_once "config.inc.php"; 1119 // require_once ("ihm.inc.php"); 1120 // require_once("ldap.inc.php"); 1121 require_once ("printers.inc.php"); 1122 $resultat=search_imprimantes("printer-name=$device", "printers"); 1123 $suisje_printer = "0"; 1124 for ($loopp = 0; $loopp < count($resultat); $loopp++) { 1125 if ($device == $resultat[$loopp]['printer-name']) { 1126 $suisje_printer = "1"; 1127 return true; 1128 break; 1129 } 1130 } 1131 } 1132 1133 /* 1134 * fonction destinee a connaitre l'etat de la session samba d'une machine 1135 * @Parametres $device : Nom de la machine 1136 */ 1137 1138 function get_smbsess($mp_en_cours) { 1139 global $action_parc; 1140 $smb_login = smbstatus(); 1141 $login = $smb_login[$mp_en_cours]['login']; 1142 if (!($login)) { 1143 $etat_session = "<img type=\"image\" src=\"../elements/images/disabled.png\">\n"; 1144 } else { 1145 $texte = $login . $action_parc['msgUserLogged']; 1146 $etat_session.="<img onmouseout=\"UnTip();\" onmouseover=\"Tip('" . $texte . "',WIDTH,250,SHADOW,true,DURATION,5000);\" src=\"../elements/images/enabled.png\" border=\"0\" />"; 1147 } 1148 return array(login => $login, html => $etat_session); 1149 } 1150 1151 /* 1152 * fonction destinee rebooter une machine 1153 * @Parametres $ip : adresse ip 1154 * $nom : nom machnie 1155 * $wake : action 1156 * $shutdownreboot 1157 */ 1158 1159 function wake_shutdown_or_reboot($ip, $nom, $wake, $shutdown_reboot) { 1160 1161 global $restriction_parcs, $tab_delegated_parcs; 1162 if($restriction_parcs=='y') { 1163 $temoin_erreur="y"; 1164 for($loop=0;$loop<count($tab_delegated_parcs);$loop++) { 1165 // La machine est-elle dans un des parcs d�l�gu�s? 1166 if(is_machine_in_parc($nom,$tab_delegated_parcs[$loop])) { 1167 $temoin_erreur='n'; 1168 break; 1169 } 1170 } 1171 if($temoin_erreur=="y") { 1172 echo "<p style='color:red'>La machine $nom n'est pas dans un de vos parcs delegues.</p>\n"; 1173 die(); 1174 } 1175 } 1176 1177 if (fping($ip)) { 1178 $smb_login = smbstatus(); 1179 if ($shutdown_reboot == "wait1") { 1180 echo $action_parc['msgNoSignal']; 1181 } elseif ($shutdown_reboot == "wait2") { 1182 $login = $smb_login[$nom]['login']; 1183 if (!($login)) { 1184 @start_poste("shutdown", $nom); 1185 echo $action_parc['cmdSendReboot']; 1186 } else { 1187 echo $login . $action_parc['msgUserIsLogged']; 1188 } 1189 } elseif ($shutdown_reboot == "reboot") { 1190 @start_poste("reboot", $nom); 1191 echo $action_parc['msgSendReboot']; 1192 } 1193 } else { 1194 if ("$wake" == "y") { 1195 @start_poste("wol", $nom); 1196 echo $action_parc['msgSendWakeup']; 1197 } 1198 } 1199 } 1200 1201 1202 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |