19/02/2011, 12:52
|
| | Fecha de Ingreso: enero-2011 Ubicación: C,M
Mensajes: 44
Antigüedad: 14 años Puntos: 2 | |
No se envían datos e url de imagen a la BDD Hola que tal, buen día. Tengo un formulario donde ingreso algunos datos y aparte envió imágenes (varias, usando Fichero[]) y no se si estoy mal en mi código, pero al submit no se envía nada, ni los datos del formulario, y solo 1 imagen, no se envían las otras seleccionadas en los input type file, utilizo dos tablas, una para imágenes y otra para los datos.
No se si tengo algún error, en el select, o en mis variables. Este es mi codigo php Código PHP:
<? if(isset($_POST['submit'])) {
//Conectamos a la base de datos para almacenar los datos y la ruta del archivo, aunque ya tengamos archivo conexion
mysql_connect('127.0.0.1','root','******')or die ('Ha fallado la conexión: '.mysql_error()); mysql_select_db('obras')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
//Carga los campos a los que se enviaran los datos $obra = $_POST["nombre"]; $ncontrato = $_POST["ncontrato"]; $lugar = $_POST["lugar"]; $fecha = $_POST["fecha"]; $supervisor = $_POST["snombre"]; $categoria = $_POST["categoria"]; //Inserta el Value de los campos a la tabla obras
$query="INSERT INTO obras (nombre,ncontrato,fecha,lugar,supervisor,categoria) VALUES ('$_POST[nombre]','$_POST[ncontrato]','$_POST[fecha]','$_POST[lugar]','$_POST[listasupervisor]','$_POST[listacategoria]')"; mysql_query($query) or die(mysql_error()); echo "El archivo $nombre_archivo ha sido registrado de manera satisfactoria.<br />"; } if(isset($_POST['Submit'])) { $cantidad2 =count($_FILES["fichero"]); for ($j=0;$j<=$cantidad2;$j++){ //Leer el nombre del fichero $image=$_FILES['fichero']['name'][$j]; //Si no esta vacio if ($image) { //Obtener el nombre original del fichero $filename = stripslashes($_FILES['fichero']['name'][$j]); //Obtener la extension del fichero $extension = getExtension($filename); $extension = strtolower($extension); //Si se da una extension descoocidad, imprimira error if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif") && ($extension != "bmp")) { //Imprimir mensaje de error echo '<h1>Extension desconocida!</h1>'; $errors=1; } else { //Obtenemos el tmaño de la imagen en bytes //$_FILES['image']['tmp_name'] temporal fichero //El archivo se almacena en el servidor $size=filesize($_FILES['fichero']['tmp_name'][$j]);
//Se compara el tamaño del fichero if ($size > MAX_SIZE*1024) { echo '<h1>Se a exedido del tamaño maximo.!</h1>'; $errors=1; }
//Daremos un nombre unico con extension $image_name=time().'.'.$extension; //Donde se guardaran las imagenes $newname="../images/".$image_name; //Se verifica si fue subida, e imprime errores $copied = copy($_FILES['fichero']['tmp_name'][$j], $newname);
if (!$copied) { echo '<h1>Copia realizada!</h1>'; $errors=1; }}}}
}
//Si no hubo errores, imprimo mensaje if(isset($_POST['Submit']) && !$errors) { //Si la foto fue subida correctamente entonces procedo a aplicarle las etiquetas.
echo '<h3>Se ha subido la imagen con éxito '.$newname.'. <br> $extension=$_POST['type']; $image=$_POST['name']; $size=$_POST['size']; $url = $newname; $test=$_POST['test']; $newLabel=$_POST['newLabel']; if (($test || $newLabel) && $url){ //Verifico que el archivo que acabo de insertar exista. if(file_exists($url)) { mysql_query("insert into photos values ('','".$url."','0','".$extension."','".$image."','".$size."')"); $result = mysql_query("select id from photos where url='".$url.""); $row = mysql_fetch_row($result); $photo_id = $row[0]; ?> Si alguien pudiera ayudarme, o darme alguna recomendación, lo agradecería. EDIT: Por cierto, si selecciono varias imágenes me tira errores de extensión desconocida. Saludos
Jakob
Última edición por Rudeck; 19/02/2011 a las 13:01 |