Foros del Web » Programando para Internet » PHP »

¿ Porque me da error ?

Estas en el tema de ¿ Porque me da error ? en el foro de PHP en Foros del Web. Hola, he buscado estos script para subir fotos a una base de datos pero me da error en linea 3 de subir php. Como este ...
  #1 (permalink)  
Antiguo 25/02/2010, 14:36
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
¿ Porque me da error ?

Hola, he buscado estos script para subir fotos a una base de datos pero me da error en linea 3 de subir php. Como este seria el primer error de muchos que saldrán, os pido el favor, a los entendidos, que revisen entos scrpts y me digan en que estan fallando.
Gracias de antemano

entrada.php

<form enctype="multipart/form-data" action="subir.php" method="POST">
Name: <input type="text" name="nombre"><br>
E-mail: <input type="text" name = "email"><br>
Phone: <input type="text" name = "phone"><br>
Photo: <input type="file" name="photo"><br>
<input type="submit" value="subir">
</form>


subir.php

<? php
// Este es el directorio donde las imágenes se guardarán
$target="images/";
$target=$target.basename($_FILES ['foto']['nombre']);
// Este recibe toda la información de la forma
$name=$_POST['nombre'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=($_FILES['photo']['nombre']);
// Se conecta a su base de datos
mysql_connect("midominio.com", "usuario", "xxxxx") or die(mysql_error()) ;
mysql_select_db("basededatos") or die(mysql_error()) ;
// Escribe la información a la base de datos
mysql_query("INSERT INTO `tabla` VALUES ('$pic')") ;
// Escribe la foto al servidor de
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{


// Le indica si su todo ok
echo "El archivo ".basename($ _FILES['archivoSubido']['nombre']). "Se ha subido, y su información ha sido añadido al directorio";
)
else (

// Da y su error si no
echo "Lo siento, no era un problema de subir el archivo.";
)
?>



ver.php


<? php
/ / Se conecta a su base de datos
mysql_connect ( "midominio.com", "usuario", "xxxx") or die (mysql_error ());
mysql_select_db ( "basededatos") or die (mysql_error ());

/ / Recupera los datos de MySQL
$ data = mysql_query ( "SELECT * FROM tabla") or die (mysql_error ());
/ / La pone en una matriz
while ($ info = mysql_fetch_array ($ datos))
(

/ / Imprime la imagen y otros datos
Echo "<img src=http://www.midominio.com/images/".$info['photo'] ."> <br>";

)
?>
  #2 (permalink)  
Antiguo 25/02/2010, 14:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: ¿ Porque me da error ?

¿Podrias mencionar a que linea se refiere, y que error te da?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 25/02/2010, 14:37
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: ¿ Porque me da error ?

y el error seria ?
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 25/02/2010, 14:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: ¿ Porque me da error ?

El error es en la linea 3

Parse error: syntax error, unexpected T_VARIABLE in /home/s03196b2/public_html/fotos/subir.php on line 3
  #5 (permalink)  
Antiguo 25/02/2010, 14:41
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: ¿ Porque me da error ?

De momento tienes un espacio entre <? y php, unelo y vuelve a probar, pues el tag es <?php no <? php
salu2
  #6 (permalink)  
Antiguo 25/02/2010, 14:43
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: ¿ Porque me da error ?

$target=$target.basename($_FILES ['foto']['nombre']);
entre files y [ hay otro espacio.. quitalo
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 25/02/2010, 14:47
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: ¿ Porque me da error ?

UFFFF y siguen los problemas de espacios y signos.
En la línea
Código PHP:
Ver original
  1. echo "El archivo ".basename($_FILES['archivoSubido']['nombre']). "Se ha subido, y su información ha sido añadido al directorio";
es $_FILES no $ _FILES
Los IF y ELSE se abren y cierran con {} no con () (OJO: En este mismo if - else)
Debes tener más cuidado en escribir tu code
  #8 (permalink)  
Antiguo 25/02/2010, 14:52
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: ¿ Porque me da error ?

tambien podrias aprovechar de leer un manual ya q al parecer no sabes mucho de php..
te tomara un poco de tiempo y no tendras estos problemas..

adjuntalo con un programa que resalte el codigo y errores y avanzaras mucho mas rapido

http://www.forosdelweb.com/wiki/Manual_de_PHP
__________________
More about me...
~ @rhyudek1
~ Github
  #9 (permalink)  
Antiguo 25/02/2010, 14:53
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: ¿ Porque me da error ?

Gracias por la respuestas y por la rapidez. Efectivamente eran esos los defectos, eran ocasionados al copiar y pegar los escript que pasaron mal, ya me da otro defecto de conexion que lo intentaré solucionar. Repito muchiiiiiiiiisimas gracias sois una verdadera legion de entendidos
  #10 (permalink)  
Antiguo 25/02/2010, 14:55
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: ¿ Porque me da error ?

Cita:
Iniciado por Hidek1 Ver Mensaje
tambien podrias aprovechar de leer un manual ya q al parecer no sabes mucho de php..
te tomara un poco de tiempo y no tendras estos problemas..

adjuntalo con un programa que resalte el codigo y errores y avanzaras mucho mas rapido

http://www.forosdelweb.com/wiki/Manual_de_PHP
¿Leiste esto? Es lo mejor q puedes hacer antes de intentar continuar
  #11 (permalink)  
Antiguo 25/02/2010, 16:10
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿ Porque me da error ?

Dios, ilegible!!!!!!!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #12 (permalink)  
Antiguo 26/02/2010, 11:04
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: ¿ Porque me da error ?

Bueno, ya lo he repasado, fué un error en confiar en el " copy" y "paste" lo copié de la siguiente pagina web:
http://php.about.com/od/phpwithmysql...file_sql_3.htm

El caso es que ahora me sale el siguiente error:

Warning: move_uploaded_file(images/) [function.move-uploaded-file]: failed to open stream: Is a directory in /home/usuario/public_html/fotos/subir.php on line 16

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/xxxxxxx' to 'images/' in /home/usuario/public_html/fotos/subir.php on line 16
Lo siento, no se ha podido subir el archivo.

El codigo es:

entrada.php
<form enctype="multipart/form-data" action="subir.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name = "email"><br>
Phone: <input type="text" name = "phone"><br>
Photo: <input type="file" name="photo"><br>
<input type="submit" value="subir">
</form>

subir.php
<?php
// Este es el directorio donde las imágenes se guardarán
$target="images/";
$target=$target.basename($_FILES ['foto']['name']);
// Este recibe toda la información de la forma
$name=$_POST['name'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=($_FILES['photo']['name']);
// Se conecta a su base de datos
mysql_connect("localhost", "usuario", "pasword") or die(mysql_error()) ;
mysql_select_db("basededatos") or die(mysql_error()) ;
// Escribe la información a la base de datos
mysql_query("INSERT INTO tabla (name,photo)VALUES('$name','$pic')") ;
// Escribe la foto al servidor de
if(move_uploaded_file($_FILES['photo']['tmp_name'],$target))
{

// Le indica si todo ok
echo "El archivo".basename($_FILES['uploadedfile']['name']). "Se ha subido, y su información ha sido añadido al directorio";
}
else {

// Da error si no
echo "Lo siento, no se ha podido subir el archivo.";
}
?>
  #13 (permalink)  
Antiguo 26/02/2010, 11:15
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿ Porque me da error ?

Tienes que darle permisos de escritura a ese directorio.
Veo que el servidor es linux. Si es tu server local sólo escribe:
Cita:
# chmod 754 -R /home/usuario/public_html/fotos
Nótese la # que significa ejecutar el comando como root.

Saludos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #14 (permalink)  
Antiguo 26/02/2010, 11:25
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: ¿ Porque me da error ?

No es un servidor local, es de pago, pero le he dado los permisos correspondientes de escritura y me sigue dando el mismo error
  #15 (permalink)  
Antiguo 26/02/2010, 14:47
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿ Porque me da error ?

Ostias no me había fijado:
Código PHP:
Ver original
  1. $target=$target.basename($_FILES ['foto']['name']);
Basename? Caso tienes un directorio llamado /images? o tal vez es /home/usuario/public_html/images?
Código PHP:
Ver original
  1. $target="./images/";
  2. $target.=$_FILES ['foto']['name'];
Así sí que está bien. No te compliques con rutas de directorios.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #16 (permalink)  
Antiguo 28/02/2010, 05:18
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: ¿ Porque me da error ?

Me sigue dando el mismo error con y sin directorios. El error es:

Warning: move_uploaded_file(images/) [function.move-uploaded-file]: failed to open stream: Is a directory in /home/usuario/public_html/subir.php on line 16

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpBB1UJH' to 'images/' in /home/usuario/public_html/subir.php on line 16
Lo siento, no se ha podido subir el archivo.
  #17 (permalink)  
Antiguo 28/02/2010, 06:41
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿ Porque me da error ?

Sigues guardándolo en un directorio que no existe. Porqué no lees algo sobre rutas absolutas? Son cinco minutos y te aclarará todo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #18 (permalink)  
Antiguo 28/02/2010, 08:29
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Respuesta: ¿ Porque me da error ?

loading.............



campesino, tómate la molestia de poner el código entre etiquetas

[ PHP ]

[ /PHP ]


connection closed.
__________________

Maborak Technologies
  #19 (permalink)  
Antiguo 28/02/2010, 17:18
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: ¿ Porque me da error ?

Chulosoy, ya cambié el script segun tu comentario anterior, ahora está asi:

subir.php

<?php
// Este es el directorio donde las imágenes se guardarán
$target="images/";
$target.=($_FILES ['foto']['name']);
// Este recibe toda la información de la forma
$name=$_POST['name'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=($_FILES['photo']['name']);
// Se conecta a su base de datos
mysql_connect("localhost", "usuario", "pasword") or die(mysql_error()) ;
mysql_select_db("base de datos") or die(mysql_error()) ;
// Escribe la información a la base de datos
mysql_query("INSERT INTO tabla (name,photo)VALUES('$name','$pic')") ;
// Escribe la foto al servidor de
if(move_uploaded_file($_FILES['photo']['tmp_name'],$target))
{

// Le indica si todo ok
echo "El archivo".($_FILES['uploadedfile']['name']). "Se ha subido, y su información ha sido añadido al directorio";
}
else {

// Da error si no
echo "Lo siento, no se ha podido subir el archivo.";
}
?>

y me sigue dando ese error. Como comenté anteriormente, tengo un servidor de pago y los ficheros los estoy metiendo en el directorio "public_html" y las imagenes en un subdirectorio llamado "images"
  #20 (permalink)  
Antiguo 28/02/2010, 18:22
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿ Porque me da error ?

Tienes varias incongruencias en el código. Para empezar no entiendo los paréntesis en $pic y en $target, además de tener campo foto y photo?
Código PHP:
Ver original
  1. <?php
  2. // Este es el directorio donde las imágenes se guardarán
  3. $target="images/";
  4. $target.=$_FILES ['foto']['name'];
  5. // Este recibe toda la información de la forma
  6. $name=$_POST['name'];
  7. $email=$_POST['email'];
  8. $phone=$_POST['phone'];
  9. $pic=$target;
  10. // Se conecta a su base de datos
  11. mysql_connect("localhost", "usuario", "pasword") or die(mysql_error()) ;
  12. //Aquí espero que pongas tus datos del servidor
  13. mysql_select_db("base de datos") or die(mysql_error()) ;
  14. //Aquí espero que pongas tu base de datos
  15. // Escribe la información a la base de datos
  16. mysql_query("INSERT INTO tabla (name,photo) VALUES ('".$name."','".$pic."')") ;
  17. //Y esta tabla espero que exista :)
  18. // Escribe la foto al servidor de
  19. if(move_uploaded_file($_FILES['foto']['tmp_name'],$target))
  20. //He escrito todo el código para un campo <input type="file" name="foto"> FOTO , no PHOTO
  21. {
  22.  
  23. // Le indica si todo ok
  24. echo "El archivo ".$_FILES['uploadedfile']['name']. " se ha subido, y su información ha sido añadido al directorio";
  25. }
  26. else {
  27.  
  28. // Da error si no
  29. echo "Lo siento, no se ha podido subir el archivo.";
  30. }
  31. ?>
REitero, este código es para un campo <input type="file" name="foto"> y no name="photo"
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #21 (permalink)  
Antiguo 01/03/2010, 03:31
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: ¿ Porque me da error ?

Muchiiisiiiimas gracias Chulosoy soy un despistado, ese era el problema. Has sido muy paciente conmigo, me queda mucho que aprender. Repito muchas gracias
  #22 (permalink)  
Antiguo 01/03/2010, 04:49
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿ Porque me da error ?

No te preocupes, lo importante es que lo entiendas (y lo intentes). Agradécemelo dándome karma! Jajaja
Saludo.s
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: Ninguno
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 14:11.