PHP: strano comportamento di getimagesize [risolto]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
aschenaz
Staff
Staff
Messaggi: 4541
Iscritto il: mer lug 28, 2004 0:00
Nome Cognome: Nino
Slackware: current 64bit
Kernel: as in current
Desktop: XFCE
Località: Reggio Calabria
Contatta:

PHP: strano comportamento di getimagesize [risolto]

Messaggioda aschenaz » dom set 06, 2009 9:41

Da quando ho fatto l'upgrade, noto in locale (in remoto è ok) uno strano
comportamento di getimagesize: in una pagina in cui ci sono diverse
istanze della funzione, per la prima funziona, per le altre, invece, mi
restituisce questo errore:

Codice: Seleziona tutto

Warning: getimagesize(ban/video.jpg) [function.getimagesize]: failed to open stream: Permission denied in ...

I permessi li ho persino portati a 777 e non è cambiato nulla.
Da cosa potrebbe dipendere?
La cosa strana è (ripeto) che la prima istanza della pagina funziona
perfettamente... :roll:

Avatar utente
conraid
Staff
Staff
Messaggi: 12689
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda conraid » dom set 06, 2009 10:11

a me sinceramente funziona normalmente, però io ho php5.3 nel mio pc
puoi postare il codice che utilizzi?

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4541
Iscritto il: mer lug 28, 2004 0:00
Nome Cognome: Nino
Slackware: current 64bit
Kernel: as in current
Desktop: XFCE
Località: Reggio Calabria
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda aschenaz » dom set 06, 2009 11:33

Praticamente sono istanze di questo metodo, che, in base alle associazioni
pagine<->banner, interroga il banner relativo alla posizione passata, ne calcola
le dimensioni e, se si tratta di uno .swf, lo visualizza come tale, altrimenti
lo visualizza come immagine statica. Di sicuro, si tratterà di qualche problema
di configurazione di apache o di php...

Codice: Seleziona tutto

function banner($p,$pos=1) {
      $pid=$this->onefselection("pagine","ID","WHERE Nome='$p'");
      $ba=$this->onefselection("banner_assoc","Bannerid","WHERE Paginaid='$pid' AND Posizione='$pos'");
      if($ba) {
         $ban=$this->onerselection("banner","*","WHERE ID='$ba'");
         if($ban) {
            $bandir=C_BAN;
            $banf=$bandir.$ban->Banner;
            list($width, $height) = getimagesize("$banf");
            $banalt=stripslashes($ban->Descrizione);
            $ban->URL!="" ? $banurlopen="<a href=\"http://$ban->URL\">" : $banurlopen="";
            $ban->URL!="" ? $banurlclose="</a>" : $banurlclose="";
            if(stristr(end(explode(".",$banf)),"swf")) echo "
               <object type=\"application/x-shockwave-flash\" width=\"$width\" height=\"$height\" data=\"$banf\">
                  <param name=\"flashvars\" value=\"foo=bar\" />
                  <param name=\"movie\" value=\"$banf\" />
                  <param name=\"quality\" value=\"high\" />
                  <param name=\"scale\" value=\"exactfit\" />
                  <param name=\"bgcolor\" value=\"#ffffff\">
                  alt : $banurlopen$banalt$banurlclose
               </object>";
            else echo "
                  $banurlopen<img alt=\"$banalt\" src=\"$banf\" width=\"$width\" height=\"$height\" />$banurlclose\n";
         }
      }
   }

Avatar utente
conraid
Staff
Staff
Messaggi: 12689
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda conraid » dom set 06, 2009 11:41

intanto non vedo il motivo di usare getimagesize("$banf"), togli pure le virgolette, anche se l'errore non è certo qui
così come non mi piacciono quei echo " con poi l'escape, meglio ' '.$var.'', etc... ma qui si va gusti

le immagini sono tutte nella stessa directory?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6362
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: PHP: strano comportamento di getimagesize

Messaggioda targzeta » dom set 06, 2009 11:57

conraid ha scritto:...così come non mi piacciono quei echo " con poi l'escape, meglio ' '.$var.'', etc... ma qui si va gusti..
Si può anche usare echo " però usare il ' per fare l'escape in html, così verrebbe:

Codice: Seleziona tutto

echo "
 ...
<param name='movie' value='$banf' />
..."
Dovrebbe andare uguale (anche se sarebbe meglio un ${banf}), ma queste sono piccolezze che non c'entrano molto con il problema

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4541
Iscritto il: mer lug 28, 2004 0:00
Nome Cognome: Nino
Slackware: current 64bit
Kernel: as in current
Desktop: XFCE
Località: Reggio Calabria
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda aschenaz » dom set 06, 2009 12:00

conraid ha scritto:intanto non vedo il motivo di usare getimagesize("$banf"), togli pure le virgolette, anche se l'errore non è certo qui
così come non mi piacciono quei echo " con poi l'escape, meglio ' '.$var.'', etc... ma qui si va gusti

le immagini sono tutte nella stessa directory?

Si, originariamente non c'erano le virgolette: le ho aggiunte per fare delle
prove.
Del fatto degli escape avevamo parlato: è che sono abituato così... :)
Si, i banner (jpg o swf che siano) sono tutti nella directory ban...

Per quanto riguarda gli swf, so che per funzionare ha bisogno che il php sia
compilato col supporto statico alle zlib, ma il problema me lo sta dando
anche con le semplici immagini...

Avatar utente
conraid
Staff
Staff
Messaggi: 12689
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda conraid » dom set 06, 2009 12:03

spina ha scritto:
conraid ha scritto:...così come non mi piacciono quei echo " con poi l'escape, meglio ' '.$var.'', etc... ma qui si va gusti..
Si può anche usare echo " però usare il ' per fare l'escape in html, così verrebbe:

Codice: Seleziona tutto

echo "
 ...
<param name='movie' value='$banf' />
..."
Dovrebbe andare uguale (anche se sarebbe meglio un ${banf}), ma queste sono piccolezze che non c'entrano molto con il problema


no, è un html errato

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6362
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: PHP: strano comportamento di getimagesize

Messaggioda targzeta » dom set 06, 2009 12:04

conraid ha scritto:...no, è un html errato
Sicuro? A me la validazione w3c non ha mai dato problemi.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
conraid
Staff
Staff
Messaggi: 12689
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda conraid » dom set 06, 2009 12:05

ma se provi una cosa simile

Codice: Seleziona tutto

<?php
$filename = './foto01.jpg';
list($width, $height, $type, $attr) = getimagesize($filename);
echo $filename.'-'.$type.'-'.$attr.'-'.$width.'-'.$height."\n";

$filename = './foto02.jpg';
list($width, $height, $type, $attr) = getimagesize($filename);
echo $filename.'-'.$type.'-'.$attr.'-'.$width.'-'.$height."\n";

$filename = './foto03.jpg';
list($width, $height, $type, $attr) = getimagesize($filename);
echo $filename.'-'.$type.'-'.$attr.'-'.$width.'-'.$height."\n";


?>


naturalmente come $filename metti le immagini che hai tu, ti da sempre errore?
tanto per capire se è nella funziona in se il problema o altrove

Avatar utente
conraid
Staff
Staff
Messaggi: 12689
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda conraid » dom set 06, 2009 12:11

spina ha scritto:
conraid ha scritto:...no, è un html errato
Sicuro?




se la validazione non ti ha dato errori, hai usato una versione html del millennio scorso :-)
sinceramente il DTD di html4 non lo ricordo, ma mi sembra che già da allora fosse errato

Avatar utente
conraid
Staff
Staff
Messaggi: 12689
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda conraid » dom set 06, 2009 12:15

conraid ha scritto:
spina ha scritto:
conraid ha scritto:...no, è un html errato
Sicuro?




se la validazione non ti ha dato errori, hai usato una versione html del millennio scorso :-)
sinceramente il DTD di html4 non lo ricordo, ma mi sembra che già da allora fosse errato



html 4 sembra prendere anche ', da xhtml 1.0 no

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6362
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: PHP: strano comportamento di getimagesize

Messaggioda targzeta » dom set 06, 2009 12:18

Questo codice

Codice: Seleziona tutto

<td><input type='radio' name='ASCHE2_DEFAULT_REPOSITORY' value='gnome-slacky-12.0' /></td>
è un valido xhtml, almeno secondo w3c.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4541
Iscritto il: mer lug 28, 2004 0:00
Nome Cognome: Nino
Slackware: current 64bit
Kernel: as in current
Desktop: XFCE
Località: Reggio Calabria
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda aschenaz » dom set 06, 2009 12:27

Ok, risolto. Stranamente si erano modificati tutti i permessi dei singoli file.
Io modificavo quelli della directory e non m'ero accorto che non era una
modifica ricorsiva (bisognava spuntare il relativo checkbox - ha ragione chi
dice che non vanno usati i tool grafici per queste cose! :) ).

Grazie e scusate per l'inutile post.

Avatar utente
conraid
Staff
Staff
Messaggi: 12689
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggioda conraid » dom set 06, 2009 12:30

spina ha scritto:Questo codice

Codice: Seleziona tutto

<td><input type='radio' name='ASCHE2_DEFAULT_REPOSITORY' value='gnome-slacky-12.0' /></td>
è un valido xhtml, almeno secondo w3c.

Emanuele


il problema emanuele è che xhtml dovrebbe essere xml, e passato con xml, ed anche il w3c dice che è sbagliato passarlo come html
e se passi quel codice come application/xhtml+xml non ricevi errori di nessun tipo? e non parlo del validatore, ma del browser per esempio

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6362
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: PHP: strano comportamento di getimagesize [risolto]

Messaggioda targzeta » dom set 06, 2009 12:39

Codice: Seleziona tutto

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="it" xml:lang="it">
...
    <meta http-equiv="Content-Type" content="application/xhtml+xml" />

niente errori, nè da parte del browser nè da parte del validatore. Però in rete ho trovato documenti che sembrerebbero dire che ai ragione tu. Però che palle, se hai ragione perchè il validatore non dice nulla?

Codice: Seleziona tutto

This document was successfully checked as XHTML 1.0 Strict!

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti