Foros del Web » Programando para Internet » PHP »

ayuda con este script se upload de archivos que no me inserta datos en mysql

Estas en el tema de ayuda con este script se upload de archivos que no me inserta datos en mysql en el foro de PHP en Foros del Web. bueno ojalas alguien pueda decirme que esta mal, les cuento, aqui les mostrare un script de upload de archivo hacia el servidor, funciona casi todo ...
  #1 (permalink)  
Antiguo 29/05/2004, 17:31
 
Fecha de Ingreso: mayo-2004
Mensajes: 8
Antigüedad: 19 años, 10 meses
Puntos: 0
De acuerdo ayuda con este script se upload de archivos que no me inserta datos en mysql

bueno ojalas alguien pueda decirme que esta mal, les cuento, aqui les mostrare un script de upload de archivo hacia el servidor, funciona casi todo bien, porque lo que yo quiero que haga es lo siguiente:

- suba el archivo (gif o jpg) al servidor
- haga un insert, es decir inserte los datos a la tabla: avatar que contiene solo los campos: id - titulo - avatar

bien cuando lo ejecuto me funciona solo el primer paso, es decir solo sube la imagen al servidor pero no hace el insert, es decir no inserta los datos del formulario a la base de datos, si alguien me puede decir en que esta mal se lo agradeceria


<?
include("config.php");

$NICK = $HTTP_COOKIE_VARS["vagouser"];
$PASS = $HTTP_COOKIE_VARS["vagopass"];


function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
return $texto ;
}
$fecha = time() ;
$usuario = quitar($usuario) ;
$titulo= quitar($titulo) ;
$noticia= quitar($noticia) ;
$noticiaext= quitar($noticiaext) ;
$avatar= quitar($avatar) ;
$count= quitar($count) ;


$result1 = mysql_query("SELECT * FROM registro WHERE nick='$NICK'");
if($row = mysql_fetch_array($result1))
{
$avatar = $row[avatar];
if($row[password] == $PASS)
{
$id = $row[id];
if ($upload == imagen) {
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las caracter\'edsticas del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) \{
echo "La extensi\'f3n o el tama\'f1o de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb m\'e1ximo.</td></tr></table>";
\}else\{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "img_noticias/".$nombre_archivo))\{
$titulo= quitar($titulo) ;
$avatar= quitar($avatar) ;
mysql_query("insert INTO avatar(titulo,userfile) values('$titulo','$avatar')");


echo "El archivo ha sido cargado correctamente.";

\}else\{
echo "No pudo guardarse.";
\}
\}


} else {


echo "<table width=413><tr><td>".$row[nick]." Modifica tu Avatar !! bueno selecciona el la foto que quieres subir de un peso max. de 100k...<br><br></td></tr><tr><td>Tu Avatar actual es: <br><img src=".$row[avatar]."></td></tr></table>";
?>
<form action="index.php?page=sn.php" method="post" enctype="multipart/form-data">
<br>Selecciona tu archivo<br><br>
<input type="hidden" name="upload" value="imagen">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input name="userfile" type="file">
<br>
Título:<br>
<input type="text" name="titulo" maxlength="100"><br>
Noticia Abreviada:<br>
<input type="submit" value="Agregar">
</form>

<?
}

} else {
echo "error";
}
} else {
echo "error";
}
?>


ahi esta, si me dicen en que esta erroneo se lo agradeceria mucho hasta pronto.

Última edición por FreeBSD69; 29/05/2004 a las 17:33
  #2 (permalink)  
Antiguo 29/05/2004, 21:13
 
Fecha de Ingreso: mayo-2004
Ubicación: España
Mensajes: 5
Antigüedad: 19 años, 10 meses
Puntos: 0
El problema es que no estas conectando con la base de datos
prueba a añadir al principio:
Código PHP:
$Conectar=mysql_connect("localhost","usuario","Password") or die("Error conectando con la bd");
mysql_select_db("basededatos",$Conectar) Or Die("Error seleccionando bd"); 
y en tus querys añade lo siguiente:
$result1 = mysql_query("SELECT * FROM registro WHERE nick='$NICK'",$Conectar);
y
mysql_query("insert INTO avatar(titulo,userfile) values('$titulo','$avatar')",$Conectar);

Un saludo
  #3 (permalink)  
Antiguo 30/05/2004, 04:26
 
Fecha de Ingreso: mayo-2004
Mensajes: 8
Antigüedad: 19 años, 10 meses
Puntos: 0
man si conecte a la base de datos, date cuenta en la siguiente linea:

include("config.php");

en el archivo config.php tengo todo el archivo de conexion a la base de datos, nose que podra ser....
  #4 (permalink)  
Antiguo 30/05/2004, 09:02
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

¿Que son los \ que aparecen por el codigo? ¿Estan en tu codigo o han aparecido al copiarlo al foro?

De todas formas, para ver si se ha producido un error MySQL puedes usar mysql_error() (www.php.net/mysql_error):
Código PHP:
mysql_query(...) or die (mysql_error()); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 30/05/2004, 23:15
 
Fecha de Ingreso: mayo-2004
Mensajes: 8
Antigüedad: 19 años, 10 meses
Puntos: 0
intente hacerlo como uds. me decian y ninguna de las 2 me sirvio, sigue no mandando los datos a la base de datos :(
  #6 (permalink)  
Antiguo 30/05/2004, 23:40
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 5 meses
Puntos: 1
Indicanos el error que manda MySQL con la función que te dijo Josemi:

Código PHP:
mysql_query("consulta de insercion") or die(mysql_error()) 
con esto le indicas a PHP que si no logra insertar los datos, te devuelva el error que mysql muestra...

un saludo
  #7 (permalink)  
Antiguo 31/05/2004, 03:04
 
Fecha de Ingreso: mayo-2004
Mensajes: 8
Antigüedad: 19 años, 10 meses
Puntos: 0
le puse el or die(mysql_error()) y arrojo el siguiente error

Unknown column 'userfile' in 'field list'
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 10:16.