Estoy intentando hacerme una página desde la cual poder subir una imagen.
En esta página hay dos campos: uno para meter texto descriptivo y otro para subir un archivo.
Lo que intento hacer es que me valide los campos de la siguiente manera:
1- si no hay texto ni archivo de imagen: mensaje de aviso y no manda el formulario.
2- si hay texto pero no hay archivo de imagen: mensaje de aviso y no manda el formulario.
3- si hay archivo de imagen pero no hay texto: mensaje de aviso y no manda el formulario.
Bueno: paso 1 - funciona / paso 2 - funciona / paso 3 - pasa de todo y manda la imagen sin el texto. Ya no sé ni las vueltas que le he dado al código.
Código:
Siento mucho la chapa, y gracias a todos.$cnx = conectar (); $mensajes = array(); // ALMACENA LOS MENSAJES QUE SE QUIEREN MOSTRAR // SI EL FORMULARIO HA SIDO ENVIADO, SE VALIDA if(isset($_POST['submit'])){ { // SE CREAN LAS VARIABLES $textoarchivos = $_POST['textoarchivos']; $fotosarchivos = $_FILES['imagen']['name']; // NOMBRE DEL INPUT DE LA IMAGEN // SE VALIDAN LAS VARIABLES: SI SE MANDAN VACÍAS... if($textoarchivos =='' || ($_FILES['imagen']['name']) ==''){ echo "<tr> <td colspan='2' class='texto_paginas_alertas'>¡Debe introducir el texto y seleccionar la imagen o archivo!</td> </tr>\n"; } if (is_uploaded_file($_FILES['imagen']['tmp_name'])) { // NOMBRE TEMPORAL DE LA IMAGEN $ext = substr($_FILES['imagen']['name'],-3); // SE OBTIENE LA EXTENSIÓN // COMPRUEBA QUE LAS EXTENSIONES SEAN LAS CORRECTAS $extensiones = array ( 'image/jpeg', // imagen jpg 'image/pjpeg', // imagen jpg 'image/jpg', // imagen jpg 'image/png', // imagen png 'image/gif', // imagen gif 'application/x-rar-compressed', // rar 'application/x-rar', // rar 'application/rar', // rar 'application/x-zip-compressed', // zip 'application/x-zip', // zip 'application/zip', // zip ); if(!in_array($_FILES['imagen']['type'],$extensiones)){ // MUESTRA UN AVISO SI LA EXTENSIÓN NO ES CORRECTA $mensajes[] = 'El fichero '.$_FILES['imagen']['name'].' no tiene una extensión válida'; } else { // NUEVO NOMBRE PARA LA IMAGEN /* SI SE QUITA, DEJAR EL NOMBRE COMO ESTÁ, PERO SE PUEDEN DUPLICAR DATOS EN LA BASE DE DATOS, PUDIENDO DAR ERRORES */ // SELECCIONAR SÓLO UNA DE ELLAS // $nuevoNombre = time().$_FILES['imagen']['name']; // Nombre con la fecha // $nuevoNombre = 'Nombre_De_La_Imagen.'.$ext; // Nombre personalizado $nuevoNombre = $_FILES['imagen']['name']; // Nombre original // CARPETA DE ALMACÉN move_uploaded_file($_FILES['imagen']['tmp_name'], "../pagina/imagenes_privado/$nuevoNombre"); // OBTENER LA INFORMACIÓN $data = GetImageSize("../pagina/imagenes_privado/$nuevoNombre"); $sql = "INSERT INTO archivos SET "; $sql .= "textoarchivos ='".$_POST['textoarchivos']."',"; $sql .= "fotosarchivos = '../pagina/imagenes_privado/$nuevoNombre'"; $res = mysql_query($sql) or die(mysql_error()); echo "NUEVA IMAGEN AÑADIDA.\n"; mysql_close($idcnx); exit; } } } } ?> <form enctype="multipart/form-data" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <textarea name="textoarchivos" cols="100" rows="30" id="textoarchivos"><?php echo $_POST['textoarchivos']; ?></textarea> <input name="imagen" type="file" size="70" value="mierdas" /> <input name="submit" type="image" src="images/aceptar.png" value="submit" /> </form>
Javy