Pagina 1 di 2
PHP: strano comportamento di getimagesize [risolto]
Inviato: dom 6 set 2009, 9:41
da aschenaz
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...

Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 10:11
da conraid
a me sinceramente funziona normalmente, però io ho php5.3 nel mio pc
puoi postare il codice che utilizzi?
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 11:33
da aschenaz
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";
}
}
}
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 11:41
da conraid
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?
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 11:57
da targzeta
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
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:00
da aschenaz
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...
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:03
da conraid
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
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:04
da targzeta
conraid ha scritto:...no, è un html errato
Sicuro? A me la validazione w3c non ha mai dato problemi.
Emanuele
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:05
da conraid
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
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:11
da conraid
spina ha scritto:conraid ha scritto:...no, è un html errato
Sicuro?
sì
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
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:15
da conraid
conraid ha scritto:spina ha scritto:conraid ha scritto:...no, è un html errato
Sicuro?
sì
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
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:18
da targzeta
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
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:27
da aschenaz
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.
Re: PHP: strano comportamento di getimagesize
Inviato: dom 6 set 2009, 12:30
da conraid
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
Re: PHP: strano comportamento di getimagesize [risolto]
Inviato: dom 6 set 2009, 12:39
da targzeta
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