source: admin/WebConsole/varios/incorporaordenadores.php @ fa0bb7d

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since fa0bb7d was 043e67d, checked in by pablombg <noreply@…>, 7 years ago

#814: Sustituir las etiquetas cortas de php por el formato largo

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5502 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 7.8 KB
Line 
1<?php
2// *************************************************************************************************************************************************
3// Aplicación WEB: ogAdmWebCon
4// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
5// Fecha Creación: Año 2009-2010
6// Fecha Última modificación: Agosto-2010
7// Nombre del fichero: incorporaordenadores.php
8// Descripción :
9//              Da de alta en la base de datos nuevos ordenadores desde un fichero de configuración dhcp
10// *************************************************************************************************************************************************
11include_once("../includes/ctrlacc.php");
12include_once("../clases/AdoPhp.php");
13include_once("../includes/CreaComando.php");
14include_once("../includes/tftputils.php");
15include_once("../idiomas/php/".$idioma."/incorporaordenadores_".$idioma.".php");
16include_once("../idiomas/php/".$idioma."/avisos_".$idioma.".php");
17//________________________________________________________________________________________________________
18$cmd=CreaComando($cadenaconexion);
19if (!$cmd)
20        Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
21//___________________________________________________________________________________________________
22$swf=0;
23$idaula=0;
24$nombreaula="";
25$contenido="";
26
27if (isset($_GET["idaula"])) $idaula=$_GET["idaula"];
28if (isset($_GET["nombreaula"])) $nombreaula=$_GET["nombreaula"];
29
30if (isset($_POST["swf"])) $swf=$_POST["swf"]; // Recoge parametros
31if (isset($_POST["contenido"])) $contenido=$_POST["contenido"];
32if (isset($_POST["idaula"])) $idaula=$_POST["idaula"];
33if (isset($_POST["nombreaula"])) $nombreaula=$_POST["nombreaula"];
34
35$resul=0;
36$ordDup="";
37
38if(!empty($contenido)){ // Se ha introducido contenido en lugar de fichero
39        $resul=procesaLineas($cmd,$idaula,$contenido);
40}
41//___________________________________________________________________________________________________
42?>
43<HTML>
44<TITLE>Administración web de aulas</TITLE>
45<HEAD>
46        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
47<LINK rel="stylesheet" type="text/css" href="../estilos.css">
48</HEAD>
49<BODY>
50<FORM action="incorporaordenadores.php" method="post" name="fdatos">
51        <INPUT type=hidden name=swf value=1>
52        <INPUT type=hidden name=idaula value=<?php echo $idaula?>>
53        <INPUT type=hidden name=nombreaula value=<?php echo $nombreaula?>>
54        <BR>
55        <P align=center class=cabeceras><?php echo $TbMsg[0]?><BR>
56        <SPAN align=center class=subcabeceras><IMG src="../images/iconos/aula.gif">&nbsp;<?php echo $TbMsg[1].":".$nombreaula ?></SPAN></P>
57<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
58<table align="center" class="tabla_datos" border="0" cellpadding="0" cellspacing="1">
59<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
60        <tr>
61            <th>&nbsp;<?php echo $TbMsg["MSG_DHCPCODE"]?>&nbsp;<br>
62                &nbsp;<?php echo $TbMsg["MSG_DHCPHOST"]?>&nbsp;</th>
63            <td><textarea class="cajatexto" name="contenido" cols="70" rows="18"></textarea></td></tr>
64        <tr><th colspan="2">&nbsp;<?php echo $TbMsg["WARN_NAMELENGTH"]?>&nbsp;</th></tr>
65        <tr><th colspan="2">&nbsp;<?php echo $TbMsg["WARN_NETBOOT"]?>&nbsp;</th></tr>
66<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
67</table>
68 </FORM>
69<TABLE align=center>
70        <TR>
71                <TD><IMG src="../images/boton_cancelar.gif" style="cursor:hand"  onclick=""></TD>
72                <TD width=20></TD>
73                <TD><IMG src="../images/boton_confirmar.gif" style="cursor:hand"  onclick="javascript:document.fdatos.submit();"></TD>
74        </TR>
75</TABLE>
76<?php
77//________________________________________________________________________________________________________
78// Mensaje con el resultado del proceso
79echo '<SCRIPT LANGUAGE="javascript">';
80if (!empty($resul))
81        echo "  alert('".$TbMsg[$resul]."');";
82if (!empty($ordDup))
83        echo "  alert('".$TbMsg[5]."\\n".$ordDup."');";
84echo '</SCRIPT>';
85//________________________________________________________________________________________________________
86?>
87</BODY>
88</HTML>
89<?php
90// *************************************************************************************************************************************************
91function procesaLineas($cmd,$idaula,$buffer)
92{
93        $nombre="";
94        $MAC="";
95        $IP="";
96        $sw=false;
97
98        $equipos = preg_split('/}/',$buffer);
99
100        // Recorro todos los equipos
101        foreach ($equipos as $equipo) {
102            $nombre = strstr($equipo, '{', true);
103            $nombre = str_replace('host', '', $nombre);
104            $valores = strstr($equipo, '{');
105            // Eliminamos caracteres inútiles
106            $valores = str_replace(array (' ','{',':'), '',$valores);
107
108            $propiedades = preg_split('/;/',$valores);
109
110            // Recorro todas las propiedades
111            foreach ($propiedades as $propiedad) {
112                if (strpos (" $propiedad " , "fixed-address")) {
113                    $IP = str_replace("fixed-address", '', $propiedad);
114                }
115                if (strpos ( " $propiedad " , "hardwareethernet")) {
116                    $MAC = str_replace("hardwareethernet", '', $propiedad);
117                }
118            }
119
120            // Si tengo los valores necesario incluyo el equipo
121            if(!empty($nombre) && !empty($MAC) && !empty($IP)){
122                if(!Inserta($cmd,$idaula,$nombre,$MAC,$IP)) {
123                        return(4);
124                }
125                $sw=true;
126                $nombre="";
127                $MAC="";
128                $IP="";
129                $resul=true;
130            }
131        }
132        if($sw)
133            return(3);
134        else
135            return(4);
136}
137//________________________________________________________________________________________________________
138function Inserta($cmd,$idaula,$nombre,$lamac,$laip)
139{
140        global $ordDup;
141        global $idioma;
142       
143        $grupoid=0;
144        $nombreordenador=trim($nombre);
145        $ip=trim($laip);
146        $auxmac=trim($lamac);
147        $mac="";
148        for($i=0;$i<strlen($auxmac);$i++)
149                if(substr($auxmac,$i,1)!=":")
150                        $mac.=substr($auxmac,$i,1);
151        if(existeOrdenador($cmd,$nombreordenador,$mac,$ip)){
152                $ordDup.="Nombre=".$nombre.",Mac=".$mac.",Dirección ip=".$ip." \\n";
153                return(true);   
154        }
155
156        $idperfilhard=0;
157## ADV: modificacion para asignar a los ordenadores, cuando se crean desde "incorpoar ordenadores" el repositorio "default"
158        $idrepositorio=1;
159        $idconfiguracion=0;
160        $cmd->CreaParametro("@grupoid",$grupoid,1);
161        $cmd->CreaParametro("@idaula",$idaula,1);
162        $cmd->CreaParametro("@nombreordenador",$nombreordenador,0);
163        $cmd->CreaParametro("@ip",$ip,0);
164        $cmd->CreaParametro("@mac",$mac,0);
165        $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
166        $cmd->CreaParametro("@idrepositorio",$idrepositorio,1);
167        $cmd->CreaParametro("@idconfiguracion",$idconfiguracion,1);
168
169        $cmd->texto="INSERT INTO ordenadores (nombreordenador, ip, mac, idperfilhard,
170                                 idrepositorio, router, mascara, idaula, grupoid)
171                          SELECT @nombreordenador, @ip, @mac, @idperfilhard,
172                                 @idrepositorio, router, netmask, @idaula, @grupoid
173                            FROM aulas
174                           WHERE idaula=".$idaula;
175        $resul=$cmd->Ejecutar();
176       
177        // Crear fichero de arranque PXE con plantilla por defecto.
178        if ($resul) {
179                $idordenador=$cmd->Autonumerico();
180                createBootMode ($cmd, "", $idordenador, $idioma);
181        }
182        return($resul);
183}
184//________________________________________________________________________________________________________
185//      Recupera los datos de un ordenador
186//              Parametros:
187//              - cmd: Una comando ya operativo (con conexión abierta) 
188//              - ip: Dirección IP
189//________________________________________________________________________________________________________
190function existeOrdenador($cmd,$nombre,$MAC,$IP){
191        $rs=new Recordset;
192        $cmd->texto="SELECT * FROM ordenadores WHERE nombreordenador='".$nombre."' OR mac='".$MAC."' OR ip='".$IP."'";
193        $rs->Comando=&$cmd;
194        if (!$rs->Abrir()) return(false); // Error al abrir recordset
195        $rs->Primero();
196        if (!$rs->EOF){
197                $rs->Cerrar();
198                return(true);
199        }
200        else
201                return(false);
202}
203?>
Note: See TracBrowser for help on using the repository browser.