diff --git a/new_service_webdns.php b/new_service_webdns.php index bf9b827..20bc3f8 100755 --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -193,6 +193,7 @@ class page_action extends tform_actions { public $subdominio; public $es_subdominio = false; public $subdom_error = false; + public $dominio_error = false; public $no_ip = false; //Campos para PDF @@ -553,25 +554,30 @@ class page_action extends tform_actions { $patronP2 = '/(\.$)/'; $patronP3 = '/(\.\.+)/'; $patronP4 = '/(\.[[:alpha:]]*)$/';*/ - + //Se comprueba que no tenga 3 w "www" al principio del nombre del dominio o subdomino $encontradoWWW = preg_match($patronWWW, $subdom, $coincidencias); if($encontradoWWW){ $app->tform->errorMessage = $app->tform->wordbook['error_dominio_www']; return; } + //print "
"; print_r($subdom); print "\n"; + //print "
"; print(substr_count($subdom,".")); print "\n"; //Si el dominio tiene mas de dos puntos, es incorrecto - if (substr_count($subdom,".") > 2) { - + if(substr_count($subdom,".") > 2) { + //$app->tform->errorMessage = $app->tform->wordbook['error_dominio_mas_puntos']; + $this->es_subdominio = false; + $this->dominio_error = true; + //print "
"; print_r($subdom . " hola " .$this->es_subdominio ); print "\n"; $app->tform->errorMessage = $app->tform->wordbook['error_dominio_mas_puntos']; - return; + //return; - } else if(substr_count($subdom,".") == 2){ + }else if(substr_count($subdom,".") == 2){ $this->encontrado = preg_match($patronSubDominos, $subdom, $coincidencias); //print "
"; print_r($coincidencias); print "\n"; - $this->subdominio = $coincidencias[1]; + $this->subdominio = $coincidencias[0]; $this->dominio = $coincidencias[2]; //print "Subdomino: " . $this->subdomino . "\n Dominio: " . $this->domino; @@ -591,6 +597,12 @@ class page_action extends tform_actions { global $app, $conf; $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); + + //IMPORTANTE. CON ESTA LLAMADA REALIZO LOS PASOS SIGUIENTES A ELLA. COMPROBAR. NO VA. + /*$capturaGroupClientVista = $app->db->queryOneRecord( + "SELECT groupid, client_id FROM sys_group + WHERE client_id = ".$app->functions->intval($fields['client_group_id']));*/ + //IMPORTANTE. //Con la selección del cliente o admin en la vista. //Tomamos el grupo del cliente o admin, se toma este valor y se captura el client_id y groupid de la tabla @@ -628,29 +640,66 @@ class page_action extends tform_actions { global $app, $conf; $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); - - //print "
"; print_r($campoSubDominio); print "\n"; + //COMO LE PASO EL DOMINIO CORRECTO NO ES NECESARIO PONER EL % EN LA SQL AÑADO EL PUNTO. + //EL PROBLEMA ES QUE CON UN DOMINIO .COM TOMA POR VALIDO UN .CO POR EL % + //NO --> ('SELECT server_id, name FROM dns_rr WHERE name LIKE "'.$this->dominio.'%"'); + $existeDominioParaSubDominio = $app->db->queryOneRecord( + 'SELECT server_id, name FROM dns_rr WHERE name LIKE "'.$this->dominio.'."'); + /*'SELECT domain_id, domain FROM web_domain + WHERE domain = "'.$campoSubDominio.'"');*/ + +// print "
En crearSubDominio campo que se le pasa subdominio es: "; print_r($campoSubDominio); print "\n"; //Compruebo que el subdominio no existe consultando la tabla web_domain. - $existeSubDominio = $app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$campoSubDominio.'"'); + $existeSubDominioWeb = $app->db->queryOneRecord( + 'SELECT domain_id, domain FROM web_domain + WHERE domain = "'.$campoSubDominio.'"'); + + //Compruebo que el subdominio no existe consultando la tabla dns_rr + $existeSubDominioTipoA = $app->db->queryOneRecord( + 'SELECT name, type FROM dns_rr + WHERE name = "'.$campoSubDominio.'" AND type = "A"'); + + if(!$existeDominioParaSubDominio['name']){ + $this->subdom_error = true; + $app->tform->errorMessage = $app->tform->wordbook['error_no_existe_dominio_padre']; +// print "
Error En crearSubDominio campo comprobacion dns_rr es: "; print_r($existeDominioParaSubDominio); print "\n"; + $this->onError(); + return; + } +// print "
En crearSubDominio campo comprobacion dns_rr es: "; print_r($existeDominioParaSubDominio); print "\n"; //print '
El Sub existe '. $existeSubDominio['domain'];
- if($existeSubDominio){
- $this->subdom_error = true;
- $app->tform->errorMessage = $app->tform->wordbook['error_subdominio_existe'];
- $this->onError();
- return;
+ if($existeSubDominioWeb['domain']){
+ $this->subdom_error = true;
+ $app->tform->errorMessage = $app->tform->wordbook['error_no_existe_dominio_padre'];
+ $this->onError();
+ return $this->subdom_error;
}
- //$this->controlUserGrupoId();
- $servidores = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver, web_servers FROM client WHERE client_id = ". $this->cli_id);
- $dns_servidor = $servidores['default_dnsserver'];
- $web_servidor = $servidores['web_servers'];
- print "Servidores: ". $web_servidor . " DNS " . $dns_servidor . " Cliente " . $this->cli_id;
- //print "El dominio es: " . $this->dominio;
+
+ if($existeSubDominioTipoA['name']){
+ $this->subdom_error = true;
+ $app->tform->errorMessage = $app->tform->wordbook['error_no_existe_dominio_padre'];
+ $this->onError();
+ return $this->subdom_error;
+ }
+
+ $this->controlUserGrupoId();
+ /*$servidores = $app->db->queryOneRecord(
+ "SELECT client_id, default_dnsserver, default_webserver, web_servers
+ FROM client WHERE client_id = ". $this->cli_id);*/
+
+ //$dns_servidor = $servidores['default_dnsserver'];
+ //$web_servidor = $servidores['web_servers'];
+ //print "Servidores: ". $web_servidor . " DNS " . $dns_servidor . " Cliente " . $this->cli_id;
+// print "El dominio es: " . $this->dominio;
//$camDominio = $app->db->queryOneRecord('SELECT domain_id, domain FROM domain WHERE domain = "'.$this->dominio.'"');
$camDominio = $app->db->queryOneRecord('SELECT origin FROM dns_soa WHERE origin LIKE "'.$this->dominio.'%"');
+ //$camDominio = $app->db->queryOneRecord('SELECT origin FROM dns_soa WHERE origin LIKE "'.$campoSubDominio.'%"');
$camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'%"');
//Para los registros tipo A la ip tiene que ser tipo IPv4
- $camServIP = $app->db->queryOneRecord("SELECT ip_address FROM server_ip WHERE server_id = ".$camDnsRR['server_id']." AND ip_type='IPv4'");
+ $camServIP = $app->db->queryOneRecord(
+ "SELECT ip_address FROM server_ip
+ WHERE server_id = ".$camDnsRR['server_id']." AND ip_type='IPv4'");
//print_r($camDominio);
//print_r($camDnsRR);
@@ -680,17 +729,16 @@ class page_action extends tform_actions {
'serial' => '1',
);
- $this->controlUserGrupoId();
- echo ('El client_id GLOBAL ' . $this->cli_id . "
");
+ //echo ('
El client_id GLOBAL ' . $this->cli_id . "
");
// client group id
/*$res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
$client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);//$res['groupid'];
echo ('El client group id seleccion ' . $client_group_id . "
");
echo ('El groupid de la tabla sys_group ' . $res['groupid'] . " ");*/
- print ""; print_r($paramSubDominios); print "
\n";
+ //print ""; print_r($paramSubDominios); print "
\n";
//Inserto en bbdd usando la clase remoto que se la he pasado en parámetros de la función
//$resultado = $remoto->insert_query('../dns/form/dns_a.tform.php', $fields['client_id'], $paramSubDominios);
- //$resultado = $remoto->insert_query('form/dns_a_webdns.tform.php', $this->cli_id, /*$fields['client_group_id'],*/ $paramSubDominios);
+ $resultado = $remoto->insert_query('form/dns_a_webdns.tform.php', $this->cli_id, /*$fields['client_group_id'],*/ $paramSubDominios);
echo '
Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente!
';
@@ -705,7 +753,7 @@ class page_action extends tform_actions {
$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
//Captura del servidor id
- if($this->id > 0) {
+/* if($this->id > 0) {
$server_id = $this->dataRecord["server_id"];
} else {
// Get the first server ID
@@ -713,7 +761,7 @@ class page_action extends tform_actions {
$server_id = $tmp['server_id'];
//$this->elServidor = $server_id;
}
-
+*/
/*echo ('Lo seleccionado ' . $fields['client_group_id'] . "
");
echo ('Tabla sys_group --> client id ' . $this->cli_id . "
");
echo ('Tabla sys_group --> groupid ' . $this->cli_grupo_id . "
");
@@ -726,29 +774,43 @@ class page_action extends tform_actions {
//Comprobamos que el resultado para el cliente seleccionado no esta vacío,
//si lo esta tomamos los datos del cliente id 0
//if(!$dns_ip_servidor_ipv6){
- $dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv4'");
- $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv6'");
+// $dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv4'");
+// $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 1 AND ip_type='IPv6'");
/*echo '
Valor de la consulta '.$dns_ip_servidor_ipv6[ip_address].' ';
echo '
Valor de la consulta '.$dns_ip_servidor[ip_address].' ';*/
//}
- $dns_servidor = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver FROM client WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
+/* $dns_servidor = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver FROM client WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
$clienteID = $dns_servidor['client_id'];
-
- $res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
- $client_group_id = $res['groupid'];
+*/
+// $res = $app->db->queryOneRecord("SELECT groupid, client_id FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_group_id']));
+// $client_group_id = $res['groupid'];
+ //$client_id = $res['client_id'];
+ //echo('Seleccion es '.$app->functions->intval($fields['client_group_id']) . ' campos groupid ' . $client_group_id. ' campos client_id ' .$client_id);
//echo ('El server es: ' . $dns_servidor['default_webserver']);
+ $this->tieneServidorIPs();
+ $this->controlUserGrupoId();
+
+ /* print "DNS SERVER ";print_r($this->dns_serv);print "
\n";
+ print "WEB SERVER ";print_r($this->web_serv);print "
\n";
+ print "IP4 DNS ";print_r($this->ip4_servidor_dns);print "
\n";
+ print "IP6 DNS ";print_r($this->ip6_servidor_dns);print "
\n";
+ print "IP4 WEB ";print_r($this->ip4_servidor_web);print "
\n";
+ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";
+ print "IP6 WEB LA OTRA ";print_r($this->ip6_ultima['ip_address']);print "
\n";
+
+*/
// add site
$paramsite = array(
-// "sys_userid" => $this->sys_usuario_id,
-// "sys_groupid" => $this->cli_grupo_id,
+ //"sys_userid" => $this->sys_usuario_id,
+ //"sys_groupid" => $this->cli_grupo_id,
'type' => 'vhost',
'domain' => $fields['domain'], //$this->subdominio,
- 'server_id' => $server_id,//$dns_servidor['default_webserver'],
+ 'server_id' => $this->web_serv, //$server_id,//$dns_servidor['default_webserver'],
'ip_address' => '*', //$dns_ip_servidor['ip_address'],
- 'ipv6_address' => $dns_ip_servidor_ipv6['ip_address'],
+ 'ipv6_address' =>$this->ip6_servidor_web['ip_address'], //$dns_ip_servidor_ipv6['ip_address'],
'traffic_quota' => '-1',
'hd_quota' => '0',
'cgi' => 'y',
@@ -782,7 +844,7 @@ class page_action extends tform_actions {
'system_user' => '-',
'system_group' => '-',
'log_retention' => 30,
- 'client_group_id' => $client_group_id,
+ 'client_group_id' => $this->cli_grupo_id, //$client_group_id,
);
//$app->uses('remoting_lib');
@@ -802,16 +864,15 @@ class page_action extends tform_actions {
//$app->tform->loadFormDef($tform_def_file2);
//El último parámetro es para lanzar un evento que llama a la función on_after_insert que prepara
//los campos document_root, system_user y system_group
- $site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_group_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');
-
- //$site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $this->sys_usuario_id, $paramsite, 'sites:web_vhost_domain:on_after_insert');
+ //$site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_group_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');
+ $site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $this->sys_usuario_id, $paramsite, 'sites:web_vhost_domain:on_after_insert');
//print 'ID sitio web del subdominio --> ' . $site_id;
}
public $ip4_servidor_dns;
public $ip6_servidor_dns;
- public $ip4_servidor;
- public $ip6_servidor;
+ public $ip4_servidor_web;
+ public $ip6_servidor_web;
public $dns_serv;
public $web_serv;
@@ -1114,12 +1175,12 @@ class page_action extends tform_actions {
echo '
Valor de la consulta '.$dns_ip_servidor[ip_address].' ';*/
// }
-print "DNS SERVER ";print_r($this->dns_serv);print "
\n";
+/*print "DNS SERVER ";print_r($this->dns_serv);print "
\n";
print "WEB SERVER ";print_r($this->web_serv);print "
\n";
print "IP4 DNS ";print_r($this->ip4_servidor_dns);print "
\n";
print "IP6 DNS ";print_r($this->ip6_servidor_dns);print "
\n";
print "IP4 WEB ";print_r($this->ip4_servidor_web);print "
\n";
-print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";
+print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";*/
//Si el servidor es el que tiene asignado el cliente o el de admin por defecto, le damos esta ip4
if($this->dns_serv && $this->ip4_servidor_dns){
@@ -1318,7 +1379,7 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";
);
//print 'Valores: ' . $dns_ip_servidor_ipv6 . " " . $formulario . " Parametros: " ;
- print ""; print_r($paramsite); print "
\n";
+ //print ""; print_r($paramsite); print "
\n";
/*print ' cliente id ' . $fields['client_id'];
print "";print_r($fields);print "
\n";*/
@@ -1364,7 +1425,7 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";
echo ('Tabla sys_user --> userid ' . $this->sys_usuario_id . "
");
echo ('Tabla sys_user --> sys_groupid ' . $this->sys_grupo_id . "
");*/
-
+ //print "Subdomino: " . $this->subdomino . "\n Dominio: " . $this->domino;
if($this->comprobarSubDominios($fields['domain'])){
$this->crearSubDominio($remote, $fields['domain']);
@@ -1374,18 +1435,23 @@ print "IP6 WEB ";print_r($this->ip6_servidor_web);print "
\n";
}
} else {
-
- $this->crearDnsSitioWeb($remote);
- //$variablePHP = "";
- //Si todo va bien, el resultado de la web y dns
- echo '
- Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!
+ if(!$this->dominio_error){
+ $this->crearDnsSitioWeb($remote);
+ //$variablePHP = "";
+ //Si todo va bien, el resultado de la web y dns
+ echo '
+ Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!
';
//IMPORTANTE, es necesario cargar nuestro formulario para poder ejecutar la función que crea
//la base de datos y el ftp ya que hay datos que tomamos de él antes de ejecutarla.
$app->tform->loadFormDef('form/new_service_webdns.tform.php');
//$this->crearBaseDatosFtp($remote);
+ }else{
+ $this->onError();
+ return;
+ }
+
}
}
}