Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Differenze di comportamento PHP 4.3.9 tra WinXP e Linux

    Sto sviluppando un sito con php 4.3.9 su un PC WinXP (PHP gira come servizio di Apache), il server sul quale viene fatto l'upload è Linux, due funzioni non girano correttamente sul server Linux:

    - setcookie()

    - alcune funzioni della libreria GD (in entrambi casi è installata la versione "bundled (2.0.28 compatible)": la funzione getimagesize() sembra andare in entrambi i casi e almeno una tra le funzioni magecreatetruecolor(), imagecopyresampled(), imagejpeg() non funzionano.

    Qualcuno mi sa dare una dritta (mentre riguardo tutto il materiale al riguardo?
    Grazie

  2. #2
    mai avuto completamente un solo problema...

    per quanto riguarda la funzione cookie...dipende cosa gli dai in pasto...xche se utilizzi la funzione time e l'orologio di sistema non è sincronizzato col tuo rincretinisce tutto...tanto che in queste occasioni o si usa lo unix timestamp (che è GMT) oppure si manda una data completa, ma in formato GMT, quindi per questo è meglio che posti il codice

    per le GD....guarda...ho scritto TANTO codice che le usa...e non mai avuto problemi...se lavori con i file...fai attenzione a maiuscole\minuscole xche SOLO per windows un nome di file che contiene tutti i caratteri maiuscoli e uguale a uno che contiene tutti i caratteri minuscoli...in pratica se fai un file...

    Ciccio
    CiCCCiO
    CICCIO
    cicCiO
    cICCIO

    e cosi via...windows li vede come uguali, TUTTI gli altro SO, ovviamente no (xche effettivamente sono diversi)
    quindi il problema magari potrebbe derivare da questo
    in generale, usa SOLO caratteri piccoli e te ne esci dalla malattina ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    1) setcookie
    .. ho trovato l'errore
    setcookie("stile","bl",time()+(3600*24*30),"/",$_SERVER["HTTP_POST"],0);

    al posto di $_SERVER["HTTP_POST"] avevo messo $_SERVER["REMOTE_ADDR"]; in locale è la stessa cosa ma naturalmente sono due indirizzi molto diversi

    2) uso solo le minuscole

    la cosa che mi fa impazzire è che la funzione getimagesize() lanciata come segue mi restituisce width/height


    $src_file = "http://".$_SERVER["HTTP_HOST"]."/test/".$immagine ;
    $imginfo = getimagesize($src_file);
    $srcwidth = $imginfo[0];
    $srcheight = $imginfo[1];

    ne sono certo perché la lancio prima della funzione che crea il thumbnail e visualizzo le dimensioni nella pagina HTML

    Il resto sembra non funzionare:

    così lancio la funzione

    echo "<img src=\"scripts/itthumb.php?src=$img&whmax=$maxdim\" border=\"0\" width=\"$dest_width\" height=\"$dest_height\">";


    FUNZIONE PHP:

    $it_gif = 1;
    $it_jpg = 2;

    $immagine=$_GET["src"];

    $src_file = "http://".$_SERVER["HTTP_HOST"]."/test/".$immagine ;

    $destmax = (int)$_GET["whmax"];


    // inizio procedura

    $imginfo = getimagesize($src_file);
    $srcwidth = $imginfo[0];
    $srcheight = $imginfo[1];


    if ($srcheight < $srcwidth)
    {
    $destwidth = $destmax;
    $destc = $destwidth * ($srcheight / $srcwidth);
    $destheight = (int)$destc;
    } else {
    $destheight = $destmax;
    $destc = $destheight * ($srcwidth / $srcheight);
    $destwidth = (int)$destc;
    }

    if ($imginfo[2] == $it_jpg )
    {
    $src_img = imagecreatefromjpeg($src_file);
    }
    if ($imginfo[2] == $it_gif )
    {
    $src_img = imagecreatefromgif($src_file);
    }

    $dst_img =imagecreatetruecolor( $destwidth, $destheight);
    imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destwidth, (int)$destheight, $srcwidth, $srcheight);

    if ($imginfo[2] == $it_jpg )
    {
    imagejpeg($dst_img);
    }
    if ($imginfo[2] == $it_gif )
    {
    imagegif($dst_img);
    }
    imagedestroy($src_img);
    imagedestroy($dst_img);

    ?>

  4. #4
    $src_file = "http://" . $_SERVER["HTTP_HOST"] . "/test/" . $immagine;
    l'errore quasi sicuramente è qui
    usando questo percorso obblighi php a scaricare il file dal web, quando, invece, avendolo in locale potresti accederci direttamente

    usa questa
    $src_file = $_SERVER['DOCUMENT_ROOT'] . '/test/' . $immagine;
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    ti ringrazio comunque per il consiglio, ma la mia funzione ancora non gira

    ho sostituito il tag <a> come segue
    echo "<a href=\"http://$_SERVER[HTTP_HOST]/test/$img\">";
    ed ho potuto verificare che il collegamento alle immagini funziona.

  6. #6
    Per quanto ho potuto verificare, l'istruzione
    $src_img = imagecreatefromjpeg($src_file);
    restituisce un errore

  7. #7
    che errore restituisce?
    l'unico parametro che si passa...è la path ^^
    e quindi l'unica cosa errata può essere solo la path che riguarda quella riga che ti ho postato prima ^^

    da
    $src_file = $_SERVER['DOCUMENT_ROOT'] . '/test/' . $immagine;
    $imginfo = getimagesize($src_file);

    a
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Suppongo tu abbia ragione, ma non riesco a risolvere l'errore.

  9. #9
    dicci cosa ci dice ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.