Ver Mensaje Individual
  #336 (permalink)  
Antiguo 21/06/2006, 07:38
Raules
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 19 años, 7 meses
Puntos: 0
El codigo que tengo es este...

Bueno explico más o menos el funcionamiento de lo que quiero.
Me he creado un pequeño sistema en el cual un usuario que yo de de alta pueda ver sus datos (perfil), pueda ver sus cuentas, enviar un soporte que es lo que estoy intentando hacer con este script que viendo el funcionamiento veo que sirve..

Por ejemplo simplemente quiero que envie un archivo y un texto plano a la base de datos que es lo que consiste este script, pero que me lo guarde con la id del usuario que es la misma id que tengo en la tabla soporte(tiene el mismo número porque se lo pongo yo manualmente)..

Es decir que en la misma id habrá varios archivos y comentarios y que a la hora de hacer por ejemplo la consulta para ver los archivos se veran con la condicion de ascendente para ver los ultimos primero o viceversa.

Esta es la tabla que tengo en la base de datos:


Código:
#
# Estructura de tabla para la tabla `soporte`
#

CREATE TABLE soporte (
  id int(10) NOT NULL auto_increment,
  fecha date NOT NULL,
  archivo_binario blob NOT NULL,
  archivo_nombre varchar(255) NOT NULL default '',
  archivo_peso varchar(15) NOT NULL default '',
  archivo_tipo varchar(25) NOT NULL default '',
  comentario_cliente varchar(255) NOT NULL default '',
  comentario_administador varchar(255) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
En el formulario tengo lo siguiente:

Formulario.php

Código PHP:
<HTML> 
<HEAD> 
<TITLE>Binario a BD</TITLE> 
</HEAD> 
<BODY> 
<?php 
if (isset($_GET['proceso'])){ 
echo 
$_GET['proceso']."<br>"

?> 
<FORM enctype="multipart/form-data" method="post" action="insertar_soporte.php">
<table width="470" height="18" cellpadding="2" cellspacing="2" class="estilotabla"><tr><td colspan="2" class="estilocelda">ENVIAR SOPORTE </td></tr><tr><td></td><td>&nbsp;</td></tr><tr>
<td width="128">Comentarios:</td>
<td width="326"><textarea name="comentario_cliente"></textarea>
</td>
</tr><tr><td>Archivo:</td>
<td><INPUT type="file" name="archivo" size="30"> </td>
</tr><tr><td>&nbsp;</td><td>
<INPUT type="submit" name="submit"value="Enviar"> </td>
</tr></table></form>
</BODY> 
</HTML>
Y en el codigo insertar_soporte.php tengo el siguiente codigo:

Código PHP:
<?php 
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre.  Si no fue asi, te remite de nuevo al formulario de inserción: 
// No se comprueba aqui si se ha subido correctamente. 
if (empty($_FILES['archivo']['name'])){ 
header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. 
exit; 


//establece una conexión con la base de datos. 
$conexion mysql_connect("localhost","","") or die("No se pudo realizar la conexion con el servidor."); 
mysql_select_db("tu_bd",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. 

// archivo temporal (ruta y nombre). 
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ; 

// leer del archvio temporal .. el binario subido. 
// "rb" para Windows .. Linux parece q con "r" sobra ... 
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal))); 

// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. 
$binario_nombre=$_FILES['archivo']['name']; 
$binario_peso=$_FILES['archivo']['size']; 
$binario_tipo=$_FILES['archivo']['type']; 

//insertamos los datos en la BD. 
$consulta_insertar " INSERT INTO soporte (id,comentario_cliente, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('$_SESSION['id']','$comentario_cliente', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); 
header("location: formulario.php");  // si ha ido todo bien 
exit; 
?>
No se si me explico bien porque estoy empezando y no tengo mucha idea...

Estoy haciendo algo mal? que es lo que tengo que añadir?

Gracias Cluster y perdona por darte el foyon