8160df9ce16aba68fa0d9d2e4c0c20e4dd40e9c8
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

1) <?php
2) 
3) require_once('inc/debug.php');
4) require_once('inc/security.php');
5) 
6) require_once('vhosts.php');
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

7) require_once('certs.php');
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

8) 
bernd Aliases editieren

bernd authored 17 years ago

9) $title = "Subdomain bearbeiten";
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

10) $section = 'vhosts_vhosts';
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

11) 
12) require_role(ROLE_SYSTEMUSER);
13) 
bernd Einige notices (undefined i...

bernd authored 15 years ago

14) $id = (isset($_GET['vhost']) ? (int) $_GET['vhost'] : 0);
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

15) $vhost = empty_vhost();
16) 
17) if ($id != 0)
18)   $vhost = get_vhost_details($id);
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

19) 
20) DEBUG($vhost);
bernd Aliases editieren

bernd authored 17 years ago

21) if ($id == 0) {
22)   output("<h3>Neue Subdomain anlegen</h3>");
23)   $title = "Subdomain anlegen";
24) }
25) else {
26)   output("<h3>Subdomain bearbeiten</h3>");
27) }
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

28) 
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

29) html_header("<script type=\"text/javascript\">
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

30)  
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

31)   function selectedDomain() {
32)     var selected;
33)     selected=document.getElementById('domain').options.selectedIndex;
34)     return document.getElementById('domain').options.item(selected).text;
35)     }
36)   
37)   function defaultDocumentRoot() {
38)     var hostname;
39)     if (document.getElementById('hostname').value == '') 
40)       hostname = selectedDomain();
41)     else
42)       hostname = document.getElementById('hostname').value + '.' + selectedDomain();
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

43)     var default_docroot = hostname + '/htdocs';
44)     useDefaultDocroot(default_docroot);
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

45)   }
46)   
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

47)   function useDefaultDocroot( default_docroot ) {
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

48)     var do_it = (document.getElementById('use_default_docroot').checked == true);
49)     var inputfield = document.getElementById('docroot');
50)     inputfield.disabled = do_it;
51)     if (do_it) {
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

52)       document.getElementById('docroot').value = default_docroot;
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

53)     }
54)   }
bernd Erster Versuch, SVN, DAV un...

bernd authored 17 years ago

55)   
56)   function showAppropriateLines() {
57)     if (document.getElementById('vhost_type_regular').checked == true) {
bernd Docroot auch bei WebDAV anz...

bernd authored 17 years ago

58)       document.getElementById('options_docroot').style.display = 'block';
59)       document.getElementById('options_scriptlang').style.display = 'block';
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

60)       document.getElementById('options_webapp').style.display = 'none';
bernd Erster Versuch, SVN, DAV un...

bernd authored 17 years ago

61)     }
bernd Docroot auch bei WebDAV anz...

bernd authored 17 years ago

62)     else if (document.getElementById('vhost_type_dav').checked == true) { 
63)       document.getElementById('options_docroot').style.display = 'block';
64)       document.getElementById('options_scriptlang').style.display = 'none';
65)       document.getElementById('options_webapp').style.display = 'none';
66)     }
67)     else if (document.getElementById('vhost_type_svn').checked == true) {
68)       document.getElementById('options_docroot').style.display = 'none';
69)       document.getElementById('options_scriptlang').style.display = 'none';
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

70)       document.getElementById('options_webapp').style.display = 'none';
bernd Erster Versuch, SVN, DAV un...

bernd authored 17 years ago

71)     }
72)     else if (document.getElementById('vhost_type_webapp').checked == true) {
bernd Docroot auch bei WebDAV anz...

bernd authored 17 years ago

73)       document.getElementById('options_docroot').style.display = 'none';
74)       document.getElementById('options_scriptlang').style.display = 'none';
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

75)       document.getElementById('options_webapp').style.display = 'block';
bernd Erster Versuch, SVN, DAV un...

bernd authored 17 years ago

76)     }
77)   }
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

78)   </script>");
79) 
80) $defaultdocroot = $vhost['domain'];
bernd domain = NULL ==> user-subd...

bernd authored 17 years ago

81) if (! $vhost['domain'])
bernd Mehr config-optionen und co...

bernd authored 15 years ago

82)   $defaultdocroot = $_SESSION['userinfo']['username'].'.'.config('masterdomain');
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

83) if ($vhost['hostname'])
84)   $defaultdocroot = $vhost['hostname'].'.'.$defaultdocroot;
85) 
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

86) $defaultdocroot = $defaultdocroot.'/htdocs';
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

87) 
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

88) $is_default_docroot = ($vhost['docroot'] == NULL) || ($vhost['homedir'].'/websites/'.$defaultdocroot == $vhost['docroot']);
89) 
90) if ($vhost['docroot'] != '' && ! strstr($vhost['docroot'], '/websites/'))
91) {
92)   warning("Sie verwenden einen Speicherplatz außerhalb von »~/websites/«. Diese Einstellung ist momentan nicht mehr gestattet. Ihre Einstellung wurde daher auf die Standardeinstellung zurückgesetzt. Prüfen Sie dies bitte und verschieben Sie ggf. ihre Dateien.");
93)   $is_default_docroot = True;
94) }
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

95) 
96) $docroot = '';
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

97) if ($is_default_docroot)
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

98)   $docroot = $defaultdocroot;
99) else
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

100)   $docroot = substr($vhost['docroot'], strlen($vhost['homedir'].'/websites/'));
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

101) 
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

102) $s = (strstr($vhost['options'], 'aliaswww') ? ' checked="checked" ' : '');
bernd Einige notices (undefined i...

bernd authored 15 years ago

103) $errorlog = ($vhost['errorlog'] == 1 ? ' checked="checked" ' : '');
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

104) 
105) $vhost_type = 'regular';
106) if ($vhost['is_dav'])
107)   $vhost_type = 'dav';
108) elseif ($vhost['is_svn'])
109)   $vhost_type = 'svn';
110) elseif ($vhost['is_webapp'])
111)   $vhost_type = 'webapp';
112) 
bernd Webapps implementiert

bernd authored 17 years ago

113) $applist = list_available_webapps();
114) $webapp_options = '';
115) foreach ($applist as $app)
116)   $webapp_options .= "<option value=\"{$app['id']}\">{$app['displayname']}</option>\n";
117) 
118) 
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

119) $form = "
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

120) <h4 style=\"margin-top: 2em;\">Name des VHost</h4>
bernd Schon beim tippen ändern, n...

bernd authored 16 years ago

121)     <div style=\"margin-left: 2em;\"><input type=\"text\" name=\"hostname\" id=\"hostname\" size=\"10\" value=\"{$vhost['hostname']}\" onkeyup=\"defaultDocumentRoot()\"  onchange=\"defaultDocumentRoot()\" /><strong>.</strong>".domainselect($vhost['domain_id'], 'onchange="defaultDocumentRoot()"');
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

122) $form .= "<br /><input type=\"checkbox\" name=\"options[]\" id=\"aliaswww\" value=\"aliaswww\" {$s}/> <label for=\"aliaswww\">Auch mit <strong>www</strong> davor.</label></div>
123) 
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

124) <div class=\"vhostsidebyside\">
bernd Docroot auch bei WebDAV anz...

bernd authored 17 years ago

125) <div class=\"vhostoptions\" id=\"options_docroot\" ".($vhost_type=='regular' || $vhost_type=='dav' ? '' : 'style="display: none;"').">
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

126)   <h4>Optionen</h4>
127)   <h5>Speicherort für Dateien (»Document Root«)</h5>
128)   <div style=\"margin-left: 2em;\">
bernd Fix bug #488

bernd authored 15 years ago

129)     <input type=\"checkbox\" id=\"use_default_docroot\" name=\"use_default_docroot\" value=\"1\" onclick=\"defaultDocumentRoot()\" ".($is_default_docroot ? 'checked="checked" ' : '')."/>&#160;<label for=\"use_default_docroot\">Standardeinstellung benutzen</label><br />
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

130)     <strong>".$vhost['homedir']."/websites/</strong>&#160;<input type=\"text\" id=\"docroot\" name=\"docroot\" size=\"30\" value=\"".$docroot."\" ".($is_default_docroot ? 'disabled="disabled" ' : '')."/>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

131)   </div>
bernd Docroot auch bei WebDAV anz...

bernd authored 17 years ago

132) </div>
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

133) ";
bernd Docroot auch bei WebDAV anz...

bernd authored 17 years ago

134) 
bernd PHP 5.3 als Default

bernd authored 14 years ago

135) $options = array("none" => 'ausgeschaltet', "php53" => 'PHP 5.3' , "fastcgi" => "Kompatibilitätsmodus: PHP 5.2");
bernd Vorbereitung für PHP 5.3

bernd authored 15 years ago

136) 
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

137) if ($vhost['php'] == 'mod_php')
138) {
bernd Vorbereitung für PHP 5.3

bernd authored 15 years ago

139)   $options['mod_php'] = 'PHP als Apache-Modul (veraltet)';
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

140) }
bernd Vorbereitung für PHP 5.3

bernd authored 15 years ago

141) 
bernd CGI abschaltbar

bernd authored 14 years ago

142) $have_cgi = ($vhost['cgi'] == 1 ? ' checked="checked" ' : '');
143) 
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

144) $form .= "
145) <div class=\"vhostoptions\" id=\"options_scriptlang\" ".($vhost_type=='regular' ? '' : 'style="display: none;"').">
146)   <h5>PHP</h5>
147)   <div style=\"margin-left: 2em;\">
bernd Vorbereitung für PHP 5.3

bernd authored 15 years ago

148)     ".html_select("php", $options, $vhost['php'])."
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

149)   </div>
bernd CGI abschaltbar

bernd authored 14 years ago

150)   <h5>CGI</h5>
151)   <div style=\"margin-left: 2em;\">
152)     <input type=\"checkbox\" name=\"cgi\" id=\"cgi\" value=\"yes\" {$have_cgi}/>&#160;<label for=\"cgi\">Erlaube CGI-Nutzung</label>
153)   </div>
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

154) </div>
155) ";
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

156) 
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

157) $form .= "
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

158) <div class=\"vhostoptions\" id=\"options_webapp\" ".($vhost_type=='webapp' ? '' : 'style="display: none;"').">
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

159)   <h4>Optionen</h4>
160)   <h5>Anwendung</h5>
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

161)   <select name=\"webapp\" id=\"webapp\" size=\"1\">
bernd Webapps implementiert

bernd authored 17 years ago

162)     {$webapp_options}
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

163)   </select>
bernd Info-Text über E-mail mit Z...

bernd authored 17 years ago

164)   <p>Wenn Sie diese Option wählen, wird die Anwendung automatisch eingerichtet. Sie erhalten dann ihre Zugangsdaten per E-Mail.</p>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

165) </div>
bernd R.I.P. Shared-Drupal

bernd authored 15 years ago

166) ";
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

167) 
bernd R.I.P. Shared-Drupal

bernd authored 15 years ago

168) $form .= "
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

169) <h4>Verwendung</h4>
170)         <div style=\"margin-left: 2em;\">
171) 	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_regular\" value=\"regular\" ".(($vhost_type=='regular') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_regular\">&#160;Normal (selbst Dateien hinterlegen)</label><br />
bernd R.I.P. Shared-Drupal

bernd authored 15 years ago

172) ";
173) if ($vhost_type=='webapp')
174) {
175)   // Wird nur noch angezeigt wenn der Vhost schon auf webapp konfiguriert ist, ansonsten nicht.
176)   // Die User sollen den Webapp-Installer benutzen.
177)   $form .= "
bernd Gloable Webapps weiter hoch

bernd authored 17 years ago

178) 	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_webapp\" value=\"webapp\" ".(($vhost_type=='webapp') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_webapp\">&#160;Eine vorgefertigte Applikation nutzen</label><br />
bernd R.I.P. Shared-Drupal

bernd authored 15 years ago

179) ";
180) }
181) $form .= "
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

182) 	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_dav\" value=\"dav\" ".(($vhost_type=='dav') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_dav\">&#160;WebDAV</label><br />
bernd Gloable Webapps weiter hoch

bernd authored 17 years ago

183) 	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_svn\" value=\"svn\" ".(($vhost_type=='svn') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_svn\">&#160;Subversion-Server</label>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

184) 	</div>
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

185) <br />
bernd R.I.P. Shared-Drupal

bernd authored 15 years ago

186) <br />
187) <br />
bernd vhost-Modul kann jetzt SVN-...

bernd authored 17 years ago

188) </div>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

189) 
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

190) <h4 style=\"clear: right; margin-top: 3em;\">Allgemeine Optionen</h4>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

191) <div style=\"margin-left: 2em;\">
192)     <h5>SSL-Verschlüsselung</h5>
193)     <div style=\"margin-left: 2em;\">
194)     <select name=\"ssl\" id=\"ssl\">
bernd SSL auch über webinterface...

bernd authored 17 years ago

195)       <option value=\"none\" ".($vhost['ssl'] == NULL ? 'selected="selected"' : '')." >SSL optional anbieten</option>
196)       <option value=\"http\" ".($vhost['ssl'] == 'http' ? 'selected="selected"' : '')." >kein SSL</option>
197)       <option value=\"https\" ".($vhost['ssl'] == 'https' ? 'selected="selected"' : '')." >nur SSL</option>
198)       <option value=\"forward\" ".($vhost['ssl'] == 'forward' ? 'selected="selected"' : '')." >Immer auf SSL umleiten</option>
199)     </select>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

200)     </div>
201)     <h5>Logfiles <span class=\"warning\">*</span></h5>
202)     <div style=\"margin-left: 2em;\">
203)       <select name=\"logtype\" id=\"logtype\">
204)         <option value=\"none\" ".($vhost['logtype'] == NULL ? 'selected="selected"' : '')." >keine Logfiles</option>
205)         <option value=\"anonymous\" ".($vhost['logtype'] == 'anonymous' ? 'selected="selected"' : '')." >anonymisiert</option>
206)         <option value=\"default\" ".($vhost['logtype'] == 'default' ? 'selected="selected"' : '')." >vollständige Logfile</option>
207)       </select><br />
bernd Webalizer/Statistik-Funktio...

bernd authored 14 years ago

208)       <input type=\"checkbox\" id=\"errorlog\" name=\"errorlog\" value=\"1\" ".($vhost['errorlog'] == 1 ? ' checked="checked" ' : '')." />&#160;<label for=\"errorlog\">Fehlerprotokoll (error_log) einschalten</label><br />
209)       <input type=\"checkbox\" id=\"stats\" name=\"stats\" value=\"1\" ".($vhost['stats'] != NULL ? ' checked="checked" ' : '')." />&#160;<label for=\"stats\">Statistiken/Auswertungen erzeugen</label>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

210)     </div>
bernd Webalizer/Statistik-Funktio...

bernd authored 14 years ago

211)     <p>Logfiles werden unter <b>/var/log/apache2/".$_SESSION['userinfo']['username']."</b> abgelegt.</p>
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

212) </div>
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

213)     ";
bernd neues VHosts-Modul (unbenut...

bernd authored 17 years ago

214) 
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

215) $ipaddrs = user_ipaddrs();
216) $certs = user_certs();
bernd SuExec-Useraccount einstellbar

bernd authored 14 years ago

217) $available_users = available_suexec_users();
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

218) 
bernd IPv6

bernd authored 14 years ago

219) $form .= "
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

220) <h4 style=\"margin-top: 3em;\">Erweiterte Optionen</h4>
221) <div style=\"margin-left: 2em;\">
222) ";
223)   if (count($certs))
224)   {
225)     $certselect = array(0 => 'kein Zertifikat / System-Standard benutzen');
226)     foreach ($certs as $c)
227)     {
228)       $certselect[$c['id']] = $c['subject'];
229)     }
230)     $form .= "
231)       <h5>verwendetes SSL-Zertifikat</h5>
232)       <div style=\"margin-left: 2em;\">
233)       ".html_select('cert', $certselect, $vhost['certid'])."
234)       </div>";
235)   }
bernd IP-Adressen aktivieren

bernd authored 15 years ago

236)   if (count($ipaddrs))
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

237)   {
238)     $ipselect = array(0 => 'System-Standard');
239)     foreach ($ipaddrs AS $i)
240)     {
241)       $ipselect[$i] = $i;
242)     }
243)     $form .= "
244)       <h5>IP-Adresse</h5>
245)       <div style=\"margin-left: 2em;\">
bernd IP-Adressen aktivieren

bernd authored 15 years ago

246)       ".html_select('ipv4', $ipselect, $vhost['ipv4'])."
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

247)       </div>";
bernd IP-Adressen aktivieren

bernd authored 15 years ago

248)   } 
bernd SuExec-Useraccount einstellbar

bernd authored 14 years ago

249)   if (count($available_users))
250)   {
251)     $userselect = array(0 => 'Eigener Benutzeraccount');
252)     foreach ($available_users AS $u)
253)     {
254)       $userselect[$u['uid']] = $u['username'];
255)     }
256)     $form .= "
257)       <h5>SuExec-Benutzeraccount</h5>
258)       <div style=\"margin-left: 2em;\">
259)       ".html_select('suexec_user', $userselect, $vhost['suexec_user'])."
260)       </div>";
261)   }
bernd IPv6

bernd authored 14 years ago

262) $checked = ($vhost['autoipv6'] == 1) ? ' checked="checked"' : '';
263) $form .= '<h5>IPv6</h5>
264) <div style="margin-left: 2em;">
bernd IPv6-WikiSeite verlinkt

bernd authored 14 years ago

265) <input type="checkbox" name="ipv6" id="ipv6" value="yes" '.$checked.'/>&#160;<label for="ipv6">Auch über IPv6 erreichbar machen</label> (<strong>Achtung:</strong> Bitte beachten Sie die <a href="http://wiki.schokokeks.org/IPv6">Hinweise zu IPv6 im Wiki</a>.)
bernd IPv6

bernd authored 14 years ago

266) </div>';
267) 
268) $form .= "</div>";
269) 
bernd Neue Zertifikatsverwaltung

bernd authored 15 years ago

270) 
271) 
272) 
bernd VHosts-Modul mit neuem Layo...

bernd authored 17 years ago

273) $form .= '
bernd eliminate .php extensions f...

bernd authored 16 years ago

274)   <p><input type="submit" value="Speichern" />&#160;&#160;&#160;&#160;'.internal_link('vhosts', 'Abbrechen').'</p>
bernd mod_php deprecated, zwang z...

bernd authored 15 years ago

275)   <p class="warning"><span class="warning">*</span>Es ist im Moment fraglich, ob die Speicherung von Logfiles mit IP-Adressen auf Webservern
bernd warnung bzgl. logfiles eing...

bernd authored 17 years ago

276)   zulässig ist. Wir weisen alle Nutzer darauf hin, dass sie selbst dafür verantwortlich sind, bei geloggten Nutzerdaten die
277)   Seitenbesucher darauf hinzuweisen. Wir empfehlen, wenn möglich, Logfiles abzuschalten oder anonymes Logging einzusetzen.</p>
bernd VHosts können bearbeitet we...

bernd authored 17 years ago

278) ';
bernd eliminate .php extensions f...

bernd authored 16 years ago

279) output(html_form('vhosts_edit_vhost', 'save', 'action=edit&vhost='.$vhost['id'], $form));