• User Attivo

    tornato al lavoro...helpme please

    Ciao ragazzi,
    era da un pò di anni che non mi facevo più vedere. Ho deciso di tornare un pò al lavoro ma sono parecchio arrugginito ed il php 4.0 che avevo lasciato nel 2006 è arrivato alla versione 5.4.XX :arrabbiato:

    Voi che siete aggiornati datemi una mano. Ho installato easyphp per testare la mia nuova creazione, ho messo su la vc9 con php5.4

    Praticamente sulla index ci sono dei vari include ad altri files con funzioni, variabili....tuttavia quando nella index cerco di stampare o usare variabili dichiarate nei file inclusi in precedenza è come se queste variabili non esistessero. Ho provato a dichiararle anche come global ma non va ugualmente. Se carico però su altervista, che mi pare abbia ancora php 4 tutto funziona.

    Che succede? Php5.4 è divenuto più restrittivo? Che settings devo cambiare o come mi devo comportare con queste variabili per poterle usare?

    Grazie mille in anticipo a tutti


  • Super User

    Ciao spaccio,

    @spaccioman said:

    ed il php 4.0 che avevo lasciato nel 2006 è arrivato alla versione 5.4.XX :arrabbiato:

    Veramente siamo alla 5.5.4 stabile 😄

    @spaccioman said:

    quando nella index cerco di stampare o usare variabili dichiarate nei file inclusi in precedenza è come se queste variabili non esistessero.

    Nulla è cambiato al riguardo.

    Attenzione però: queste variabili sono dichiarate all'interno di funzioni?

    Puoi postare/mp il codice?


  • User Attivo

    Vedi in continua ad evolversi ed io a restare indietro :o, comunque supponiamo che il file index.php includa in ordine il file 1 con i dati del servers ed altro in delle variabili
    [PHP]<?php//dati server sql$host="127.0.0.1";$login="root";$pssw="";$database="agenda_crew";//da qui settare la durata della sessione in minutidefine('session_time','15');//da qui settare i giorni di latenza richiesta attivazione account in giornidefine('account_act_time','1');//grandezza foto uploaddefine('MAX_FILE_SIZE','2048000');global $link, $database, $host, $login, $pssw;
    ?>[/PHP]

    poi ci sia il file 2 con le varie funzioni che verrano utilizzate
    [PHP]<?php
    //funzioni ricorrenti
    //funzione apertura connessione DB
    function connect_db() {
    //global $link, $database, $host, $login, $pssw;
    $GLOBALS['link'] = mysql_connect($GLOBALS['host'],$GLOBALS['login'],$GLOBALS['pssw'])or die("Non riesco a connettermi ". mysql_error()."/n");
    mysql_select_db($database,$link)or die("Non riesco a selezionare il DataBase ".$database."/n"); }
    //funzione chiusura connessione
    DBfunction kill_db() {
    global $link;
    mysql_close($link);
    }
    ?>[/PHP]

    ed infine il file 3 che esegue le funzioni sopra con le variabili sopra
    [PHP]<?
    connect_db();
    ?>[/PHP]

    mi da errore alla terza funzione, stesso codice su php4 funziona.....che sarà mai? Permessi? Grazie


  • User Attivo

    in realtà ho trovato il problema, nel nuovo php il tag iniziale deve essere per forza > <?php e non solo > <? quindi tutto il file generava errore. Adesso però il problema si è spostato sulle variabili di sessione.

    Nel seguente pezzo di codice si controlla che esista l'utente nella tabella connessi e quindi si continua a dar vita alle variabili di sessione e si aggiorna la tabella connessi che consente all'utente di restare loggato
    [PHP]//da qui funzione di loginsession_start();
    $sql_ceck = "SELECT id FROM connessi WHERE id_user='".$_SESSION['id']."'";
    if (($_SESSION['utente'] != "")&(count_re($sql_ceck) != 0)){
    //aggiorna record nella tab connessi
    mysql_query("UPDATE connessi SET last_act=NOW() WHERE id_user='".$_SESSION['id']."'")or die("Aggiorno tabella connessi");
    }else{
    $_SESSION = array();
    session_unset();
    session_destroy();
    }
    [/PHP]

    purtroppo il broswer mi restituisce questo errore

    **Notice: Undefined index: id in **C:\Users\Fiodena\Documents\web\agendacrew\lib\buut.php on line **34

    Notice: Undefined index: utente in C:\Users\Fiodena\Documents\web\agendacrew\lib\buut.php on line 35******

    ma è normale che le variabili di sessione id ed utente non esistano, l'utente non ha ancora effettuato il login, e se prima funzionava....adesso con php5.5 non funziona più...:bho:


  • ModSenior

    Ciao,
    ma il session_start è presente in quella pagina? Purtroppo se posti solo 5 righe, di una pagina che è di una cinquantina è impossibile capirci più di tanto.
    Stai utilizzando un sacco di funzioni deprecate, stai anche usando & invece di &&.


  • User Attivo

    Si,
    il session_start c'era ma alla fine ho risolto mettendo anziché session_start quest'altra riga

    if (session_id() === "") { session_start(); }