Foros del Web » Programando para Internet » PHP »

Pequeño proyecto (Blog)

Estas en el tema de Pequeño proyecto (Blog) en el foro de PHP en Foros del Web. Hola! gracias por leer este mensaje y más para el que pueda contestar. Debo hacer un pequeño proyecto web para clase y habia pensado en ...
  #1 (permalink)  
Antiguo 18/02/2010, 13:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Pequeño proyecto (Blog)

Hola! gracias por leer este mensaje y más para el que pueda contestar.

Debo hacer un pequeño proyecto web para clase y habia pensado en hacer un pequeño blog personal, en el que yo, como administrador tendré acceso a unos privilegios especiales como : CREAR ENTRADA y MODIFICAR ENTRADA.

El problema se me plantea en el siguiente caso:

En la sección CREAR ENTRADA que corresponde exactamente a esta foto :

http://img97.imageshack.us/i/capturay.png/

las opciones de TITULO ENTRADA, SUBIR FOTO y CONTENIDO serán campos que quiero guardar en una tabla llamada ENTRADAS de una base de datos llamada BLOG,sé como hacer el INSERT INTO de TITULO ENTRADA y DE CONTENIDO, pero el de SUBIR FOTO ¡no!,es decir, cuando pulso en REGISTRAR ENTRADA, se inserten los 3 campos.

Alguien me puede guiar para subir la foto a la Base de datos al mismo tiempo que subo los demas campos?

MIL GRACIAS... siento si me he expresado mal...

GRACIAS!
  #2 (permalink)  
Antiguo 18/02/2010, 13:14
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Pequeño proyecto (Blog)

el form necesita tener: enctype="multipart/form-data", pero es recomendable que la imagen no la almacenes en la base, solo su path relativo al directorio donde las muevas
  #3 (permalink)  
Antiguo 18/02/2010, 13:35
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

Efectivamente, eso había leído, que es mejor guardar en la bd la ruta de la imagen y las imagenes en una carpeta, pero sinceramente no se comp hacer el upload de la imagen al mismo tiempo que se hace la inserción de los demás datos
  #4 (permalink)  
Antiguo 18/02/2010, 13:38
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

Código PHP:
Ver original
  1. <body>
  2.         <div id="header">
  3.             <div>
  4.                 <h1>Blog IAIG , noticias diarias!</h1>
  5.             </div>
  6.         </div>
  7.         <div id="contenedorCrearNoticia">
  8.                 <div id="menu">
  9.                     <div id="headerContenedorMenu">
  10.                         <h1 class="h1ContenedorMenu">Menú Blog</h1>
  11.                        
  12.                     </div>
  13.                 </div>
  14.                 <div id="contenedorNoticia">
  15.                     <div id="headerContenedorNoticia">
  16.                         <h1 class="h1ContenedorNoticia">Crear nueva entrada </h1>
  17.                     </div>
  18.                     <div id="contenidoNoticia">
  19.                         <form name="entradaBlog" action="registarEntrada.php" method="post"  enctype="multipart/form-data">
  20.                                 <table class="tablaCrearNoticia"  border="0">
  21.                                     <tr>
  22.                                         <td valign="middle" >
  23.                                             <p>Título Entrada</p>
  24.                                         </td>
  25.                                         <td> <input type="text" name="tituloEntrada" class="inputText"> </td>
  26.                                         <td>
  27.                                             <p class="notaP">Escribe el título que llevará el articulo.</p>
  28.                                         </td>
  29.                                     </tr>
  30.                                     <tr>
  31.                                         <td valign="middle">
  32.                                             <p>Subir foto</p>
  33.                                         </td>
  34.                                         <td>
  35.                                             <input type="file" class="inputText" name="archivo" value="Subir foto"
  36.                                             class="botonGuardarEntrada" />
  37.                                        
  38.                                         </td>
  39.                                          <td>
  40.                                             <p class="notaPTamaño">El tamaño de la foto deberá ser 307x202.</p>
  41.                                         </td>
  42.                                     </tr>
  43.                                     <tr>
  44.                                         <td valign="top">
  45.                                             <p>Contenido</p>
  46.                                         </td>
  47.                                         <td>
  48.                                             <textarea cols="48" rows="15" class="textareaText" name="comentario"></textarea>
  49.                                         </td>
  50.                                          <td>
  51.                                             <p class="notaP">Escribe el comentario del articulo.</p>
  52.                                         </td>
  53.                                     </tr>
  54.                                     <tr></tr>
  55.                                     <tr></tr>
  56.                                     <tr></tr>
  57.                                     <tr>
  58.                                         <td>
  59.                                         </td>
  60.                                         <td>
  61.                                             <input type="submit" value="Registar Entrada" class="botonGuardarEntrada"/>
  62.                                              <input type="reset" value="Borrar Entrada" class="botonGuardarEntrada"/>
  63.                                         </td>
  64.                              
  65.                                     </tr>
  66.                                 </table>
  67.                            </form>
  68.                     </div>
  69.               </div>
  70.         </div>
  71.         <div id="pieCrearNoticia">
  72.         </div>
  73. </body>



y este el archivo php que registra los datos en la bd


Código PHP:
Ver original
  1. <html>
  2. <meta http-equiv="refresh" content="3;URL=index.html" />
  3. </html>
  4.  
  5. <?php
  6.  
  7.  
  8.  
  9. $tituloEntrada = $_POST['tituloEntrada'];
  10. $comentarioEntrada  = $_POST['comentario'];
  11.  
  12.  
  13. $conexion=mysql_connect("localhost","root","pedrosa") or die ("Error al conectar con la BD");
  14. $db=mysql_select_db("blog",$conexion) or die ("Error al conectar con tu Base de datos");
  15. $instruccion=mysql_query("insert into entrada(titulo,comentario) values ('$tituloEntrada', '$comentarioEntrada')")or die ("La consulta no se ha realizado");
  16.  
  17. echo "Inserción Correcta";
  18.  
  19.  
  20. mysql_close($conexion);
  21.  
  22.    
  23.  
  24.  
  25. ?>

¿Alguién me guia?
  #5 (permalink)  
Antiguo 18/02/2010, 13:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Pequeño proyecto (Blog)

no tengo mucho tiempo para ayudarte ahora, pero simplemente debes agregar al código anterior lo correspondiente al upload del archivo, busca en el foro o en google "upload php" y encontrarás bastante
  #6 (permalink)  
Antiguo 18/02/2010, 13:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

voy a ver...
  #7 (permalink)  
Antiguo 18/02/2010, 16:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

He conseguido que acepte el archivo y lo guarde, pero... ¿Cómo le puedo decir que lo guarde en una carpeta que tengo en el directorio llamada files?Ahora la guara en la raiz de la carpeta proyecto, es decir, donde está todo... los .html, .css etc.. entendeis no?
Código PHP:
Ver original
  1. $nombre_archivo = $_FILES['archivo']['name'];
  2.     $tipo_archivo = $_FILES['archivo']['type'];
  3.     $tamano_archivo = $_FILES['archivo']['size'];
  4.     //compruebo si las características del archivo son las que deseo
  5.     if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
  6.         echo "La extensión o el tamaño de los archivos no es correcta.
  7.         <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se   permiten archivos de 100 Kb máximo.</td></tr></table>";
  8.     }else{
  9.         if (move_uploaded_file($_FILES['archivo']['tmp_name'], $nombre_archivo)){
  10.            echo "El archivo ha sido cargado correctamente.";
  11.         }else{
  12.            echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
  13.         }
  14.     }
  #8 (permalink)  
Antiguo 18/02/2010, 17:03
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Pequeño proyecto (Blog)

Esta línea :

Código PHP:
Ver original
  1. if (move_uploaded_file($_FILES['archivo']['tmp_name'], $nombre_archivo)){

Cámbiala por esta, donde especificas la ruta del directorio que contendrá las imágenes

Código PHP:
Ver original
  1. if (move_uploaded_file($_FILES['archivo']['tmp_name'], "ruta_al_directorio/".$nombre_archivo)){

Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #9 (permalink)  
Antiguo 18/02/2010, 17:15
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

Estupendo! funcionó!, poco a poco...
Ahora, mi intención es guardar las imagenes en una tabla de una base de datos...
  #10 (permalink)  
Antiguo 18/02/2010, 17:43
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

Este el código resultante, ahora el problema está en guardar la ruta en la BD.... es correcta la sentencia INSERT INTO?



Código PHP:
Ver original
  1. <?php
  2.  
  3. /*?>CÓDIGO PARA SUBIR LAS IMÁGENES<?php */
  4.  
  5.  
  6.  
  7.     //datos del arhivo
  8.     $nombre_archivo = $_FILES['archivo']['name'];
  9.     $tipo_archivo = $_FILES['archivo']['type'];
  10.     $tamano_archivo = $_FILES['archivo']['size'];
  11.     //compruebo si las características del archivo son las que deseo
  12.     if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
  13.         echo "La extensión o el tamaño de los archivos no es correcta.
  14.         <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se   permiten archivos de 100 Kb máximo.</td></tr></table>";
  15.     }else{
  16.         if (move_uploaded_file($_FILES['archivo']['tmp_name'], "files/".$nombre_archivo)){
  17.             $nuevoNombre = time().".jpg";
  18.            echo "El archivo ha sido cargado correctamente.";
  19.         }else{
  20.            echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
  21.         }
  22.     }
  23.  
  24.  
  25.  
  26. $tituloEntrada = $_POST['tituloEntrada'];
  27. $comentarioEntrada  = $_POST['comentario'];
  28.  
  29.  
  30. $conexion=mysql_connect("localhost","root","pedrosa") or die ("Error al conectar con la BD");
  31. $db=mysql_select_db("blog",$conexion) or die ("Error al conectar con tu Base de datos");
  32. $instruccion=mysql_query("insert into entrada(titulo,foto,comentario)
  33.                                                 values
  34.                         ('$tituloEntrada','$nuevoNombre','$comentarioEntrada')")or die ("La consulta no se ha realizado");
  35.  
  36. echo "Inserción Correcta";
  37.  
  38.  
  39. mysql_close($conexion);
  #11 (permalink)  
Antiguo 18/02/2010, 17:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

Este es código que llevo por ahora. En principio, la consulta se realiza bien, pero cuando voy al phpmyadmin, en el campo foto de la tabla pone [BLOB - 14 byes] en vez de poner la ruta, que es lo que se pretende.
Algún fallo a la vista?



Código PHP:
Ver original
  1. <?php
  2.  
  3. /*?>CÓDIGO PARA SUBIR LAS IMÁGENES<?php */
  4.  
  5.  
  6.  
  7.     //datos del arhivo
  8.     $nombre_archivo = $_FILES['archivo']['name'];
  9.     $tipo_archivo = $_FILES['archivo']['type'];
  10.     $tamano_archivo = $_FILES['archivo']['size'];
  11.     //compruebo si las características del archivo son las que deseo
  12.     if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
  13.         echo "La extensión o el tamaño de los archivos no es correcta.
  14.         <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se   permiten archivos de 100 Kb máximo.</td></tr></table>";
  15.     }else{
  16.         if (move_uploaded_file($_FILES['archivo']['tmp_name'], "files/".$nombre_archivo)){
  17.             $nuevoNombre = time().".jpg";
  18.            echo "El archivo ha sido cargado correctamente.";
  19.         }else{
  20.            echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
  21.         }
  22.     }
  23.  
  24.  
  25.  
  26. $tituloEntrada = $_POST['tituloEntrada'];
  27. $comentarioEntrada  = $_POST['comentario'];
  28.  
  29.  
  30. $conexion=mysql_connect("localhost","root","pedrosa") or die ("Error al conectar con la BD");
  31. $db=mysql_select_db("blog",$conexion) or die ("Error al conectar con tu Base de datos");
  32. $instruccion=mysql_query("insert into entrada(titulo,foto,comentario)
  33.                                                 values
  34.                         ('$tituloEntrada','$nuevoNombre','$comentarioEntrada')")or die ("La consulta no se ha realizado");
  35.  
  36. echo "Inserción Correcta";
  37.  
  38.  
  39. mysql_close($conexion);
  #12 (permalink)  
Antiguo 19/02/2010, 02:18
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

alguién podria ayudarme?
  #13 (permalink)  
Antiguo 19/02/2010, 03:56
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pequeño proyecto (Blog)

Probablemente sea que en la bbdd tienes definido el campo como BLOB. Prueba a cambiarlo a varchar!.

Por cierto, a la imagen no le das el "nuevoNombre", tenlo en cuenta! :)
  #14 (permalink)  
Antiguo 19/02/2010, 05:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

Si! eso era!!! solucionado!, ya funciona TODO!

pero... una cosa, no aconsejan que el tipo de datos sea BLOB?
  #15 (permalink)  
Antiguo 19/02/2010, 05:12
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pequeño proyecto (Blog)

sí, pero eso sería para guardar la imagen, por ejemplo.
Para guardar la ruta, es varchar (es una string!)
  #16 (permalink)  
Antiguo 19/02/2010, 06:57
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Pequeño proyecto (Blog)

Ok! entendido, es lógico pero no lo pensé!

Gracias a todos lo que me ayudaron!

Etiquetas: blog, proyectos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:01.