Foros del Web » Programando para Internet » PHP »

Error raro en Fopen

Estas en el tema de Error raro en Fopen en el foro de PHP en Foros del Web. Hola quiero hacerles una consulta a ver si me pueden dar algun indicio de lo que esta pasando tengo un sitio que se actuliaza por ...
  #1 (permalink)  
Antiguo 04/01/2007, 15:52
 
Fecha de Ingreso: noviembre-2004
Ubicación: Montréal - Santa Fe
Mensajes: 140
Antigüedad: 19 años, 5 meses
Puntos: 2
Error raro en Fopen

Hola quiero hacerles una consulta a ver si me pueden dar algun indicio de lo que esta pasando

tengo un sitio que se actuliaza por medio de unos archivos que genera otro sistema....subimos los 7 archivos por medio de la funcion PHP move_uploaded_file() luego los mismo son importados a la base de datos por medio de un Fopen y Close.

hasta ayer y desde hace 6 meses andaba muy bien

ahora el tema es que subimos el file y cuando queremos importarlo salta un error que no lo encuentra.. como si el archivo no estuviera ahi..(cosa que el FTP esta con los permisos adecuador) si insistimos varias veces con F5 hasta que lo toma... esto es en general despues de 40 a 70 segundos de insistir..

El proveedor me ha JURADO y PERJURADO que no han tocado nada... probe con otros provvedores de inertnet pensando que podria sr algo de la cache y pasa lo mismo... de manera local anda.. y contra otro hosting tambien anda...

alguien paso por algo similar?? mas alla de la recomendacion de cambiar de hosting.. alguien sabe porke puede pasar esto?? se podria solucionar de alguna forma?


Gracias
  #2 (permalink)  
Antiguo 04/01/2007, 16:35
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: Error raro en Fopen

Nos cuentas una triste historia, pero para analizar mas tu caso se requieren "pruebas"
ouput de php, codigo usado, errores del servidor, etc.


Saludos
  #3 (permalink)  
Antiguo 04/01/2007, 16:55
 
Fecha de Ingreso: noviembre-2004
Ubicación: Montréal - Santa Fe
Mensajes: 140
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: Error raro en Fopen

a pedido de publico :P aca estan los codigos

1) con esto subo los archivos - Funciona bien

Código PHP:
<?
//  Autentificator
require("aut_verifica.inc.php");
$nivel_acceso=10// Nivel de acceso para esta página.

if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}

require (
"aut_config.inc.php"); // incluir configuracion.
$pag=$_SERVER['PHP_SELF'];  // el nombre y ruta de esta misma página.

$db_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("$sql_db") or die(mysql_error());

$_SESSION['mensaje']="";
$_SESSION['erro']="";
$id_cli $_SESSION['usuario_id'];
$usuario $_SESSION['usuario_login'];
$usuario_consulta mysql_query("SELECT id_cli FROM $sql_tabla") or die("No se pudo realizar la consulta a la Base de datos");
$resultados mysql_fetch_array($usuario_consulta);

session_register("HornDir");
   if(!
$GlimpseDir$GlimpseDir="/";


   
$basedir=$_SERVER['DOCUMENT_ROOT']. "/clientes/csv_importer/csv/";

   function 
reloadnow() {
    global 
$PHP_SELF;
    global 
$addons;
    
header("Status: 302 Moved");
    
header("Location: $PHP_SELF".$addons);
    exit(); }

   if(
$cancel$action="";
   if(
$action=="root"$GlimpseDir="/";

   if(
$action=="dele" && $confirm==1) { @unlink($basedir.$file); $action="";}
      
adnow(); } 

    
    if(
$upload) { move_uploaded_file($userfile,$basedir.$GlimpseDir.$userfile_name); 
    
reloadnow(); }

?>
<?
include ("header0.php"); // son solo cuestiones esteticas
include ("header.php");


if (
$action=="dele") {
    echo 
"<table height='30'><tr><td></td></tr></table>\n";
    echo 
"<TABLE cellspacing='2' cellpadding=0 border=0 align=center>\n";
    echo 
"<tr><td>Está seguro de querer borrar el archivo $file ?<BR></td></tr>\n";
        echo 
"<tr><td>&nbsp;</td></tr>\n";
        echo 
"<tr><td align='center'><A HREF=\"$PHP_SELF?action=dele&file=" rawurlencode($file) . "&confirm=1\">SI</A><BR></td></tr>\n";
        echo 
"<tr><td align='center'><A HREF=\"$PHP_SELF\">NO</A><BR></td></tr>\n";
    echo 
"</TABLE>\n";
        echo 
"<table height='180'><tr><td></td></tr></table>\n";
        include (
"footer.php");
    exit(); }

?>

<table height="30"><tr><td></td></tr></table>
<TABLE cellspacing="2" cellpadding=0 border=0 align=center>
<tr><td colspan=4 class="tdTitle">Sistema de Actualización</td></tr>
<tr><td colspan=4 class="tdSpacer">&nbsp;</td></tr>
<TR><TD class="tdPreviewAssignHeader"><div align='center'>Archivo</div></TD>
<TD class="tdPreviewAssignHeader"><div align='center'>Tipo</div></TD>
<TD class="tdPreviewAssignHeader"><div align='center'>Tamaño</div></TD>
<TD class="tdPreviewAssignHeader"><div align='center'>Acción</div></TD></TR>
<? $handle=opendir($basedir $GlimpseDir);
   while(
$file readdir($handle)) {
    if (
$file != "." && $file != "..") {
        
$filename=$basedir.$GlimpseDir.$file;
        
$fileurl=rawurlencode($GlimpseDir.$file);
        echo 
"<TR>";
        echo 
"<TD><span style='padding-left:5px'>" htmlspecialchars($file) . "</span></TD>\n";
        echo 
"<TD><div align='center'>" filetype($filename) . "</div></TD>\n";
        echo 
"<TD align='right'><span style='padding-right:10px'>" roundfilesize($filename)/1024) . "K<span></TD>\n";
        echo 
"<TD><div align='center'>";
        if(
filetype($filename)=="file") {
            echo 
"<A HREF=\"$PHP_SELF?action=dele&file=$fileurl\">Eliminar</A> ";
            echo 
"<A HREF=\"./csv_importer.php?file=$file\">Importar</A> ";
        } 
      echo 
"</div></TD>";
        echo 
"</TR>\n";
        }
    }
   
closedir($handle);
?>
<tr>
<tr><td colspan=4 class="tdSpacer">&nbsp;</td></tr>
<td class="tdSubmit" colspan="4"><FORM ENCTYPE="multipart/form-data" METHOD="POST" ACTION="<?=$PHP_SELF;?>">
<INPUT NAME="userfile" TYPE="file" class="inputText">
    <INPUT TYPE="SUBMIT" NAME="upload" VALUE="Subir" class="inputSubmit">
</FORM>
</td>
</tr>
</TABLE>
<table height="30"><tr><td></td></tr></table>


<?php include ("footer.php"?>
2) Codigo de la Importancion: aca suele haber dos tipos de errores que ya detallo

Código PHP:
<?
//  Autentificator

require("aut_verifica.inc.php");
$nivel_acceso=10// Nivel de acceso para esta página.

if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}

require (
"aut_config.inc.php"); // incluir configuracion.
$pag=$_SERVER['PHP_SELF'];  // el nombre y ruta de esta misma página.

$db_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("$sql_db") or die(mysql_error());

$_SESSION['mensaje']="";
$_SESSION['erro']="";
$id_cli $_SESSION['usuario_id'];
$usuario $_SESSION['usuario_login'];
$usuario_consulta mysql_query("SELECT id_cli FROM $sql_tabla") or die("No se pudo realizar la consulta a la Base de datos");
$resultados mysql_fetch_array($usuario_consulta);
    
/*
    #############################################################
    # >>> PHP CSV Importer                                        #
    #############################################################
    # > Author:  Matthew Lindley                                #
    # > E-mail:  [email protected]                            #
    # > Verson:  1.1a (See change_log.txt for details)            #
    # > Date:      5th October 2002                                #
    #                                                            #
    # This script will allow you to import CSV files and put    #
    # the results into a database.                                                                    
    */

require_once('../db.php');
require_once(
'../phpmkrfn.php');

function 
normalise($string) {
    
$string str_replace("\r""\n"$string);
    
    return 
$string;    
}

echo        
$table str_replace(substr($_GET[file],-4),"",$_GET[file]);

    if (!
$csvFile$csvFile=$_SERVER[DOCUMENT_ROOT].'clientes/csv_importer/csv/'.$_GET[file];
    if (!
$delimiter$delimiter=",";
    if (!
$escape$escape="/";
    if (!
$enclosure$enclosure="\"";
    if(!
$serverName$serverName="locahost";
    if(!
$username$username="uv0023";
    if(!
$password$password="turma075dular";
    if(!
$database$database="uv0023_horn";    
    if(!
$maxCols$maxCols="";
    if(!
$startLine$startLine=1;//"uv0023_horn";

    
if (!$connection phpmkr_db_connect(HOST,USER,PASS,null,PORT)) {
        die(
"Can't connect to database.  Has MySQL stopped?");
    } else {
        
$fields mysql_list_fields($database$table$connection);
        
$columns mysql_num_fields($fields);
        
$selectedFieldIndex 0;
        
        for (
$index 0$index $columns$index++) {
            
$fieldArray[$selectedFieldIndex][0] = mysql_field_name($fields$index);
            
$fieldArray[$selectedFieldIndex][1] = $fieldColumn[$index];
            
            
$selectedFieldIndex++;
        }
                
            if (!
$myFile fopen(stripslashes($csvFile), "r")) {
                echo 
'<br>$csvFile: '.$csvFile.'<br>';
                echo 
'stripslashes($csvFile): '.stripslashes($csvFile).'<br>';
                echo 
'$myFile: '.$myFile.'<br>';
                
//$fp23 = fopen(stripslashes($csvFile), "r");
                
echo '$fp23 = fopen(stripslashes($csvFile), "r"): '.$myFile .'<br>';
                
fclose($myFile);
                
                die(
"Can't open CSV file.  Has it been moved/deleted?");
                
            } else {
            
                
$line 0;
                
$ssql "TRUNCATE TABLE `$table`";
                
                if (
mysql_query($ssql,$connection)) {
                    
$mysql_log .= "<strong>Ok:</strong> $ssql\n<br>\n<br>";
                } else {
                    
$mysql_log .= "<strong>Falló:</strong> $ssql\n<br>Razon: " mysql_error() . "\n<br>\n<br>";
                }
                
                if(
$table == 'listas')
                    
$terminated '\\r\\n';
                else 
                    
$terminated    '\\n';
                
                
                
$sql 'LOAD DATA LOCAL INFILE \''.stripslashes($csvFile).'\' 
                        REPLACE INTO TABLE `'
.$table.'` 
                        FIELDS TERMINATED BY \''
.$delimiter.'\' 
                        ENCLOSED BY \''
.trim($enclosure,"\\").'\' 
                        ESCAPED BY \''
.$escape.'\' 
                        LINES TERMINATED BY \'\\r\\n\'
                        IGNORE '
.$startLine.' LINES';
                if (
$update_db mysql_query($sql$connection)) {
                            
$mysql_log .= "<strong>Ok:</strong> $sql\n<br>\n<br>";
                        } else {
                            
$mysql_log .= "<strong>Falló:</strong> $sql\n<br>Razon: " mysql_error() . "\n<br>\n<br>";
                        }
            } 
            
            
fclose($myFile);
            
            if (
$table == "clientes"){
                
$boton "<input type=\"submit\" name=\"volver\" value=\"Crear cuentas de usuarios nuevos &raquo;\" class=\"inputSubmit\">";
                
$location "./update_user_pass.php";
            }else {
                
$boton "<input type=\"submit\" name=\"volver\" value=\"Importar otro archivo &raquo;\" class=\"inputSubmit\">";
                
$location "./admin.php";
            }    

            
$display_block "
            <form action=\"$location\" method=\"POST\">
                <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"55%\" align=\"center\">
                    <tr>
                        <td colspan=\"2\" class=\"tdTitle\">Horn DataBase Admin </td>
                    </tr>
                    <tr>
                        <td colspan=\"2\" class=\"tdSpacer\">&nbsp;</td>
                    </tr>
                    <tr>
                        <td colspan=\"2\" class=\"tdSpacer\">&nbsp;</td>
                    </tr>
                    <tr>
                        <td>" 
$mysql_log "</td>
                    </tr>
                    <tr>
                        <td colspan=\"2\" class=\"tdSpacer\">&nbsp;</td>
                    </tr>
                    <tr>
                        <td class=\"tdSubmit\">$boton</td>
                    </tr>
                </table>
            </form>
            "
;
    }

?>
<?php 
include ('header0.php');
include (
'header.php');
$display_block .= "<table height='100'><tr><td></td></tr></table>";
echo 
$display_block;
include (
'footer.php');

?>
el error mas general salta aqui
Código PHP:
if (!$myFile fopen(stripslashes($csvFile), "r")) 
me devuelve VACIO por ende el mensaje es:

Código PHP:
die("Can't open CSV file.  Has it been moved/deleted?"); 
el siguiente error menos frecuente es:
Código PHP:
$mysql_log .= "<strong>Falló:</strong> $ssql\n<br>Razon: " mysql_error() . "\n<br>\n<br>"
aqui el mensaje es FILE NOT FOUND de la funcion mysql_error()

como decia... insistiendo varias veces con F5 termina tomandolo

gracias
  #4 (permalink)  
Antiguo 04/01/2007, 17:00
 
Fecha de Ingreso: noviembre-2004
Ubicación: Montréal - Santa Fe
Mensajes: 140
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: Error raro en Fopen

agrego unos datos mas...
al sacar el @del Fopen sale esto

Código PHP:
Warningfopen(/www/docs/xxx.com/public_html/clientes/csv_importer/csv/listas.TXT): failed to open streamToo many open files in /www/docs/xxx.com/public_html/clientes/csv_importer/csv_importer.php on line 569 
como veran agregue varios ECHO a modo de banderas para ver si los archivos los encuentra y funciona.. sale esto
Código PHP:
$csvFile: /www/docs/xxx.com/public_html/clientes/csv_importer/csv/listas.TXT
stripslashes
($csvFile): /www/docs/xxx.com/public_html/clientes/csv_importer/csv/listas.TXT
$myFile

$fp23 fopen(stripslashes($csvFile), "r"): 

Warningfclose(): supplied argument is not a valid stream resource in /www/docs/xxx.com/public_html/clientes/csv_importer/csv_importer.php on line 575
Cant open CSV file
Has it been moved/deleted

pd: xxx.com no es exactamente el dominio real.. yo lo cambie ;)
sdsdl
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 22:33.