Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2023
    Messaggi
    4

    Errore visualizzazione sito

    Da un paio di mesi non riesco ad accedere al mio sito cantone.altervista.org, creato con il cms e107, dove compare il seguente messaggio
    Parse error: syntax error, unexpected 'new' (T_NEW) in /membri/cantone/class2.php on line 143
    Considerato che da tempo non apporto alcuna modifica al sito, qualcuno mi può aiutare a capire cosa può essere successo? Grazie mille!

  2. #2
    Nel file class2.php alla riga 143 c'è un "new qualcosa" che non è corretto. Forse manca un ; nell'istruzione precedente o qualcosa di simile.
    Perchè ci sia non è possibile saperlo senza avere un quadro generale ma, a occhio, potrebbe essere un problema di tema o simile?
    Se riesci a scriverci le righe interessate di quel file sarebbe meglio, tipo dalla 120 alla 160

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da cantone Visualizza il messaggio
    ...
    Considerato che da tempo non apporto alcuna modifica al sito, qualcuno mi può aiutare a capire cosa può essere successo? Grazie mille!
    Potrebbe anche essere che sul server abbiano cambiato versione di PHP ed hai istruzioni con codice che era deprecato e sulla versione nuova non è più supportato.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2023
    Messaggi
    4
    Quote Originariamente inviata da Dascos Visualizza il messaggio
    Nel file class2.php alla riga 143 c'è un "new qualcosa" che non è corretto. Forse manca un ; nell'istruzione precedente o qualcosa di simile.
    Perchè ci sia non è possibile saperlo senza avere un quadro generale ma, a occhio, potrebbe essere un problema di tema o simile?
    Se riesci a scriverci le righe interessate di quel file sarebbe meglio, tipo dalla 120 alla 160
    Intanto grazie per avermi risposto. Ti ricopio le righe dalla 120 alla 160:


    if(isset($db_debug) && is_object($db_debug)) {
    $db_debug->Mark_Time('Start: Init ErrHandler');
    }


    // e107_config.php upgrade check
    if (!$ADMIN_DIRECTORY && !$DOWNLOADS_DIRECTORY) {
    message_handler("CRITICAL_ERROR", 8, ": generic, ", "e107_config.php");
    exit;
    }


    @require_once(e_HANDLER.'traffic_class.php');
    $eTraffic=new e107_traffic; // We start traffic counting ASAP
    $eTraffic->Calibrate($eTraffic);


    define("MPREFIX", $mySQLprefix);


    e107_require_once(e_HANDLER."mysql_class.php");
    e107_require_once(e_HANDLER.'e_parse_class.php');


    $tp = new e_parse;


    $sql =& new db;
    $sql2 =& new db;


    $sql->db_SetErrorReporting(FALSE);


    $sql->db_Mark_Time('Start: SQL Connect');
    $merror=$sql->db_Connect($mySQLserver, $mySQLuser, $mySQLpassword, $mySQLdefaultdb);
    $sql->db_Mark_Time('Start: Prefs, misc tables');


    require_once(e_HANDLER.'admin_log_class.php');
    $admin_log = new e_admin_log();


    if ($merror == "e1") {
    message_handler("CRITICAL_ERROR", 6, ": generic, ", "class2.php");
    exit;
    }
    else if ($merror == "e2") {
    message_handler("CRITICAL_ERROR", 7, ": generic, ", "class2.php");
    exit;
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2023
    Messaggi
    4
    Può essere! Ma se hai ragione tu che posso fare per non perdere tutto?
    Grazie per avermi risposto.

  6. #6
    codice:
    $sql =& new db;
    $sql2 =& new db;
    Queste sono le due righe che ti creano problemi, direi....
    Togli il "&", che non capisco perchè ci siano

  7. #7
    Aggiungo...quel tipo di codifica, cioè creare "&new classe" anzichè "new classe", risale ancora al php < 5.3, residuato bellico da php 4, e, da php > 7.0, è stata proprio tolta!

  8. #8
    Ancora....scusate ma mentre analizzo mi vengono nuove idee in merito...

    Correggere quelle due righe di codice potrebbe non bastare, trattandosi di un framework. Probabilmente ci sono altre righe sparse nel framework e107 che hanno lo stesso problema e dovresti quindi fare un try&fix man mano, correggendo file per file ogni volta che ti salta fuori un errore simile.

    Puoi però fare una robina, se sei in grado di usare la shell di Linux:
    codice:
    find /var/www/tuo_sito.it/web/ -type f -name \*.php | xargs grep [COLOR=var(--highlight-variable)]'&new'[/COLOR] | wc -l
    Questo ti trova ogni occorrenza di "&new" nei sorgenti del tuo sito. Ovviamente dovrai adattare il percorso /var/ww/ecc in base al tuo.
    Quasi sicuramente ti restituirà un numero di righe, a significare che ci sono altri pezzi di codice da sistemare. Lo possiamo quindi fare in modo semplice con
    codice:
    find /var/www/tuo_sito.it/web/ -type f -name \*.php | xargs sed -i [COLOR=var(--highlight-variable)]'s/&new/new/g'[/COLOR]
    e

    codice:
    find /var/www/tuo_sito.it/web/ -type f -name \*.php | xargs sed -i [COLOR=var(--highlight-variable)]'s/& new/ new/g'[/COLOR]
    :-)

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Forse fa prima ad aggiornare il framework e107. Online l'ultima versione richiede PHP da 5.7 in su, immagino quindi che si siano aggiornati.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Quote Originariamente inviata da Dascos Visualizza il messaggio
    Ancora....scusate ma mentre analizzo mi vengono nuove idee in merito...

    Correggere quelle due righe di codice potrebbe non bastare, trattandosi di un framework. Probabilmente ci sono altre righe sparse nel framework e107 che hanno lo stesso problema e dovresti quindi fare un try&fix man mano, correggendo file per file ogni volta che ti salta fuori un errore simile.

    Puoi però fare una robina, se sei in grado di usare la shell di Linux:
    codice:
    find /var/www/tuo_sito.it/web/ -type f -name \*.php | xargs grep '&new'| wc -l
    Questo ti trova ogni occorrenza di "&new" nei sorgenti del tuo sito. Ovviamente dovrai adattare il percorso /var/ww/ecc in base al tuo.
    Quasi sicuramente ti restituirà un numero di righe, a significare che ci sono altri pezzi di codice da sistemare. Lo possiamo quindi fare in modo semplice con
    codice:
    find /var/www/tuo_sito.it/web/ -type f -name \*.php | xargs sed -i 's/&new/new/g'
    e
    codice:
    find /var/www/tuo_sito.it/web/ -type f -name \*.php | xargs sed -i 's/& new/ new/g'
    :-)
    Auto-correggo il post...s'è infilato nel mezzo qualche tag estraneo....

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.