Ver Mensaje Individual
  #7 (permalink)  
Antiguo 12/07/2009, 02:41
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 12 años, 6 meses
Puntos: 188
De acuerdo Respuesta: Pequeño problema al guardar de formulario PHP y MySQL

Hola amigos mios tuve problemas con mi internet y me quede sin coneccion desde las 5Pm mas o menos, ahorita les respondo agradeciendoles enormemente su ayuda.

jeje hoy me encuentro tremendamente feliz porqu por fin logre terminar mi primer script en PHP usando MySQL despues de 1 semana de intentarlo y gracias a su ayuda.

A continuacion posteo el script, se que no es del todo experto pero bueno, es mi primer script en PHP y me ha costado mucho trabajo ya que hace 1 semana no sabía ni para que servia el dichosos "PHP" jaja....

Bueno hay lo tienen, NOTA: no he podido añadirle una funcion que valide los formularios de la forma "Si se preciona el boton enviar tratar de ejecutar las funciones para subir archivo al directorio y guardar ruta en DB siempre y cuando los campos de formulario no este basios"

Y por que quiero que se ejecute solo al presionar el boton? Por que cuando ingreso al archivo php desde mi navegador ya me estan saliendo los errores de que los campos estan basios, esto es ovio ya que apenas entre a la pagina.... jajaja

Bueno sabran a lo que me refiero... Podrian ayudarme diciendome como puedo poner una funcion para q ejecute las demas funciones cuando se presione el boton enviar... Gracias...


A continuacion el SCRIPT
Caracteristicas:

Crea directorios mediante formulario PHP.
Inserta el nombre de los directorios en una tabla de la DB.

Muestra los directorios en un select de formulario.
Sube archivos al directorio seleccionado.
Guarda la ruta del archivo y el nombre en una tabla de la DB.

index.php
Código PHP:
<?php
//Crear directorios usando PHP y FTP
   // $dir será el nombre del directorio y $_POST['album'] recogeremos el nombre
   // que indicamos en el formulario
   
$dir $_POST['album'];
   
// Conectamos con el servidor por FTP
   
$ftp_server='localhost'// direccion del servidor
   
$user="user"// nombre de usuario
   
$pass="pass"// password
   
$ftp_connect ftp_connect($ftp_server); 
   
$connect ftp_login($ftp_connect$user$pass); 

  
// Seleccionamos el directorio donde crearemos directorios si usamos "/" por default será en
  // el directorio raiz de nuestro sitio
  
ftp_chdir($ftp_connect,"/"); // Cualquier directrio que utilizes debe empezar con "/" y terminar con "/" ej: "/foro/photos/"

//Validamos formulario 1 FTP
if (isset($_POST[crear]) && $_POST[album] != "")
{
////////////////////////
if(@ftp_mkdir($ftp_connect,$_POST['album'])) 
{
  
$echo_do_album_dir_ftp "El directorio ha sido creado con exito";
  } else {
  
$error_do_album_dir_ftp "No se pudo crear el directorio";
  }
////////////////////////   
} else {
$error_album_name "Defina un nombre a su album";

ftp_close($ftp_connect); 
// Finaliza el PHP para crear drectorios usando PHP y FTP
//Ahora guardaremos el nombre de los directorios en la base de datos
    //Conectamos a la base de datos
     
$conexion mysql_connect("localhost","root","password");
    
// seleccionamos la tabla
     
mysql_select_db("imagesend"$conexion);
    
// Programamos variables
    
$album_name $_POST['album']; 
    
//Validamos formulario 1 MySQL
    
if (isset($_POST[crear]) && $_POST[album] != "")
    {
    
// Insertamos el nombre de los albums en la base de datos
   
$sql "INSERT INTO albums (album_name) VALUES ('$album_name')";
   
$result mysql_query($sql);
   
$echo_do_album_dir_mysql "El album se ha insertado en la base de datos";
   
///////////////////////////////
   
} else { $error_do_album_dir_mysql "No se ha insertado el album en la base de datos"; }
//Hasta aqui el codigo para insertar el nombre de los albums en la base de datos

########################################################

//Ahora  el codigo para subir las imagenes al servidor
      //Primero voy a conectarme al servidor por FTP
      
$ftp_user "user";
      
$ftp_pass "pass";
      
$ftp_connect ftp_connect('localhost');
      
$ftp_login ftp_login($ftp_connect"$ftp_user","$ftp_pass");
      
      
//Verifico si se ha conectado
      
if ( (!$ftp_connect) || (!$ftp_login) ) {
      
$error_seis "Fallo la coneccion con el servidor FTP";
      die;
      } else {
      
$error_siete "Conectado con el servidor FTP!";
      }
      
      
// Definir si usamos modo pasivo -- Sirve para indicar al servidor que suba los files solo cuando le indiquemos por medio de este formulario
      
ftp_pasv ($ftp_connecttrue);
      
$error_ocho "Modo pasivo activado";
      
      
// Subimos el archivo
      
$local $_FILES['archivo']['name'];
      
$temp $_FILES['archivo']['tmp_name'];
      
      
// Juntamos la ruta del servidor con el nombre real del archivo importante
         //seleccionar la ruta correcta de nuestro directorio en el server
      
$ruta "D:/_root/AppServ/www/scripts/phpalbum/photos/".$_POST['select_album']."/" $local;
      
      
//Verificamos formulario 2 FTP
      
if (isset($_POST[enviar]) && $_POST['archivo'] != "")
      {
      
// Verificamos si el archivo se ha subido con exito
      // Verificamos si ya se subio el archivo temporal
      
if (is_uploaded_file($temp)){
            
copy($temp$ruta);    
            
$echo_upload_file_ftp "Se ha subido con exito, <br> Ruta: <a href='http://localhost/scripts/phpalbum/photos/".$_POST['select_album']."/".$local."'>click aqui para ver</a>";    
        }
        else {
            
$error_upload_file_ftp "no se pudo subir el archivo " $local;
        } 
    } else { 
$error_form2_empty_ftp "EL formulario 2 tiene campos vacios"; }    
      
      
//cerramos la conexión FTP
      
ftp_close($ftp_connect);
      
//Hasta aqui termina el codigo para subir los files a un directorio especifico
      
      // Ahora ingresemos el nombre, ruta y directorio al que pertenece nuestro archivo en la base de datos
      //conectar a la base de datos
      
$conexion mysql_connect("localhost""root""password");
      
mysql_select_db("imagesend"$conexion);
   
      
//definimos variables
      
$img_name $_POST['nombreimg'];
      
$img_url "http://localhost/scripts/phpalbum/photos/".$_POST["select_album"]."/".$local;
      
$album_name $_POST['select_album'];
         
         
         
//validamos formulario 2
         
if (empty($_POST[enviar]) && $_POST['archivo'] != "")
      {
      
//Insertamos los datos del archivo (nombre, ruta y directorio) en la base de datos
      
$sqlfile "INSERT INTO images (name,album,url) VALUES ('$img_name','$album_name','$img_url')";
      
$result mysql_query($sqlfile);
      
$echo_upload_file_mysql "Se han añadido los datos en la DB";
      } else { 
$error_form2_empty_mysql "No se ha añadio nada del formulario 2 a la base de datos"; }
      
// Hasta aqui termina el codigo para ingresar los datos del file en la base de datos
########################################################


// Ahora consultaremos los directorios que tenemos en la base de datos y los colocaremos en un select de forumulario para idicar
// el destino al que queremos mandar cada archivo
        //Conectamos a base de datos
        
mysql_connect("localhost","root","password");
        
// seleccionamos tabla
        
$sql="SELECT * FROM imagesend.albums ORDER BY id";
        
$res=mysql_query($sql);
        
// Hasta aqui el codigo para consultar los directorios de la base de datos

##########################################################

?>
<b>Seccion de avisos</b>
<?php echo "$echo_do_album_dir_ftp"; echo "$error_do_album_dir_ftp -"; echo "- $error_album_name"?><br />
<?php echo "$echo_do_album_dir_mysql"; echo "$error_do_album_dir_mysql";?><br />
<?php echo "$echo_upload_file_ftp"; echo "$error_upload_file_ftp"; echo "$error_form2_empty_ftp";?><br />
<?php echo "$echo_upload_file_mysql"; echo "$error_form2_empty_mysql";?><br />

<hr>
<b>Formulario para crear directorios:</b><br /><br />
<form method="post">
Nombre del directorio:  <input type="text" name="album" />
  <input type="submit" name="crear" value="Crear" />
</form>
<br />
<hr />
<br />
<b>Formulario para subir archivos a los directorios</b>
<br />
<form method="post" enctype="multipart/form-data">
  <input type="file" name="archivo" /><br />
  <input type="text" name="nombreimg" /><br />
  <select name="select_album">
<!-- Con el siguiente codigo PHP mostramos los albums que hay en la base de datos -->
  <?php while($registro=mysql_fetch_array($res)) { echo "<option value='".$registro['album_name']."'>".$registro['album_name']."</option>"; } ?>
  </select><br />
  <input type="submit" name="enviar" value="enviar">
</form>

Base de datos "imagesend"
tabla 1
Código PHP:
CREATE TABLE `albums` (
  `
idint(11NOT NULL auto_increment,
  `
album_namemediumtext NOT NULL,
  
UNIQUE KEY `id` (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=

tabla 2
Código PHP:
CREATE TABLE `images` (
  `
idint(11NOT NULL auto_increment,
  `
namemediumtext NOT NULL,
  `
albummediumtext NOT NULL,
  `
urlmediumtext NOT NULL,
  
UNIQUE KEY `id` (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=

Hay lo tienen amigos.

P.D: Por ahi en el codigo hay variables que dicen $error_doce y parecidas, son parte de uno de mis intentos para validar los formularios pero se me paso borrarlos y me acabo de dar cuenta....

Para los noobs : No es necesario borrarlos pero si sabes como eliminarlos sin echar a perder el codigo hazlo!.

Jajaja estoy feliz ... mi primer script ... jeje
Saludos!
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.