ok este es el codigo para subir datos de texto junto con una imagen y guardar la info en una tabla en MySQL en este caso.
Formulario: Código HTML:
<html>
<head>
<title>Introduce un Nuevo Artista Colaborador</title>
</head>
<body>
<h1>Introduce correctamente los datos del Artista</h1>
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
Upload this file: <input name="userfile" type="file">
<table border="0">
<tr>
<td>Nombre Artistico</td>
<td><input type="text" name="artnombre" maxlength="30" size="30"></td>
</tr>
<tr>
<td>Biografia</td>
<td><textarea name="artbio" cols="80" rows="20"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Enviar Datos"></td>
</tr>
</table>
</form>
</body>
</html>
Scrip que hace upload y guarda los datos en MySQL Código PHP:
<?php
// $userfile is where file went on webserver
$userfile = $HTTP_POST_FILES['userfile']['tmp_name'];
// $userfile_name Es el nombre original del archivo
$userfile_name = $HTTP_POST_FILES['userfile']['name'];
// $userfile_size Tamaño de en bytes
$userfile_size = $HTTP_POST_FILES['userfile']['size'];
// $userfile_type controla el tipo mime ej: image/gif
$userfile_type = $HTTP_POST_FILES['userfile']['type'];
// $userfile_error is any error encountered
$userfile_error = $HTTP_POST_FILES['userfile']['error'];
// datos correspondientes a datos de texto para almacenar en mysql
$artnombre=$HTTP_POST_VARS['artnombre'];
$artbio=$HTTP_POST_VARS['artbio'];
if (!$artnombre || !$artbio)
{
echo 'No has introducido todos los detos requeridos.<br />'
.'Por favor vuelve atras y rellena todas las casillas.';
exit;
}
if ($userfile_error > 0)
{
echo 'Problema: ';
switch ($userfile_error)
{
case 1: echo 'El archivo excede el: upload_max_filesize'; break;
case 2: echo 'El archivo excede el: max_file_size'; break;
case 3: echo 'El arcivo no se ha subido al completo'; break;
case 4: echo 'No file uploaded'; break;
}
exit;
}
// otro checkeo más: tiene el archivo el tipo MIME correcto?
if ( ($userfile_type != 'image/jpeg') AND ($userfile_type != 'image/gif') AND ($userfile_type != 'image/png') )
{
echo 'Problema: El archivo no tiene el formato adecuado (jpeg, jpg, gif o png)';
exit;
}
// pon el archivo donde quieras
$upfile = '/home/mindpani/public_html/artistas/fotos/'.$userfile_name;
// is_uploaded_file y move_uploaded_file añadido para la version 4.0.3 de php
if (is_uploaded_file($userfile))
{
if (!move_uploaded_file($userfile, $upfile))
{
echo 'Problema: No se ha podido mover el archivo a el directorio de destino';
exit;
}
}
else
{
echo 'Problema: Posible ataque en el upload. Archivo: '.$userfile_name;
exit;
}
$artnombre = addslashes($artnombre);
$artbio = addslashes($artbio);
$userfile_name = addslashes($userfile_name);
@ $db = mysql_pconnect("localhost","tu_base_de_datos","tu_password");
if (!$db)
{
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
mysql_select_db('tu_base_de_datos');
$query = "insert into artistas values
('','".$artnombre."', '".$artbio."', '".$userfile_name."',NOW())";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows().' Datos subidos con exito a la base de datos.';
?>
eso es todo... si me veis alguna vulnerabilidad o algo avisarme