Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: Classi PHP

  1. #1
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199

    Classi PHP

    Salve a tutti ragazzi, ho scritto una dannatissima classe... che però continua a darmi errore...
    è molto breve.. quindi lascio fare a voi

    Codice PHP:
    <?
    include("../class.php");
    $sql = new db();
    class 
    session{
    var 
    $key;
    $this->key $_COOKIE['session'];
    var 
    $ip;
    $this->ip getenv("REMOTE_ADDR");
    public function 
    is_logged(){
    if(
    mysql_num_rows($sql->speed_sendRequest("SELECT * FROM UTENTI WHERE uSESSION = '".$this->key."' AND uREMOTE_ADD = '".$this->ip."';")) > 0){
    return 
    true;
    }
    else{
    return 
    false;
    }
     }
      }

    $sid = new session();
    if(
    $sid->is_logged()){
    print(
    "yes");
    }
    else{
    print(
    "false");
    }
    ?>
    L'errore è il seguente
    Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION on line 6

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    $this->key = $_COOKIE['session']; e $this->ip = getenv("REMOTE_ADDR");
    va messo nel costruttore non li

  3. #3
    Credo ti occorra un bel ripasso sulle classi...
    L'operatore $this è disponibile solo all'interno di un metodo della classe e si riferisce all'oggetto instanziato.
    Come ti hanno già indicato, le assegnazioni che hai fatto con l'operatore $this, devi inserirle nel costruttore della classe, o in un altro metodo.
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  4. #4
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    mamma che tonto che sono... che brutto periodo che sto passando!
    vi ringrazio per l'aiuto... sempre disponibili! Grazie mille

  5. #5
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    perfetto... anzi no.
    Adesso ho un altro problema...
    ho modificato il codice in questo modo
    Codice PHP:
    <?
    include("../class.php");
    $connect = new db();
    class 
    session{
    var 
    $key;
    var 
    $ip;
    var 
    $sql;
    public function 
    is_logged(){
    $this->sql $_GLOBAL['connect'];
    $this->key $_COOKIE['session'];
    $this->ip getenv("REMOTE_ADDR");
    if(
    mysql_num_rows($this->sql->speed_sendRequest("SELECT * FROM UTENTI WHERE uSESSION = '".$this->ip."' AND uREMOTE_ADD = '".$this->ip."';")) > 0){
    return 
    true;
    }
    else{
    return 
    false;
    }
     }
      }

    $sid = new session();
    if(
    $sid->is_logged()){
    print(
    "yes");
    }
    else{
    print(
    "false");
    }
    ?>
    Adesso mi dice
    Fatal error: Call to a member function speed_sendRequest() on a non-object on line 12

  6. #6
    Ti avvisa che $this->sql non è un oggetto.
    La variabile php si chiama $GLOBALS, non $_GLOBAL.
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  7. #7
    Originariamente inviato da Salvy95
    $this->sql->speed_sendRequest
    Cos'è sql?..... funzione/metodo? ..... variabile/proprietà?

    Non è dichiarato da nessuna parte.... tanto quanto speed_sendRequest.

  8. #8
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    $sql è l'inizializzazione di un'altra classe (new db) che si trova nel file class.php
    EDIT: o almeno vorrei che fosse così

  9. #9
    Originariamente inviato da Salvy95
    $sql è l'inizializzazione di un'altra classe (new db) che si trova nel file class.php
    EDIT: o almeno vorrei che fosse così
    Per come l'hai scritto l'interprete PHP va a cercare un metodo o una proprietà di 'This'; quindi della classe Session.

    Dovresti fargli istanziare un nuovo oggetto 'Sql' e poi utilizzarlo.

    Tipo
    Codice PHP:
    $sql = new Sql
    Dopodiché la utilizzi.... senza 'this', che è implicito.

    PS - Non sono uno che se ne intende di classi... vado a memoria.

  10. #10
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    ancora non riesco :'(
    neppure io me ne intendo di classi...
    c'è qualcuno che potrebbe dirmi dove piazzare quell' "sql"?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.