Foros del Web » Programando para Internet » PHP »

adminsitracion

Estas en el tema de adminsitracion en el foro de PHP en Foros del Web. es un script para subir noticias pero hay una opcion para mandar foto todo cva bien pero cuando la mando sale : Warning: Unable to ...
  #1 (permalink)  
Antiguo 21/02/2003, 15:45
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
adminsitracion

es un script para subir noticias pero hay una opcion para mandar foto todo cva bien pero cuando la mando sale :

Warning: Unable to open '' for reading: Permission denied in c:\appserv\www\prueba\admin.php on line 21
AÑADIDA


Código PHP:
<? 
include("funciones.php"); 
$contrasena "admin"


//--------------------------------------- 

if (($entrada) && ($pw == $contrasena)) { 

   if (
$envianoticia) { 
        
sql(pruebas);
        
$time time(); //establecemos el tiempo actual para la fecha 
        
$query "insert into news (fecha, titulo, preview, noticia) values ('$time', '$titulo', '$preview', '$contenido')"
        
mysql_query($query); //insertamos el dato 
        
mysql_close($conecta); //cierra la conexion 
        
echo "AÑADIDA<br><br>"//te dice que se ha añadido 
    
if ($enviafoto == si) {
    
sql(gamesok);
    
$path "foto/"//carpeta donde quedaran los avatar
    
$path .= $archivo_name;
    
copy($archivofile$path);
    
$time time(); //establecemos el tiempo actual para la fecha 
    
$query "insert into news (fecha, titulo, preview, noticia, caracteres) values ('$time', '$titulo', '$preview', '$contenido', '$path')"
    
mysql_query($query); //insertamos el dato 
    
mysql_close($conecta); //cierra la conexion 
    
echo "AÑADIDA<br><br>"//te dice que se ha añadido 
    
}    

    } 

    echo 

<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<title>Administracion</title>
<script languaje=\"Javascript\">
<!--
function Smile(texto){
 document.form.contenido.value = document.form.contenido.value + texto;
}
// -->
</script>
</head>

<body>

<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-left-style:solid; border-left-width:1; border-right-style:solid; border-right-width:1; border-top-style:solid; border-top-width:1; border-bottom-width:1\" bordercolor=\"#000000\" width=\"100%\" id=\"AutoNumber1\">
  <tr>
    <td width=\"100%\">
  <font color=\"#FF0000\">
  <b>Nueva noticia :</b> </font>
    </td>
  </tr>
</table>
  <form name=\"form\" action=\"admin.php\" method=\"post\">
  <p>
    <input type=\"hidden\" name=\"pw\" value=\"$contrasena\">
    <input type=\"hidden\" name=\"entrada\" value=\"si\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-left-style:solid; border-left-width:1; border-right-style:solid; border-right-width:1; border-top-style:solid; border-top-width:1; border-bottom-width:1\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber2\" height=\"100\">
  <tr>
    <td width=\"41%\" height=\"36\" colspan=\"2\" style=\"border-left-style: solid; border-left-width: 1; border-right-style: solid; border-right-width: 1; border-top-style: solid; border-top-width: 1; border-bottom-width: 1\">
    <b>
    <span class=\"normal\"><font size=\"2\">Titulo :</font></span></b><br>
    <input name=\"titulo\" type=\"text\" class=\"formulario\" id=\"titulo\" size=\"20\" style=\"border: 1px solid #808080\"> </td>
  </tr>
  <tr>
    <td width=\"54%\" valign=\"top\" height=\"196\">
  <p><b><font size=\"2\">Preview:</font></b></p>
  <p> 
    <textarea name=preview id=preview cols=37 rows=5 onkeyup=\"contarletras();\" style=\"border: 1px solid #808080\"></textarea></textarea> 
  </p>
  <p> 
    <font color=\"#0000FF\" size=\"2\">Caracterés&nbsp; que quedan:</font>&nbsp; 
    <input type=text name=contador id=contador2 value=250 size=3 readonly style=\"TEXT-ALIGN: right;\"></td></tr> 
  </p>
  &nbsp;</td>
    <td width=\"58%\" valign=\"top\" height=\"64\">
  <p>
    <b><font size=\"2\">Noticia:</font></b></p>
  <p>
      <textarea rows=\"5\" name=\"contenido\" cols=\"37\" style=\"border: 1px solid #808080\"></textarea>
</p>
  <p>    si 
    <input type=\"radio\" name=\"enviafoto\" value=\"si\">
no 
<input name=\"enviafoto\" type=\"radio\" value=\"no\" checked> 
  </p>
  <p>
    <input name=\"archivo\" type=\"file\" id=\"archivo\">
  </p>
  <p>&nbsp;</td>
  </tr>
</table>

<body>

</body>
</html>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-left-style:solid; border-left-width:1; border-right-style:solid; border-right-width:1; border-top-style:solid; border-top-width:1; border-bottom-width:1\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber3\">
  <tr>
    <td width=\"100%\">  <p align=\"center\">
  <a href=\"javascript:Smile('[:)]')\"><img src=\"ikon/sonrisa.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[:(]')\"><img src=\"ikon/triste.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[enojo]')\"><img src=\"ikon/enojado.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[;)]')\"><img src=\"ikon/ginando.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[cool]')\"><img src=\"ikon/cool.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[:P]')\"><img src=\"ikon/lengua.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[8)]')\"><img src=\"ikon/ojotes.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[:D]')\"><img src=\"ikon/risa.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[llorar]')\"><img src=\"ikon/llorando.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[bien]')\"><img src=\"ikon/bien.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[mal]')\"><img src=\"ikon/mal.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[duda]')\"><img src=\"ikon/duda.gif\" border=\"0\">
  <a href=\"javascript:Smile('[url] url [/url]')\"><img src=\"ikon/link.gif\" width=\"16\" height=\"16\" border=\"0\">
  <a href=\"javascript:Smile('[img] imagen [/img]')\"><img src=ikon/img.gif width=16 height=16 border=\"0\">
  <a href=\"javascript:Smile('[b] negrita [/b]')\"><img src=ikon/negrita.jpg width=16 height=16 border=\"0\">
  <a href=\"javascript:Smile('[u] subrayado [/u]')\"><img src=ikon/under.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[i] cursiva [/i]')\"><img src=ikon/cur.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[cite] citar [/cite]')\"><img src=ikon/citar.gif width=22 height=23 border=\"0\">
  <a href=\"javascript:Smile('[centrar] centrar [/centrar]')\"><img src=ikon/center.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[linea]')\"><img src=ikon/linea.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[derecha] derecha [/derecha]')\"><img src=ikon/dere.gif width=23 height=22 border=\"0\">
  
  <p></td>
  </tr>
  <tr>
    <td width=\"100%\" style=\"border-left-width: 1; border-right-width: 1; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1\">
    <p align=\"center\">
    <input type=\"submit\" name=\"envianoticia\" value=\"añadir\" style=\"border: 1px solid #000000\">   
  <input type=\"reset\" name=\"Reset\" value=\"Borrar\" style=\"border: 1px solid #000000\">
  </form>


    </td>
  </tr>
</table>


</body>

</html>
<script>
    function contarletras() 
    {
        var inputStr; 
        var strlength;
        var maxNumber;
        var charleft;
        
        maxNumber=250;
        if (document.form.preview.value != null) 
        {
            inputStr = document.form.preview.value;
            strlength = inputStr.length;
            if (strlength > maxNumber )
            {
                document.form.preview.value = inputStr.substring(0,maxNumber); 
                charleft = 0;
            }
            else
            {
                charleft = maxNumber - strlength;
            }
            document.form.contador.value = charleft;
        }
    }
</script>
</body>
</html> 
      "




else { 
    echo 

    <form method=\"post\" action=\"admin.php\"> 
    <input type=\"text\" name=\"pw\"><br> 
    <input type=\"submit\" name=\"entrada\" value=\"entrar\"> 
    </form> 
    "



?>
por fa ayudenme
  #2 (permalink)  
Antiguo 21/02/2003, 15:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Eso es debido a que se ha producido alguna error al subir la imagen. Aunque el error lo tienes en el formulario HTML. Se te ha olvidado poner el enctype. Seria:

<form name=\"form\" action=\"admin.php\" method=\"post\" enctype=\"multipart/form-data\">

Sin ese enctype no se pueden subir ficheros.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/02/2003, 16:04
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
me sale lo mismo ayuda por favor
  #4 (permalink)  
Antiguo 21/02/2003, 16:31
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 21 años, 5 meses
Puntos: 0
Código PHP:
copy($archivo_file$path); 
Evidentemente, aquí está el fallo. Pero te recomiendo que en su lugar uses mode_uploaded_file(), mirate el manual de php.net, ahí verás ejemplos de como usarlo.

1 Saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates
  #5 (permalink)  
Antiguo 21/02/2003, 16:59
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
sale igual
  #6 (permalink)  
Antiguo 21/02/2003, 19:36
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
creo que el error no es tanto de programacion sino de permisos, tu servidor es un windows 2000 ó nt? si puedes trata de chequear si el usuario del servidor web tiene permiso de lectura sobre ese directorio "foto" y tambien sobre ese archivo.

Warning: Unable to open '' for reading: Permission denied in c:\appserv\www\prueba\admin.php on line 21

Alerta: Imposible abrir para lectura: permiso denegado en
c:\appserv\www\prueba\admin.php on line 21


copy($archivofile, $path);

si es un copy y el error es de lectura, entonces el problema comienza en $archivofile.


Me cuentas jejeje.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #7 (permalink)  
Antiguo 21/02/2003, 21:16
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
ya quedo asi, pero no me funciona

$exten = explode("\.", $archivo_name);
$extencion = $exten[count($exten)-1];
$pesoKB = $archivo_size/1024;


para comprobar extencion y peso como le hago??

Código PHP:
<? 
include("funciones.php"); 
$contrasena "admin"
$exten explode("\."$archivo_name);
$extencion $exten[count($exten)-1];
$pesoKB $archivo_size/1024;


//--------------------------------------- 

if (($entrada) && ($pw == $contrasena)) { 

    if ((
$enviafoto == si) && ($envianoticia) && ($extencion == 'jpg') || ($extencion == 'gif') && ($pesoKB 50)) {

    
sql(gamesok);
    
$path "./foto/"//carpeta donde quedaran los avatar
    
$path .= $archivo_name;
    
move_uploaded_file($archivo$path);
    
$time time(); //establecemos el tiempo actual para la fecha 
    
$query "insert into news (fecha, titulo, preview, noticia, caracteres, foto) values ('$time', '$titulo', '$preview', '$contenido', '$path', '1')"
    
mysql_query($query); //insertamos el dato 
    
mysql_close($conecta); //cierra la conexion 
    
echo "AÑADIDA<br><br>"//te dice que se ha añadido 
    
}

   if ((
$enviafoto == no) &&($envianoticia)) { 
        
sql(pruebas);
        
$time time(); //establecemos el tiempo actual para la fecha 
        
$query "insert into news (fecha, titulo, preview, noticia, caracteres, foto) values ('$time', '$titulo', '$preview', '$contenido', '', 'no')"
        
mysql_query($query); //insertamos el dato 
        
mysql_close($conecta); //cierra la conexion 
        
echo "AÑADIDA<br><br>"//te dice que se ha añadido 
    


    echo 

<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<title>Administracion</title>
<script languaje=\"Javascript\">
<!--
function Smile(texto){
 document.form.contenido.value = document.form.contenido.value + texto;
}
// -->
</script>
</head>

<body>

<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-left-style:solid; border-left-width:1; border-right-style:solid; border-right-width:1; border-top-style:solid; border-top-width:1; border-bottom-width:1\" bordercolor=\"#000000\" width=\"100%\" id=\"AutoNumber1\">
  <tr>
    <td width=\"100%\">
  <font color=\"#FF0000\">
  <b>Nueva noticia :</b> </font>
    </td>
  </tr>
</table>
<form name=\"form\" action=\"admin.php\" method=\"post\" enctype=\"multipart/form-data\">
  <p>
    <input type=\"hidden\" name=\"pw\" value=\"$contrasena\">
    <input type=\"hidden\" name=\"entrada\" value=\"si\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-left-style:solid; border-left-width:1; border-right-style:solid; border-right-width:1; border-top-style:solid; border-top-width:1; border-bottom-width:1\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber2\" height=\"100\">
  <tr>
    <td width=\"41%\" height=\"36\" colspan=\"2\" style=\"border-left-style: solid; border-left-width: 1; border-right-style: solid; border-right-width: 1; border-top-style: solid; border-top-width: 1; border-bottom-width: 1\">
    <b>
    <span class=\"normal\"><font size=\"2\">Titulo :</font></span></b><br>
    <input name=\"titulo\" type=\"text\" class=\"formulario\" id=\"titulo\" size=\"20\" style=\"border: 1px solid #808080\"> </td>
  </tr>
  <tr>
    <td width=\"54%\" valign=\"top\" height=\"196\">
  <p><b><font size=\"2\">Preview:</font></b></p>
  <p> 
    <textarea name=preview id=preview cols=37 rows=5 onkeyup=\"contarletras();\" style=\"border: 1px solid #808080\"></textarea></textarea> 
  </p>
  <p> 
    <font color=\"#0000FF\" size=\"2\">Caracterés&nbsp; que quedan:</font>&nbsp; 
    <input type=text name=contador id=contador2 value=250 size=3 readonly style=\"TEXT-ALIGN: right;\"></td></tr> 
  </p>
  &nbsp;</td>
    <td width=\"58%\" valign=\"top\" height=\"64\">
  <p>
    <b><font size=\"2\">Noticia:</font></b></p>
  <p>
      <textarea rows=\"5\" name=\"contenido\" cols=\"37\" style=\"border: 1px solid #808080\"></textarea>
</p>
  <p>    si 
    <input type=\"radio\" name=\"enviafoto\" value=\"si\">
no 
<input name=\"enviafoto\" type=\"radio\" value=\"no\" checked> 
  </p>
  <p>
    <input name=\"archivo\" type=\"file\" id=\"archivo\">
  </p>
  <p>&nbsp;</td>
  </tr>
</table>

<body>

</body>
</html>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-left-style:solid; border-left-width:1; border-right-style:solid; border-right-width:1; border-top-style:solid; border-top-width:1; border-bottom-width:1\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber3\">
  <tr>
    <td width=\"100%\">  <p align=\"center\">
  <a href=\"javascript:Smile('[:)]')\"><img src=\"ikon/sonrisa.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[:(]')\"><img src=\"ikon/triste.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[enojo]')\"><img src=\"ikon/enojado.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[;)]')\"><img src=\"ikon/ginando.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[cool]')\"><img src=\"ikon/cool.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[:P]')\"><img src=\"ikon/lengua.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[8)]')\"><img src=\"ikon/ojotes.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[:D]')\"><img src=\"ikon/risa.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[llorar]')\"><img src=\"ikon/llorando.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[bien]')\"><img src=\"ikon/bien.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[mal]')\"><img src=\"ikon/mal.gif\" border=\"0\">&nbsp;
  <a href=\"javascript:Smile('[duda]')\"><img src=\"ikon/duda.gif\" border=\"0\">
  <a href=\"javascript:Smile('[url] url [/url]')\"><img src=\"ikon/link.gif\" width=\"16\" height=\"16\" border=\"0\">
  <a href=\"javascript:Smile('[img] imagen [/img]')\"><img src=ikon/img.gif width=16 height=16 border=\"0\">
  <a href=\"javascript:Smile('[b] negrita [/b]')\"><img src=ikon/negrita.jpg width=16 height=16 border=\"0\">
  <a href=\"javascript:Smile('[u] subrayado [/u]')\"><img src=ikon/under.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[i] cursiva [/i]')\"><img src=ikon/cur.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[cite] citar [/cite]')\"><img src=ikon/citar.gif width=22 height=23 border=\"0\">
  <a href=\"javascript:Smile('[centrar] centrar [/centrar]')\"><img src=ikon/center.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[linea]')\"><img src=ikon/linea.gif width=23 height=22 border=\"0\">
  <a href=\"javascript:Smile('[derecha] derecha [/derecha]')\"><img src=ikon/dere.gif width=23 height=22 border=\"0\">
  
  <p></td>
  </tr>
  <tr>
    <td width=\"100%\" style=\"border-left-width: 1; border-right-width: 1; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1\">
    <p align=\"center\">
    <input type=\"submit\" name=\"envianoticia\" value=\"añadir\" style=\"border: 1px solid #000000\">   
  <input type=\"reset\" name=\"Reset\" value=\"Borrar\" style=\"border: 1px solid #000000\">
  </form>


    </td>
  </tr>
</table>


</body>

</html>
<script>
    function contarletras() 
    {
        var inputStr; 
        var strlength;
        var maxNumber;
        var charleft;
        
        maxNumber=250;
        if (document.form.preview.value != null) 
        {
            inputStr = document.form.preview.value;
            strlength = inputStr.length;
            if (strlength > maxNumber )
            {
                document.form.preview.value = inputStr.substring(0,maxNumber); 
                charleft = 0;
            }
            else
            {
                charleft = maxNumber - strlength;
            }
            document.form.contador.value = charleft;
        }
    }
</script>
</body>
</html> 
      "




else { 
    echo 

    <form method=\"post\" action=\"admin.php\"> 
    <input type=\"text\" name=\"pw\"><br> 
    <input type=\"submit\" name=\"entrada\" value=\"entrar\"> 
    </form> 
    "



?>
  #8 (permalink)  
Antiguo 22/02/2003, 08:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. si el resto del script funciona .. asumimos que obtienes bien $archivo (asumiendo como global .. cosa que para nada es recomendable .. deberias usar $_FILE['archivo']['propiedad'] si usas PHP 4.1.x o superior).

Estas seguro q:

Código PHP:
echo $archivo_name// obtienes el nombre del archivo?
echo $archivo_size//obtienes algun valor? 
A todo esto .. para conocer el tipo de archivo q has subido puedes usar el parametro:

$archivo_type

Eso te dará el formato MIME del archivo subido (independiente de si tienes una u otra extensión .. Es dedir .. si le metes un .jpg pero es un .gif cambiado de nombre la extension .. $archivo_type dirá q es un .gif). Lo que entrega _type es el formato MIME de la forma categoria/sub-categoria (por decirlo de alguna forma): ejemplo image/jpg .. image/gif .. image/png .. text/plain .. etc.

Sería recomendable que guardases ese dato de formato MIME en tu BD. (te sería util si usases para mostrar las imagenes por ejemplo cabeceras HTTP via header("content-type: MIME_formato"); ....)

mas info .. donde siempre:
http://www.php.net/manual/en/features.file-upload.php

Un saludo,
  #9 (permalink)  
Antiguo 22/02/2003, 14:53
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
seguramente el error esta en el el interprete de php se confunde en el if que tienes juntos en el mismo ambito unos && y un ||. Fijate en este

Código PHP:
if (($enviafoto == si) && ($envianoticia) && ($extencion == 'jpg') || ($extencion == 'gif') && ($pesoKB 50)) 
ese if deberias separa por parentecis los ambitos del && y el ||, por lo que deberia quedar asi

Código PHP:
if (($enviafoto == si) && ($envianoticia) && (($extencion == 'jpg') || ($extencion == 'gif')) && ($pesoKB 50)) 
prueba esta vez haber si te corre

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
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 07:37.