Foros del Web » Programando para Internet » PHP »

Problema con upload de archivos

Estas en el tema de Problema con upload de archivos en el foro de PHP en Foros del Web. Tengo un probelma con el upload de archivos probandolo en local todo va bien pero cuando esta en el servidor me sale este error Warning: ...
  #1 (permalink)  
Antiguo 07/01/2004, 19:03
 
Fecha de Ingreso: diciembre-2003
Mensajes: 65
Antigüedad: 20 años, 4 meses
Puntos: 1
Problema con upload de archivos

Tengo un probelma con el upload de archivos probandolo en local todo va bien pero cuando esta en el servidor me sale este error

Warning: copy(): open_basedir restriction in effect. File(/tmp/phpSkhQWN) is not within the allowed path(s): (/home/webcindario/yugioh-world) in /home/webcindario/yugioh-world/galeria.php on line 112
error al copiar el archivo

Alguien sabe por que es??

Seran problemas con el servidor?? o estare mal en mi script en local si me va

Espero que me ayuden

  #2 (permalink)  
Antiguo 07/01/2004, 19:34
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
pues tambien ayuda si pones tu script, y te ayudemos bien, salu2
  #3 (permalink)  
Antiguo 07/01/2004, 20:03
 
Fecha de Ingreso: diciembre-2003
Mensajes: 65
Antigüedad: 20 años, 4 meses
Puntos: 1
Este es el script

<tr><td colspan=5>
<br><br>
Si quiere subir una imagen a alguna de las galerias hazlo desde aqui las imagenes que subas
no deben pesar más de 50kb y deben estar en formato "jpg" y no debn tener ningun caracter extraño
como("#$%&/()=?¿!°°|).<br>
<form method=POST action=galeria.php enctype="multipart/form-data">
En que galeria:<select name=gallery_id>
<?
/*AQUI PONEMOS UN SELECT CON LAS GALERIAS EXISTENTES/*

$z = mysql_query("SELECT*FROM galerias order by gal_id ASC",$link);
while ($r = mysql_fetch_array($z)) {
printf ("<option value=%s>%s</option>",
$r["gal_id"],$r["galeria"]);
}
?>
</select><br>
<input type=hidden name=nick value=<?=$usNick?>></input>
<input type=hidden name=fecha value=<?=$fecha?>></input>
<input class=input2 type=file name=img></input><br>
<input class=input2 type=submit value=Subir>
</form>


<?php
$x = mysql_query("SELECT*FROM galerias where gal_id like '$gallery_id'",$link); /*CREAMOS UNA CONSULTA PARA VERIFICAR EL ID DE
LA GALERIA Y DE AHI METEMOS LA IMAGEN A SU DIRECTORIO Y APARTE INSERTO EN UNA DB LA URL
CORRESPONDIENTE*/
$s = mysql_fetch_array($x);
$dir=$s["galeria"];
$url="galerias/$dir/$img_name";

$in="INSERT INTO imagenes
(nick,fecha,gallery_id,url) values
('$nick','$fecha','$gallery_id','$url')";


$name = mysql_query("SELECT*FROM imagenes where url like'$url'",$link);


if (isset($cookieNick) && isset($cookiePass)) {
if (mysql_num_rows($name)) {
echo "Ya existe una imagen con el mismo nombre";
}else{

if ($img != "" ) {
$extencion = explode(".",$img_name);
if ($extencion[1]=="jpg") {
if($img_size < 50000) {

if(!copy($img,$url)){
echo "error al copiar el archivo";
}
else{
mysql_query($in,$link);
echo "archivo subido con exito";
}

}else{
echo "el archivo supera los 50kb";
}


}else{
echo"Solo se permite subir imagenes jpg";
}

}else{
echo"Si quieres subir una imagen debes elegir algun archivo.";
}

}

}else{
echo "Solo usuarios Registrados pueden subir imagenes";
}

?>
  #4 (permalink)  
Antiguo 07/01/2004, 21:36
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 3 meses
Puntos: 0
usa move_uploaded_file en vez de copy.

Move_uploaded no tiene restriccion de permisos de directorios.
  #5 (permalink)  
Antiguo 07/01/2004, 21:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 65
Antigüedad: 20 años, 4 meses
Puntos: 1
Haber voy a probar haber que pex thanks
  #6 (permalink)  
Antiguo 07/01/2004, 21:47
 
Fecha de Ingreso: diciembre-2003
Mensajes: 65
Antigüedad: 20 años, 4 meses
Puntos: 1
Jeje si me sirvio supuestamente leeo la documentación y no me di cuenta que decia que aunque haya safe mode esta funcion se la brinca ahora si voy a poner mi gal xD
  #7 (permalink)  
Antiguo 08/01/2004, 07:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema es /home/webcindario/yugioh .. en principio ese servicio de hosting gratuito no permite hacer un copy() de archivos desde fuera de lo que indice la directiva open_base_dir (hacia arriba) .. Pero, para el caso de archivos .. PHP ya "inventó" la función move_uploaded_file() como ya te han comentado para -sólo- mover los archivos que subieron y no otros como es la genérica "copy()".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 06:20.