• User

    Problema fsockopen

    Salve a tutti,

    ho dei problemi con questo vecchio codice php. Funzionava perfettamente su un server interno all'azienda. Abbiamo traslocato la web a un hosting linux esterno e non funziona più. La direzione ip che si indica è una direzione ip fissa .
    [PHP] <?php

    $fichero = $_SESSION['telex'];
    $fichero = "P01web" . $fichero;
    $f = fopen($fichero,"r");

    $conexion=fsockopen("8x.xxx.xx.xx","5000");

    $ped = 0;
    // inviamo codice del cliente
    $val = fgets($f,30);
    fwrite($conexion,"010100000000000000".$val[0].$val[1].$val[2].$val[3].$val[4].$val[5].$val[6]." ".$val[0].$val[1].$val[2].$val[3].$val[4].$val[5].$val[6]." \n");
    fwrite($conexion,"1010".$val[0].$val[1].$val[2].$val[3].$val[4].$val[5].$val[6]." \n"); // no se procesa
    $val = fgets( $f, 30);
    $ped = 0;
    // inviamo codice articoli e quantità
    while(!feof($f)){
    $ped = $ped +1 ;
    $pal2 = split("?",$val);
    if(strlen($pal2[1]) == 0) $pal2[1] = "0001"; // se è zero lo cambia a 1. Ordine minimo
    if(strlen($pal2[1]) == 1) $pal2[1] = "000".$pal2[1];
    if(strlen($pal2[1]) == 2) $pal2[1] = "00".$pal2[1];
    if(strlen($pal2[1]) == 3) $pal2[1] = "0".$pal2[1];
    fwrite($conexion,"1020000000".$pal2[0]."0".$pal2[1]."\n");
    $val = fgets( $f, 30);
    }
    fwrite($conexion,"10500000000000000000\n");
    fwrite($conexion,"0199\n");
    set_time_limit(50);
    sleep(4);
    fclose($f);

    // Restituisce un messaggio se l'articolo non è disponibile
    $val = fread($conexion,44);
    $val = fread($conexion,74);

    $comp = substr($val,0,4);
    //fclose($conexion);

    if(strcmp($comp,"2010") == 0){
    $fin = 1;
    while($fin == 1){
    $val = fread($conexion,4);
    if(strcmp($val,"0199") == 0){
    $fin = 0;
    }
    if(strcmp($val,"2011") == 0){
    $val = fread($conexion,52);
    }
    if(strcmp($val,"2015") == 0){
    $val = fread($conexion,46);
    $articulo = substr($val,6,6);
    $cpedida = substr($val,14,3);
    $cservida = substr($val,14,3) - substr($val,18,3);
    $incidencia = substr($val,29,2);
    if(strcmp($incidencia,"36") == 0) $incidencia = "Stock insufficiente";
    if(strcmp($incidencia,"01") == 0) $incidencia ="Esaurito";
    if(strcmp($incidencia,"11") == 0) $incidencia ="Fuori Catalogo";
    if(strcmp($incidencia,"04") == 0) $incidencia ="Codice sconosciuto";
    if(strcmp($incidencia,"10") == 0) $incidencia ="Non invia il fabbricante";
    if(strcmp($incidencia,"00") != 0 ){
    ?>
    <tr>
    <td><?php echo $articulo; ?></td>
    <td><?php echo $cpedida; ?></td>
    <td><?php echo $cservida; ?></td>
    <td><?php echo $incidencia; ?></td>

                      </tr> 
       
                <?php 
                } 
            $val = ""; 
            $articulo = "";  
            $cpedida = ""; 
            $cservida =""; 
            $incidencia = ""; 
        } 
    } 
    

    }else {
    echo "Non siamo stati in grado di verficare lo stock disponibile. Ci scusiamo per il disagio.";
    }
    fclose($conexion);
    ?>[/PHP]

    Il codice legge un file con questa struttura e lo invia a un concentratore che lo processa per l' erp.

    
    9901585??
    000018?3?
    000019?2?