PDA

Visualizza la versione completa : Parse error


Mokuchan
26-11-2007, 22:58
Salve a tutti, sono nuova e questo è il mio primo post! :ciauz:
Allora... Ho creato una gallery in php, che in locale funziona perfettamente, ma quando la vado a caricare da quest'errore:

"Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /web/htdocs/www.innocentmidnight.com/home/Provaphpgallery/doujinshi.php on line 9 "

questo è il codice:

<?php
class Galleria{
var $pagtrad;
var $pagtot;
var $oriname;
var $tradname;
var $genere;
var $nomebreve;
function __construct($a,$b,$c,$d,$e,$f){
$this->pagtrad=$a;
$this->pagtot=$b;
$this->oriname=$c;
$this->tradname=$d;
$this->genere=$e;
$this->nomebreve=$f;
}
public function selezionadoujinshi(){
echo '<p align="left">

Titolo doujinshi:'.$this->oriname.'

Titolo tradotto:'.$this->tradname.'

Numero pagine:'.$this->pagtot.'

Stato traduzione:';
if($this->pagtot > $this->pagtrad){
echo 'in corso...';}
else if($this->pagtot = $this->pagtrad){
echo 'completo';}
echo '
Genere:'.$this->genere.'

Riassunto:

Vai al doujinshi! (doujin.php?dou='.$this->nomebreve.')
</p>';
}
}

?>

E' il primo script php che creo, ma sinceramente per quanto lo guardi non riesco a trovare l'errore, tanto più che come detto prima in locale funziona perfettamente!
Se servisse uso Rapid PHP 2007!

Grazie mille in anticipo

franco921
26-11-2007, 23:18
Credo che il problema sia dovuto al fatto che in remoto hai una versione di php diversa da quella che usi in locale. Il costruttore di class __construct() è stato introdotto in php5, forse sul server c'è php4. Se è così, il costruttore deve essere dichiarato con lo stesso nome della classe

function NomeClasse($a,$b,$c,$d,$e,$f){
$this->pagtrad=$a;
$this->pagtot=$b;
$this->oriname=$c;
$this->tradname=$d;
$this->genere=$e;
$this->nomebreve=$f;
}

Così dovrebbe funzionare sia con php4 che con php5.
Per sapere la versione di php che è installata, guarda la funzione phpinfo().

Mokuchan
26-11-2007, 23:24
La versione è la 4.4.7

Dopo aver postato il messaggio avevo avuto la stessa idea però anche mettendo

<?php
class Galleria{
var $pagtrad;
var $pagtot;
var $oriname;
var $tradname;
var $genere;
var $nomebreve;
function Galleria($a,$b,$c,$d,$e,$f){
$this->pagtrad=$a;
$this->pagtot=$b;
$this->oriname=$c;
$this->tradname=$d;
$this->genere=$e;
$this->nomebreve=$f;
}

Da lo stesso identico errore! Ho anche provato a mettere public function ma non funziona...

franco921
27-11-2007, 00:05
Scusa, ho guardato solo la linea dove dava l'errore, e non ho fatto caso alla dichiarazione degli attributi che precedono il costruttore... invece di var, prova a dichiararli con "public" oppure "private", a seconda della visibilità che vuoi dargli.

Mokuchan
27-11-2007, 00:17
Niente :cry:

"Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /web/htdocs/www.innocentmidnight.com/home/Provaphpgallery/doujinshi.php on line 3"

Ora la linea è diventata quella delle variabili!

Mokuchan
27-11-2007, 00:22
Ho trovato la soluzione levando l'attributo public dalle funzioni e lasciando solo function... Ma come mai i server usano ancora php4? Quando passeranno al 5?

Grazie mille per l'aiuto!

franco921
27-11-2007, 00:26
Toglia public da:

public function selezionadoujinshi(){

Che sia la volta buona??? :unz:

franco921
27-11-2007, 00:28
Ci sei arrivato prima!!!! Credo che server con php4 saranno duri a morire, per un bel pò di tempo ancora... Comunque, cerca di avere l'ambiente di sviluppo locale uguale a quello remoto, in modo da evitare brutte sorprese.

Loading