PHP - me deniega accesso

   
Vista:

me deniega accesso

Publicado por julio (54 intervenciones) el 13/09/2008 23:49:54
Desarrolle el ejemplo para copiar un fichero al servidor Apache. Todo desde la misma PC, cargo la página en el explorador, abre el cuadro de dialogo, logro seleccionar el fichero (o archivo) y cuando pongo enviar, me tira el siguiente error.

Forbidden
You don't have permission to access /ejemplo146.php" on this server.
--------------------------------------------------------------------------------

Apache/2.2.4 (Win32) PHP/5.2.3 DAV/2 Server at localhost Port 80

Las tres aplicadiones la instale con el aplicaciones con AppServ

Evidentemente alguna linea de configuracion del apache esta mal. Si alguien puede ayudarme, desde ya muy agradecido.

El codigo es el siguiente:

<?
//11/Sep/2008 17:31
//subiendo archivo al servidor

if (!$enviar)
{
//Muestra el formulario
?>

<form method="POST" action=ejemplo146.php" enctype="multipart/formdata">
<table border="0" width="100%">
<tr>
<td width="100%" colspan="2"> ingrese el archivo que desea enviar al servidor</td>
</tr>
<tr>
<td width="21%"> <p align="right">Archivo: </td>
<td width="79%"><input type="file" name="archivo"></td>
</tr>
<tr>
<td wdth="21%"></td>
<td width="79%"><input type="submit" value="Enviar" name="enviar"></td>

<?
}
else
{
//guarda los datos del archivo

//define con que nombre lo guarda
$directorio="C:\AppServ\www";
$nombre="mi_archivo.txt";
// copia el archivo que recibe del formulario con el nuevo nombre
copy($archivo, $directorio.$nombre); <--- esta linea me dá el error

// borra el archivo temporal
unlink($archivo);


}
?>
</tr>
</table>
</form>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:me deniega accesso

Publicado por Diego Romero (1450 intervenciones) el 14/09/2008 07:19:31
Lee esto:

http://lawebdelprogramador.com/news/mostrar_new.php?id=71&texto=PHP&n1=505508&n2=1&n3=1&n4=1&n5=1&n6=1&n7=1&n8=1&n9=1&n0=0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por julio (54 intervenciones) el 15/09/2008 18:54:09
Muchisimas gracias por interesarte en mi problema. Leí atentamente lo sugerido, pero es distinto a lo mio.
Para acotar la causa del error, deje solo el codigo HTML

Entonces el error creo que viene de la configuracion de mi APACHE o alguna variable de entorno.

Aqui esta el codigo HTML puro. Muestra el formulario, me abre el cuado de dialogo, elijo el archivo o fichero y cuando hago click en enviar, salta el error que adjunto a continuacion del codigo.

<form method="POST" action=ejemplo.php" enctype="multipart/formdata">
<table border="0" width="100%">
<tr>
<td width="100%" colspan="2"> ingrese el archivo que desea enviar al servidor</td>
</tr>
<tr>
<td width="21%"> <p align="right">Archivo: </td>
<td width="79%"><input type="file" name="archivo"></td>
</tr>
<tr>
<td wdth="21%"></td>
<td width="79%"><input type="submit" value="Enviar" name="enviar"></td>

================ESTE ES EL ERROR QUE ME PASA=================
Forbidden
You don't have permission to access /ejemplo146.php" on this server.
--------------------------------------------------------------------------------
Apache/2.2.4 (Win32) PHP/5.2.3 DAV/2 Server at localhost Port 80
==============================================================

Desde ya muy agradecido por vuestra ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por Diego Romero (1450 intervenciones) el 16/09/2008 04:55:24
No puedo reproducir el error, la verdad no sé cuál es el problema pero haz notado que el tag form, parámetro action no está abierta la comilla doble?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por julio (54 intervenciones) el 16/09/2008 05:52:51
Te agradezco infinitamente. El error lo generaba que la falta de las comillas que me apuntaste.
Ahora me dá otro problema: funciona sólo si elijo un archivo del directorio de las paginas web (DocumentRoot), pero al ver si copio el arcivo, no se copia.

Cuando elijo un archivo de otro directorio directamente no me funciona.

?
//11/Sep/2008 17:31
//subiendo archivo al servidor

if (!$enviar)
{
//Muestra el formulario
?>

<form method="POST" action="ejemplo146.php" enctype="multipart/formdata">
<table border="0" width="100%">
<tr>
<td width="100%" colspan="2"> ingrese el archivo que desea enviar al servidor</td>
</tr>
<tr>
<td width="21%"> <p align="right">Archivo: </td>
<td width="79%"><input type="file" name="archivo"></td>
</tr>
<tr>
<td wdth="21%"></td>
<td width="79%"><input type="submit" value="Enviar" name="enviar"></td>

<?
}
else
{
//guarda los datos del archivo

//define con que nombre lo guarda
$directorio="C://AppServ//www//";
$nombre="mi_archivo.txt";
echo $archivo,"<br>";
echo $directorio;
// copia el archivo que recibe del formulario con el nuevo nombre
copy($archivo, $directorio.$nombre);

// borra el archivo temporal
//unlink($archivo);

//mostramos datos del archivo
echo "Nombre: $archivo_nombre<br>";
echo "Tamaño: $archivo_size bytes<br>";
echo "Tipo..: $archivo_type<br>";

}
?>
</tr>
</table>
</form>

De todas formas, el grán grán error que no lo podia superar, gracias a tu ayuda esta superado. Voy a seguir analizando tambien el codigo con la otra referencia que me diste, si puedo llegar a resolverlo inmediatamente te aviso.

Gracias por tu valiosa ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por julio (54 intervenciones) el 16/09/2008 05:53:01
Te agradezco infinitamente. El error lo generaba que la falta de las comillas que me apuntaste.
Ahora me dá otro problema: funciona sólo si elijo un archivo del directorio de las paginas web (DocumentRoot), pero al ver si copio el arcivo, no se copia.

Cuando elijo un archivo de otro directorio directamente no me funciona.

?
//11/Sep/2008 17:31
//subiendo archivo al servidor

if (!$enviar)
{
//Muestra el formulario
?>

<form method="POST" action="ejemplo146.php" enctype="multipart/formdata">
<table border="0" width="100%">
<tr>
<td width="100%" colspan="2"> ingrese el archivo que desea enviar al servidor</td>
</tr>
<tr>
<td width="21%"> <p align="right">Archivo: </td>
<td width="79%"><input type="file" name="archivo"></td>
</tr>
<tr>
<td wdth="21%"></td>
<td width="79%"><input type="submit" value="Enviar" name="enviar"></td>

<?
}
else
{
//guarda los datos del archivo

//define con que nombre lo guarda
$directorio="C://AppServ//www//";
$nombre="mi_archivo.txt";
echo $archivo,"<br>";
echo $directorio;
// copia el archivo que recibe del formulario con el nuevo nombre
copy($archivo, $directorio.$nombre);

// borra el archivo temporal
//unlink($archivo);

//mostramos datos del archivo
echo "Nombre: $archivo_nombre<br>";
echo "Tamaño: $archivo_size bytes<br>";
echo "Tipo..: $archivo_type<br>";

}
?>
</tr>
</table>
</form>

De todas formas, el grán grán error que no lo podia superar, gracias a tu ayuda esta superado. Voy a seguir analizando tambien el codigo con la otra referencia que me diste, si puedo llegar a resolverlo inmediatamente te aviso.

Gracias por tu valiosa ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por Diego Romero (1450 intervenciones) el 16/09/2008 09:16:09
No veo por ninguna parte que estés usando $_FILES, te sugiero que vuelvas a leer el mensaje que te referí en mi primera respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por julio (54 intervenciones) el 18/09/2008 00:43:10
Hoy pude volver a revisar el codigo de mi script, y sabes que asi, sin usar la función $_FILES funciona.

Volvi a leer lo que me apuntaste: la verdad que tu explicación es completa, y te agradezco porque gracias a ello aprendí muchisimo más.

Aunque para este simple ejemplo no me fue necesaria porque antes de volver a corregir decidí revisar el código del script y ahi me dí cuenta del error en cierre de los tags de tabla y formulario. Los cerraba al final en el ELSE cuando lo tenia que cerrar en la primera parte del IF.

Este ejemplo es parte del '"Manuales USER "Programación PHP"'" y como gracias a tu valiosa colaboracion del otro dia habia logrado descubrir el error en el código del Formulario HTML, me surgió que también la otra parte podría funcionar e hice los ajuste en los cierres de los tags. Y si funciona.
Dejo el código depurado y que funciona en mi pc:

<?
//11/Sep/2008 17:31
//subiendo archivo al servidor

if (!$enviar)
{
//Muestra el formulario
?>

<form method="POST" action="ejemplo146.php" enctype="multipart/formdata">
<table border="0" width="100%">
<tr>
<td width="100%" colspan="2"> ingrese el archivo que desea enviar al servidor</td>
</tr>
<tr>
<td width="21%"> <p align="right">Archivo: </td>
<td width="79%"><input type="file" name="archivo"></td>
</tr>
<tr>
<td wdth="21%"></td>
<td width="79%"><input type="submit" value="Enviar" name="enviar"></td>
</tr>
</table>
</form>

<?
}
else
{
//guarda los datos del archivo

//define con que nombre lo guarda
$directorio="C://";
$nombre="mi_archivo.txt";
echo $archivo,"<br>";
echo $directorio;
// copia el archivo que recibe del formulario con el nuevo nombre
copy($archivo, $directorio.$nombre);

// borra el archivo temporal
//unlink($archivo);

}
?>

Por supuesto, quizás este ejemplo funcione en cualquier caso, pero tu explicación detallada y completa me parece de mucho mejor peso y voy a poner en práctica tu sugerencia para tener un mejor dominio en el arte de copiar un simple fichero o archivo.

INFINITAMENTE GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por julio (54 intervenciones) el 18/09/2008 01:33:55
al final agregue estas variables para mostrar informacion del archivo

echo "Nombre: $archivo_name<br>";
echo "Tamaño: $archivo_size bytes<br>";
echo "Tipo..: $archivo_type<br>";

y las variables se mostraban sin datos. Habia un error en formdata, faltaba el guion:

<form method="POST" action="ejemplo146.php" enctype="multipart/formdata">

y corresponde asi:

<form method="POST" action="ejemplo146.php" enctype="multipart/FORM-DATA">

y ahi queda el código OK.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por Diego Romero (1450 intervenciones) el 18/09/2008 05:52:22
Me gustaría saber si esto funciona en un servidor remoto ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:me deniega accesso

Publicado por julio (54 intervenciones) el 18/09/2008 15:46:32
Interesante la pregunta. Me qudo con las ganas de probar tu sugerencia, ya que no tengo como probar esa posibilidad.

Valoro plenamente la solución que me apuntaste, la veo con total peso profesional.
Muchisimas Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar