Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21

Discussione: Consiglio su PDO

  1. #11
    Grazie Marino sei un tesoro

  2. #12
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    sqlPDO.zip
    questa sera, non mi ama, quindi posto il file

    come promesso una serie di esempi con query "mirate" e con query "generiche"

    se hai un db di test puoi creare la tabella (commento) che trovi nello script e poi eseguirlo

    attento ad inserire le definizioni corrette del pdo per mysql (io uso ms sql)

    successivamente puoi estendere la classe con tutte le funzioni che ti "garbano"

    ciao
    Marino

  3. #13
    Grazie 1000

  4. #14
    non voglio criticare, sia chiaro, ma voglio fare un appunto per chi viene a leggere questo 3D, al fine di evitare confusione in futuro:

    Non sindacando sulla bontà e la funzionalità dello script, quello non è OOP ma è uno "scripting" travestito da classe. Quindi non vedetelo come esempio in tal senso.

    @marino51: una prima miglioria, se ti interessa, sarebbe quella di togliere intanto l'uso di global in MyLog e MyError e togliere in quest'ultima il die sostituendolo con il throw di una eccezione.

    Ad averci tempo sarebbe carino partire da questo script per far vedere come evolverlo
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    Non sindacando sulla bontà e la funzionalità dello script, quello non è OOP ma è uno "scripting" travestito da classe. Quindi non vedetelo come esempio in tal senso.
    infatti non parlo mai di OOP, non ne ho ancora capito la reale validità, a me interessa la funzionalità pur con la non ripetitività del codice ottenuta con le funzioni

    @marino51: una prima miglioria, se ti interessa, sarebbe quella di togliere intanto l'uso di global in MyLog e MyError e togliere in quest'ultima il die sostituendolo con il throw di una eccezione.
    MyErr è una funzione a cui si arriva solo quando, (spero), di riconoscere tentativi di hacker quindi mi interessa ricevere una mail, (vedi include commentata nel post, ma operativa in realtà),
    il die è per me la naturale conseguenza, ovvero MyErr non deve mai essere chiamata.
    anche la funzione "handle_sql_errors" non dovrebbe mai essere chiamata nell'ambiente produttivo, se dovesse succedere, di nuovo mi spedisco una mail e interrompo la sessione

    "global $swN;" è il nome dello script che viene passato per tutti i messaggi, log compresi

    Ad averci tempo sarebbe carino partire da questo script per far vedere come evolverlo
    it would be very nice, 100 % of my time ...
    Ultima modifica di marino51; 16-04-2015 a 14:31

  6. #16
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    ps,
    Codice PHP:
      public function MyErr($text)
      {
        global 
    $swN;
        
    error_log($swN." ".$text0);
        require_once 
    NS('Imailsoliderr');
        
    logoff();
        print 
    "ERRORE INATTESO, contatta l'amministratore del sistema";
        die;
      } 
    recentemente ho rafforzato "il concetto" con un logoff che elimina tutte le super globals et similia

  7. #17
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    sarebbe quella di togliere intanto l'uso di global in MyLog e MyError
    fatto, la prossima (escludendo per ora il "die") ?

  8. #18
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Se è di aiuto, in passato ho avuto questo scambio di messaggio con Santino.
    Insieme abbiamo implementato il pattern Observer con il relativo listerner e dispatch in maniera molto semplice.

    http://forum.html.it/forum/showthrea...9&pagenumber=2

    In particolare è utile per la gestione dei log, e puoi aggiungere tutti i metodi che vuoi.
    Invio tramite mail, log txt, retun html....

    Io l'ho trovato molto utile e anche se molti lo considerano solo didattico io l'ho integrato/modificato con molta soddisfazione.

    Ciao
    Paolo
    Che mestiere difficile.....essere da soli ancora di più

  9. #19
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Quote Originariamente inviata da marino51 Visualizza il messaggio
    MyErr è una funzione a cui si arriva solo quando, (spero), di riconoscere tentativi di hacker
    Piccolo appunto.

    La funzione MyErr non ci si arriva solo quando ci sono tentativi hacker, oltre al fatto che non ho capito bene cosa intendi come attacchi hacker.

    La funzione MyErr viene utilizzata per gli errori PDO (Bhe li serve solo a controllare il numero di parametri).

    Per prevenire i possibili attacchi sql injection e Cross-site scripting ci sono le funzioni apposta e metodi
    BindParameter di PDO, htmlspecialchars() e htmlentities().

    Poi la mia conoscenza in ambito di sicurezza si ferma qui.
    Che mestiere difficile.....essere da soli ancora di più

  10. #20
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    nella classe che ho postato, ci sono 3 funzioni che nella versione "produttiva" sono,
    Codice PHP:
      public function MyLog($text)
      {
        return;
        
    error_log($this->SWN." ".$text0);
      }  
      public function 
    MyErr($text)
      {
        
    error_log($this->SWN." ".$text0);
        require_once 
    NS('Imailsoliderr');
        
    logoff();
        print 
    "ERRORE INATTESO, contatta l'amministratore del sistema";
        die;
      }
      private function 
    handle_sql_errors($sql$e)
      {
        if (
    $this->inTransaction$this->pdo->rollBack();
        
    error_log("SQL cmd    : ".$sql0);
        
    error_log("error code : ".$e->getCode(), 0);
        
    error_log("error info : ".$e->getMessage(), 0);
        require_once 
    NS('Imailsqlerr');
        
    logoff();
        print 
    "ERRORE INATTESO, contatta l'amministratore del sistema";
        die;
      } 
    come vedi myLog è di fatto disabilitata, la utilizzo quando devo fare debug degli script che la richiamano,

    ho cercato di proteggere (spero) i vari script con accorgimenti "anti intrusione",quando mi accorgo che qualcosa non va, viene attivata la funzione myErr che invia mail e interrompe, quindi l'aspettativa è che non sia mai richiamata
    la terza gestisce le segnalazioni di errore delle query, anche in questo caso l'aspettativa è che non sia mai chiamata perché il debug è stato fatto in fase di sviluppo, quindi se dovesse essere richamata si tratta di un errore "grave", non certo imputabile ad errore di sintassi o simili

    il codice non è sicuramente OOP ma è contenuto al minimo (facile e con meno possibilità di errore) e dovrebbe essere scritto in maniera da essere leggibile dai più, non solo dai "guru" cosa importante quando si lavora in un team di persone con livelli di conoscenza diversificati
    Ultima modifica di marino51; 17-04-2015 a 13:29

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