14/01/2011, 04:07
|
| | | Fecha de Ingreso: abril-2006 Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años Puntos: 15 | |
Verificar todas las opciones y ejecutarlas a la vez Muy buenas :)
Tengo una duda que me anda carcomiendo por dentro jajaja.
El script que tengo está formado por varios if y lo que busco es que se compruebe todo y una vez hecha la comprobación y sea correcta ejecute lo que pido. Lo hago principalmente porque (es un script de crear usuario) al ejecutarse se tiene que editar un fichero e insertar una cadena de texto, luego se tiene que crear una carpeta en un directorio y luego se tiene que insertar el usuario creado en la BD por eso, si falla el último proceso, los otros 2 anteriores se habrán completado, y no interesa. Os dejo el código: Código PHP: <?php ## Comprueba si el directorio existe // Abreviatura de departamento a nombre completo $tabla = "pg_dpto"; $query_dpto = mysql_query("SELECT * FROM $tabla WHERE dpto_shortname = '$dptoForm' "); $query_dpto_print = mysql_fetch_assoc($query_dpto); $abrev_departamento = $query_dpto_print['dpto_folder_name']; # Imprime el nombre del dpto (la carpeta) donde se creará la carpeta del usuario $directorio = "/home/ftp/".$abrev_departamento."/".$user_ftp."/".$nick_connect; if(is_dir($directorio)){ echo "<div class='error-overview'>No se ha podido crear el usuario deseado ya que ya existe una carpeta con este nombre. Por favor intente utilizando otro nombre o cambiándolo de orden (apellido + nombre). <br><a href='javascript:history.back(1);'>Volver Atrás</a></div>"; }else{ ## Query para insertar a la BD los campos del usuario en cuestión $insertar_usuario = mysql_query("INSERT INTO pg_usser (usser_name, usser_email, usser_dpto, usser_ftp, usser_nick, usser_pass, usser_pass_encrypted, usser_group, usser_folder_name, usser_folder_size) VALUES ('$user_name', '$user_email', '$user_dpto', '$user_ftp', '$nameDpto', '$user_pass', '$user_pass_encrypted', '$user_group', '$nick_connect', '$user_size') ") or die (mysql_error()); ## Si se pueden insertar los usuarios en la BD... if($insertar_usuario){ ## Abreviaturas de los departamenos $tabla = "pg_dpto"; $query_dpto = mysql_query("SELECT * FROM $tabla WHERE dpto_shortname = '$dptoForm' "); $query_dpto_print = mysql_fetch_assoc($query_dpto); $abrev_departamento = $query_dpto_print['dpto_folder_name']; # Imprime el nombre del dpto (la carpeta) donde se creará la carpeta del usuario ## Comprobación si ftp.users se puede escribir $archivo = "ftp.users"; if(is_writable($archivo)){ ## Modifica el archivo añadiendo usuarios $contenido = $nameWithoutAccent.":\$1\$".$user_pass_encrypted.":104:65534::/home/ftp/".$abrev_departamento."/".$user_ftp."/".$nick_connect.":/bin/false \n"; ## Insercción del usuario, carpeta, en el archivo "$archivo" if($escribir_archivo = fopen($archivo, "a")){ if(fwrite($escribir_archivo, $contenido)){ ## Parámetros para pasar al archivo BASH - new_folder.sh $comprobacion = 1; $ruta = "/home/ftp/".$abrev_departamento."/".$user_ftp."/"; $nombre_carpeta = $nick_connect; ## Creación de la carpeta física según el nombre que se insertó if(system("sh new_folder.sh $nombre_carpeta $comprobacion $ruta")){ $ejecucion_correcta = "se ejecutó el .sh"; }else{ echo "<div class='error-overview'>El archivo <strong>sh</strong> no se pudo ejecutar, por lo que no se pudo crear la carpeta del usuario correspondiente. Por favor, contate con un administrador antes de seguir.</div>"; } }else{ echo "<div class='error-overview'>El archivo '$archivo' no se puede escribir. Por favor, contacte con un administrador.</div>"; } }else{ echo "<div class='error-overview'>El archivo '$archivo' no se puede abrir para su escritura. Contate con un administrador antes de seguir. </div>"; }// ** if($escribir_archivo = fopen($archivo, "a")) // Envío de Email al USUARIO !!! /* ***************** $name = $_REQUEST['us_name']; $de = "[email protected]"; $para = $user_email; $user_ftp = $nameDpto; $subject ="Datos de Acceso al FTP"; $user_ftp_pass = $_REQUEST['us_pass']; $dpt_query = mysql_query("SELECT dpto_name FROM pg_dpto WHERE dpto_shortname = '$user_dpto' ") or die (mysql_error()); $dpt_print = mysql_fetch_assoc($dpt_query); $departamento = $dpt_print['dpto_name']; $header = "From: " . $de . " \r\n"; $header .= "X-Mailer: PHP/" . phpversion() . " \r\n"; $header .= "Mime-Version: 1.0 \r\n"; $header .= "Content-Type: text/html; charset=utf-8"; $contenido = "<strong>Bauer - Datos de Acceso al FTP</strong>. <br><br>"; $contenido .= "Este email contiene los datos de acceso a su nueva cuenta ftp. <br> Por favor <strong>NO BORRE NI REENVIE</strong> este email, ya que es confidencial. <br> Los datos aquí expuestos solamente los tendrá que conocer usted. <br><br>"; $contenido .= "<strong>Datos de acceso al FTP</strong> <br><br>"; $contenido .= "<strong>Servidor:</strong> ftp://datain.bauer.es/ <br>"; $contenido .= "<strong>Departamento:</strong> ".$departamento."<br>"; $contenido .= "<strong>Nombre de la Carpeta:</strong> ".$nick_connect."<br><br>"; $contenido .= "<strong>Usuario:</strong> ".$user_ftp."<br>"; $contenido .= "<strong>Contraseña:</strong> ".$user_ftp_pass; if($name == "" || $de == "" || $subject == ""){ error("Ha habido un problema al enviar el email de confirmación. Por favor, inténtalo de nuevo."); }else{ // Mail al usuario $emailok = mail($para, $subject, utf8_decode($contenido), $header); // Selección email del admin $admin_query = mysql_query("SELECT admin_email FROM pg_admin WHERE admin_id = 1") or die (mysql_error()); $admin_print = mysql_fetch_assoc($admin_query); $admin_email = $admin_print['admin_email']; // Contenido para insertar en Nagios (solo lo ven admins) $contenido .= "<br><br> Recuerda insertar las siguientes líneas en el archivo de configuración de Nagios: <br>"; $contenido .=" Lineas de código AQUÍ"; $emailadmin = mail($admin_email, "Nuevo usuario FTP", utf8_decode($contenido), $header); echo "<div id='flash'> <div class='flash'> <div class='notice'>El usuario y la cuenta FTP se han creado correctamente. <br> Se ha enviado un email al usuario con los datos de acceso al FTP.</div> <div class='fourcorners'> <div class='corner-1'><img alt='' SRC='images/corner-grn-1.gif'/></div> <div class='corner-2'><img alt='' SRC='images/corner-grn-2.gif'/></div> <div class='corner-3'><img alt='' SRC='images/corner-grn-3.gif'/></div> <div class='corner-4'><img alt='' SRC='images/corner-grn-4.gif'/></div> </div> </div> </div>"; } ***************** */ // ** if($name == "" || $de == "" || $subject == ""){ } // ** if(is_writable($archivo)) }else{ echo "<div class='error-overview'>Ha habido un problema interno al crear la cuenta. Si el problema persiste contacte con el Departamento de Informática.</div>"; } // ** if($insertar_usuario) }// ** if(is_dir($nick_connect)) ?>
__________________ Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ? |