Foros del Web » Programando para Internet » PHP »

Error warning fopen()

Estas en el tema de Error warning fopen() en el foro de PHP en Foros del Web. Hola a todos, después de conseguir reestablecer la base de datos me da ahora un error en los archivos, a ver si alguien me puede ...
  #1 (permalink)  
Antiguo 09/01/2009, 13:21
(Desactivado)
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
Error warning fopen()

Hola a todos, después de conseguir reestablecer la base de datos me da ahora un error en los archivos, a ver si alguien me puede echar una mano.

Este es el problema.

Código:
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /homepages/32/d223244627/htdocs/httpdoc/bay/includes/converter.inc.php on line 43

Warning: fopen(http://www.bankofcanada.ca/fmd/exchange.htm) [function.fopen]: failed to open stream: no suitable wrapper could be found in /homepages/32/d223244627/htdocs/httpdoc/bay/includes/converter.inc.php on line 43

Warning: feof(): supplied argument is not a valid stream resource in /homepages/32/d223244627/htdocs/httpdoc/bay/includes/converter.inc.php on line 45

Warning: fgets(): supplied argument is not a valid stream resource in /homepages/32/d223244627/htdocs/httpdoc/bay/includes/converter.inc.php on line 47
Gracias a todos, un saludo.
  #2 (permalink)  
Antiguo 09/01/2009, 13:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Error warning fopen()

Es simple, el error te lo dice. El servidor en el que ejecutas el fopen, no permite acceder a un archivo remoto. Si es un hosting de pago, pide que lo activen.
  #3 (permalink)  
Antiguo 09/01/2009, 13:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error warning fopen()

Hola spacewars,

Abre tu php.ini y modifica la variable allow_url_fopen de 0 a 1 para poder ejecutar tu código. Si tu hosting es compartido y no puedes cambiar el php.ini, vas a tener que cambiar en lugar de usar fopen, usar fsockopen y hacer un request HTTP a esa dirección.

Saludos
  #4 (permalink)  
Antiguo 10/01/2009, 03:44
(Desactivado)
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error warning fopen()

eyy muchas gracias, voy a ponerme con ello a ver si me sale bien el cambio en el code jeje, el problema es el de siempre, "host de pago pero compartido" y no te dejan hacer cambio alguno, a ver si me pillo el dedicado y dejo estos problemas atrás.

Muchísimas gracias por la ayuda señores.

Saludos
  #5 (permalink)  
Antiguo 10/01/2009, 08:59
(Desactivado)
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error warning fopen()

Rehola de nuevo señores, poco tiempo ha pasado hasta darme cuanta de que necesito vuestra ayuda, he estado leyendo algunas webs y al final en wiki encontré la manera de hacer el "fsockopen" he modificado el code pero ahora me da el error:

Código PHP:
Fatal errorOnly variables can be passed by reference in 
Me podéis echar una mano?, os dejo el código adjunto.

Código PHP:
<?#//v.3.0.0

#///////////////////////////////////////////////////////
#//  COPYRIGHT 2008 ALL RIGHTS RESERVED//
#///////////////////////////////////////////////////////

Function ConvertCurrency($FROM,$INTO,$AMOUNT)
{
    
$query "SELECT * FROM bay_rates WHERE symbol='$FROM'";
    
$R         mysql_query($query);
    if(!
$R)
    {
        print 
"Error: $query<BR>".mysql_error();
        exit;
    }
    
$F_RATE    mysql_fetch_array($R);

    
$query "SELECT * FROM bay_rates WHERE symbol='$INTO'";
    
$R_     mysql_query($query);
    if(!
$R_)
    {
        print 
"Error: $query<BR>".mysql_error();
        exit;
    }
    
$I_RATE    mysql_fetch_array($R_);

    
$VAL     doubleval($AMOUNT);
    return 
$VAL/$F_RATE[rate]*$I_RATE[rate];
}


function 
UpdateRates()
{
 global 
$PHP_SELF;
 
$interval 1440// Minutes in 1 day

 
$res = @mysql_query("select *,NOW()-(last_update) as dif from bay_lastupdate;");
 
$ar = @mysql_fetch_array($res);
 
$mydif = (int)($ar[dif]/60) - $interval;
 if(
$mydif>0)
 
 
/*{
  $fp = fopen("http://www.bankofcanada.ca/fmd/exchange.htm","r");
  $x=0;$g=0;
  while(!feof($fp))
  {
*/
    
$fp fsockopen(“www.bankofcanada.ca/fmd/exchange.htm”8030);
        if( !
$fp ) {
        echo 
'$errstr ($errno) <br>\n';
} else {
    
fputs($fp“GET HTTP/1.0nn”);
        while( !
feof($fp) ) {
        echo 
fgets($fp128);
    }
    
fclose($fp);
}


   
$buf fgets($fp4096);
   if(
eregi("U.S. Dollar",$buf)) $x=4;
   if(
eregi("</PRE>",$buf)) $x=0;
   if(
$x==4)
   {
    if(!
eregi("US/CA",$buf))
    {
     
$ime explode("/",$buf);
     
$s explode(" ",$ime[1]);
     
$r array_reverse ($s);

     if(
eregi("Euro de",$buf))
     {
      
$ime[0]="European Monetary Union EURO";
      
$s explode(" ",$buf);
      
$r array_reverse ($s);
     }

     if(
$ime[0]<>"" and $r[0]<>"")
     {
      
$g++;
      if(
eregi("U.S. Dollar",$buf)) {$koef = (float)$r[0];}
      
$k = ((float)$r[0]/(float)$koef);
      
$usd 1/$k;
      
$res mysql_query("SELECT * FROM bay_rates WHERE sifra=\"$ime[0]\"") or die("ERROR 42:".mysql_error());
      
$num mysql_num_rows($res);
      if(
$num == 0)
      {
         
mysql_query("INSERT INTO bay_rates VALUES(
                     NULL,
                     \"$ime[0]\",
                    '',
                    $usd,
                    \"$ime[0]\")"
);
      }
      else
         
mysql_query("UPDATE bay_rates SET rate='$usd' WHERE sifra=\"$ime[0]\"");
     }
    if(
eregi("Venezuelan Bolivar",$buf)) $x=0;
    }
   }
  }
  
fclose($fp);
  
mysql_query("UPDATE bay_lastupdate SET last_update=NOW();");
 }
}
?>
Espero vuestra ayuda. Gracias a todos.
  #6 (permalink)  
Antiguo 10/01/2009, 14:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error warning fopen()

Ve el manual de PHP la funcion fsockopen() si te fijas la tercer variable es un apuntador, no un numero por eso te da error.

Saludos.
  #7 (permalink)  
Antiguo 09/06/2009, 09:22
Avatar de Hamn  
Fecha de Ingreso: marzo-2008
Ubicación: Cali-Colombia
Mensajes: 212
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Error warning fopen()

Bueno amigos sucede que revisando el post aca me pueden ayudar

tengo un archivo donde necesita esta funcion, pero los administradores del servidor la han desactivado por seguridad

aca dejo el codigo a ver si puedo usar la funcion fsockopen() y como la puedo usar?

Código PHP:
    $last_cron_date = date("Ymd");
    $Fnm = $mosConfig_absolute_path .'/components/'.$option.'/cron.php';
    $inF = fopen($Fnm,"w"); 
    fwrite($inF,'<?php $last_cron_date='.$last_cron_date.';?>');
    fclose($inF);
Gracias amigos espero alguna ayudita...
__________________
De que vale la vida si cuando la tenemos parece estar muerta.

http://www.somoscali.com/

Última edición por Hamn; 09/06/2009 a las 09:28
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 04:27.