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: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

PHP: strano comportamento di getimagesize [risolto]

Messaggio 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... :roll:

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

Re: PHP: strano comportamento di getimagesize

Messaggio da conraid »

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: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggio 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";
			}
		}
	}

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

Re: PHP: strano comportamento di getimagesize

Messaggio 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?

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

Re: PHP: strano comportamento di getimagesize

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggio 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...

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

Re: PHP: strano comportamento di getimagesize

Messaggio 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

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

Re: PHP: strano comportamento di getimagesize

Messaggio da targzeta »

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

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

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

Re: PHP: strano comportamento di getimagesize

Messaggio 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

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

Re: PHP: strano comportamento di getimagesize

Messaggio da conraid »

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: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggio da conraid »

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: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: PHP: strano comportamento di getimagesize

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: PHP: strano comportamento di getimagesize

Messaggio 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.

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

Re: PHP: strano comportamento di getimagesize

Messaggio 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

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

Re: PHP: strano comportamento di getimagesize [risolto]

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Rispondi