"; $oldattribs = $_POST['oldattribs']; if (count($oldattribs) != 0){ foreach (array_keys($oldattribs) as $key){ $oldatts[$key] = htmlentities($oldattribs[$key]); } } #print_r($oldatts); echo "

"; $seconds = 2; $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; echo " Computers Management
"; ############################################## # PXE CN (DN) if ( $oldpxecn == $pxecn ){ # $mesg = "keine Aenderung
"; } if ( $oldpxecn != "" && $pxecn != "" && $oldpxecn != $pxecn ){ echo "PXE Name aendern
"; # hier noch Syntaxcheck # Formulareingaben anpassen $exppxe = explode(" ",$pxecn); foreach ($exppxe as $word){$expuc[] = ucfirst($word);} $pxecn = implode(" ",$expuc); $pxecn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $pxecn); $newpxeDN = "cn=".$pxecn.",".$nodeDN; print_r($newpxeDN); echo "

"; if(modify_pxe_dn($pxeDN, $newpxeDN)){ $mesg = "PXE Name erfolgreich geändert

"; $pxeDN = $newpxeDN; }else{ $mesg = "Fehler beim ändern des PXE Namen!

"; } # newsubmenu holen... $url = "pxe.php?dn=".$newpxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } if ( $oldpxecn != "" && $pxecn == "" ){ echo "PXE Name loeschen!
Dieses ist Teil des DN, Sie werden das PXE Boot Menü komplett löschen

"; echo "Wollen Sie das PXE Boot Menü ".$oldpxecn." wirklich löschen?

Falls ja:



Falls, nein:

"; $seconds = 600; } ########################################## # Remote Boot Dienst if ($rbs != "none"){ $exp = explode(',',$rbs); $exprbscn = explode('=',$exp[0]); $rbscn = $exprbscn[1]; $exprbsau = explode('=',$exp[2]); $rbsau = $exprbsau[1]; $entryrbs ['rbservicedn'] = $rbs; if ($result = ldap_mod_replace($ds,$pxeDN,$entryrbs)){ $mesg = "Remote Boot Service erfolgreich zu ".$rbscn."[Abt.: ".$rbsau."] geändert

"; }else{ $mesg = "Fehler beim ändern des Remote Boot Services zu ".$rbscn."!

"; } } ########################################## # bereits vorhandene TimeRange(s) bearbeiten $entrymodtr = array(); $modtr = 0; # TimeRanges zusammensetzen # $t = 0; # Laufvariable für $entrymodtr, da nicht jede Timerange ok sein muss for ($i=0; $icheck_timerange_syntax($pxeday[$i],$pxebeg[$i],$pxeend[$i])){ # in Grossbuchstaben if (preg_match("/([a-z]+)/",$pxeday[$i])){$pxeday[$i] = strtoupper($pxeday[$i]);} if (preg_match("/([a-z]+)/",$pxebeg[$i])){$pxebeg[$i] = strtoupper($pxebeg[$i]);} if (preg_match("/([a-z]+)/",$pxeend[$i])){$pxeend[$i] = strtoupper($pxeend[$i]);} # führende Nullen weg $pxebeg[$i] = preg_replace ( '/0([0-9])/', '$1', $pxebeg[$i]); $pxeend[$i] = preg_replace ( '/0([0-9])/', '$1', $pxeend[$i]); # TimeRange auf Überschneidung mit vorhandenen checken außer mit eigener alter TR da diese # ja geändert werden soll if(check_timerange_pxe($pxeday[$i],$pxebeg[$i],$pxeend[$i],$nodeDN,$oldpxetimerange)){ $pxetimerange = $pxeday[$i]."_".$pxebeg[$i]."_".$pxeend[$i]; $entrymodtr ['timerange'][$i] = $pxetimerange; $modtr = 1; } else{ $mesg = "Es existiert bereits ein PXE Boot Menü, das sich mit der eingegebenen Time Range überschneidet!
Bitte geben Sie eine andere Time Range ein.

"; $entrymodtr ['timerange'][$i] = $oldpxetimerange; } } else{ $mesg = "Falsche Syntax in der Timerange-Eingabe!
Bitte geben Sie die erneut Time Range ein.

"; $entrymodtr ['timerange'][$i] = $oldpxetimerange; } } elseif ( $pxeday[$i] == "" || $pxebeg[$i] == "" || $pxeend[$i] == "" || $pxebeg[$i] > $pxeend[$i]){ $mesg = "Sie haben die Time Range Nr.".$i." nicht vollständig angegeben. Diese ist aber ein notwendiges Attribut.
Diese Time Range wird nicht bearbeitet.

"; $entrymodtr ['timerange'][$i] = $oldpxetimerange; } else{$entrymodtr ['timerange'][$i] = $oldpxetimerange;} } # Ende for-Schleife für jede Timerange # jetzt noch alle gesammelten Änderungen Durchführen ... if ($modtr == 1){ # erst ändern echo "Ändern: "; print_r($entrymodtr); echo "
"; if($result = ldap_mod_replace($ds,$pxeDN,$entrymodtr)){ $mesg = "TimeRanges erfolgreich geändert

"; }else{ $mesg = "Fehler beim ändern der TimeRanges!

"; } } if ( count($deltr) != 0 && $modtr == 0 ){ # Time Range löschen $j = 0; foreach ($deltr as $delrange){ $entrydeltr ['timerange'][$j] = $delrange; $j++; } # dann löschen echo "Löschen: "; print_r($entrydeltr); echo "
"; if($result = ldap_mod_del($ds,$pxeDN,$entrydeltr)){ $mesg = "TimeRanges erfolgreich gelöscht

"; }else{ $mesg = "Fehler beim löschen der TimeRanges!

"; } }elseif(count($deltr) != 0 && $modtr == 1){ echo "Nur Ändern (gleichzeitig Löschen und Ändern geht nicht)"; } ##################################### # TimeRange hinzufügen if ( $newpxeday != "" && $newpxebeg != "" && $newpxeend != "" && $newpxebeg <= $newpxeend ){ # TimeRange Syntax checken $syntax = new Syntaxcheck; if ($syntax->check_timerange_syntax($newpxeday,$newpxebeg,$newpxeend)){ # in Grossbuchstaben if (preg_match("/([a-z]+)/",$newpxeday)){$newpxeday = strtoupper($newpxeday);} if (preg_match("/([a-z]+)/",$newpxebeg)){$newpxebeg = strtoupper($newpxebeg);} if (preg_match("/([a-z]+)/",$newpxeend)){$newpxeend = strtoupper($newpxeend);} # führende Nullen weg $newpxebeg = preg_replace ( '/0([0-9])/', '$1', $newpxebeg); $newpxeend = preg_replace ( '/0([0-9])/', '$1', $newpxeend); # TimeRange auf Überschneidung mit vorhandenen checken if(check_timerange_pxe($newpxeday,$newpxebeg,$newpxeend,$nodeDN,"")){ $newpxetimerange = $newpxeday."_".$newpxebeg."_".$newpxeend; $entrytr ['timerange'] = $newpxetimerange; if($result = ldap_mod_add($ds,$pxeDN,$entrytr)){ $mesg = "Zusätzliche TimeRange erfolgreich eingetragen

"; }else{ $mesg = "Fehler beim eintragen der zusätzlichen TimeRange!

"; } }else{ $mesg = "Es existiert bereits ein PXE Boot Menü, das sich mit der eingegebenen Time Range überschneidet!
Bitte geben Sie eine andere Time Range ein.

"; } }else{ $mesg = "Falsche Syntax in der Timerange-Eingabe!
Bitte geben Sie die erneut Time Range ein.

"; } } ##################################### # PXE Filename(s) $filemod = array(); $modfi = 0; $filedel = array(); $delfi = 0; $j = 0; if (count($file) != 0){ for ($i=0; $i Vorsicht dies kann eine nicht verwendbare PXE Datei zur Folge haben!

"; # hier noch Syntaxcheck $filemod ['filename'][$i] = $file[$i]; $modfi = 1; } if ( $oldfile[$i] != "" && $file[$i] == "" ){ echo "PXE Dateinamen loeschen!
Achtung: aus ihren PXE Daten wird keine PXE Datei mehr generiert.
Sie sind solange nicht mehr für den PXE Bootvorgang verwendbar bis Sie einen neuen Dateinamen anlegen!

"; $filemod ['filename'][$i] = $oldfile[$i]; $filedel ['filename'][$j] = $oldfile[$i]; $j++; $delfi = 1; $seconds = 4; } } #erst ändern if ($modfi == 1){ echo "Ändern: "; print_r($filemod); echo "
"; if(ldap_mod_replace($ds,$pxeDN,$filemod)){ $mesg = "PXE Dateiname(n) erfolgreich geändert

"; }else{ $mesg = "Fehler beim ändern des(r) PXE Dateinamens!

"; } $modfi = 0; } # dann löschen if ($delfi == 1){ echo "Löschen: "; print_r($filedel); echo "
"; if(ldap_mod_del($ds,$pxeDN,$filedel)){ $mesg = "PXE Dateiname(n) erfolgreich gelöscht

"; }else{ $mesg = "Fehler beim löschen des PXE Dateinamens !

"; } $delfi = 0; } } # PXE Dateiname neu anlegen if ($newfilename == ""){ } if ($newfilename != ""){ echo "PXE Dateiname hinzufügen"; $fileadd ['filename'] = $newfilename; if(ldap_mod_add($ds,$pxeDN,$fileadd)){ $mesg = "PXE Dateiname ".$newfilename." erfolgreich angelegt

"; }else{ $mesg = "Fehler beim anlegen des PXE Dateinamens ".$newfilename." !

"; } } ################################################################## # Restliche Attribute $entryadd = array(); $entrymod = array(); $entrydel = array(); foreach (array_keys($atts) as $key){ if ( $oldatts[$key] == $atts[$key] ){ } if ( $oldatts[$key] == "" && $atts[$key] != "" ){ # hier noch Syntaxcheck $entryadd[$key] = $atts[$key]; } if ( $oldatts[$key] != "" && $atts[$key] != "" && $oldatts[$key] != $atts[$key] ){ # hier noch Syntaxcheck $entrymod[$key] = $atts[$key]; } if ( $oldatts[$key] != "" && $atts[$key] == "" ){ # hier noch Syntaxcheck $entrydel[$key] = $oldatts[$key]; } } #print_r($entryadd); echo "
"; #print_r($entrymod); echo "
"; #print_r($entrydel); echo "
"; if (count($entryadd) != 0 ){ #print_r($entryadd); echo "
"; #echo "neu anlegen
"; foreach (array_keys($entryadd) as $key){ $addatts .= "".$key.","; } if(ldap_mod_add($ds,$pxeDN,$entryadd)){ $mesg = "Attribute ".$addatts." erfolgreich eingetragen

"; }else{ $mesg = "Fehler beim eintragen der Attribute ".$addatts."

"; } } if (count($entrymod) != 0 ){ #print_r($entrymod); echo "
"; #echo "ändern
"; foreach (array_keys($entrymod) as $key){ $modatts .= "".$key.","; } if(ldap_mod_replace($ds,$pxeDN,$entrymod)){ $mesg = "Attribute ".$modatts." erfolgreich geaendert

"; }else{ $mesg = "Fehler beim aendern der Attribute ".$modatts."

"; } } if (count($entrydel) != 0 ){ #print_r($entrydel); echo "
"; #echo "löschen
"; foreach (array_keys($entrydel) as $key){ $delatts .= "".$key.","; } if(ldap_mod_del($ds,$pxeDN,$entrydel)){ $mesg = "Attribute ".$delatts." erfolgreich geloescht

"; }else{ $mesg = "Fehler beim loeschen der Attribute ".$delatts."

"; } } $mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
Falls nicht, klicken Sie hier back"; redirect($seconds, $url, $mesg, $addSessionId = TRUE); echo "
"; ?>