Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. enricocarli
    3. Post
    E

    enricocarli

    @enricocarli

    • Profilo
    • Chi segue 0
    • Da chi è seguito 0
    • Discussioni 35
    • Post 120
    • Migliore 0
    • Gruppi 0
    Iscrizione Ultimo Accesso
    Località vicenza Età 40
    0
    Reputazione
    120
    Post
    0
    Visite al profilo
    0
    Da chi è seguito
    0
    Chi segue
    User Attivo

    Post creati da enricocarli

    • RE: Plugin per custom fields e widget

      acf è il miogliore secondo me!

      postato in CMS & Piattaforme Self-Hosted
      E
      enricocarli
    • consiglio classe php

      Salve a tutti,

      sto scrivendo una classe che mi aiuta a fare semplici operazioni sul db, tipo scrivere, modificare o eliminare record, paginazione dei dati etc. è ancora work in progress, la potete vedere qui:

      bitbucket.org/enricocarli/hal9000/src/7aaf5f0251653690d29d703de757c4e9376bfa7f/inc/class.hal9000.inc.php?at=master&fileviewer=file-view-default

      poi la estendo

      bitbucket.org/enricocarli/hal9000/src/7aaf5f0251653690d29d703de757c4e9376bfa7f/inc/class.hal9000.extends.inc.php?at=master&fileviewer=file-view-default

      modificando/aggiungendo quello che mi serve, l'idea è di gestire più database contemporaneamente.

      uso la classe nei miei script così:

      Per inserire un record nel db
      bitbucket.org/enricocarli/hal9000/src/7aaf5f0251653690d29d703de757c4e9376bfa7f/inserire-record-nel-db.php?at=master

      Per modificarlo
      bitbucket.org/enricocarli/hal9000/src/7aaf5f0251653690d29d703de757c4e9376bfa7f/modifica-record-del-db.php?at=master&fileviewer=file-view-default

      Per eliminarlo
      bitbucket.org/enricocarli/hal9000/src/7aaf5f0251653690d29d703de757c4e9376bfa7f/elimina-record-dal-db.php?at=master&fileviewer=file-view-default

      Per paginare dati
      bitbucket.org/enricocarli/hal9000/src/7aaf5f0251653690d29d703de757c4e9376bfa7f/estrarre-dati-e-paginarli.php?at=master

      tutti i file potete vederli qui
      bitbucket.org/enricocarli/hal9000/src/7aaf5f025165?at=master

      la mia domanda è: è corretto usare le classi così?

      le visibilità delle proprietà come si usano? io le ho messe tutte "public", è corretto?

      grazie a tutti per le risposte e buon week end

      postato in Coding
      E
      enricocarli
    • RE: Consigli php

      Ciao enigma, grazie per la risposta intanto, scusa ma sono un novellino col php; scrivo php procedurale, uso le funzioni ma vorrei passare alla oop, credo sia meglio conoscere come funziona, comunque il codice sopra è un esempio, vorrei solo capire come e quando usare la oop. Grazie mille intanto e buona serata

      postato in Coding
      E
      enricocarli
    • RE: passaggio da procedurale a oop

      Perchè?

      postato in Coding
      E
      enricocarli
    • RE: Consigli php

      Anzi ancora meglio:

      [PHP]
      <?php
      class Examples{
      private $db;

          public function __construct(){
              $this->db = new mysqli('localhost', 'root', 'hal9000', 'examples');
          }
      
          public function wolly($myquery,$myfields){
              $array_query = array();
              $array_fields = explode(",", $myfields);
              $query = $this->db->query($myquery);
              $i = 0;
              while ($row = $query->fetch_array(MYSQLI_ASSOC)){
                  foreach ($array_fields as $field) {
                      $array_query*[$field] = $row[$field];
                  }
                  $i++;
              }
              return $array_query;
          }
      
          public function __destruct(){
              mysqli_close($this->db);
          }
      }
      
      class Codeigniter{
          private $db;
      
          public function __construct(){
              $this->db = new mysqli('localhost', 'root', 'hal9000', 'myapp_moto');
          }
      
          public function wolly($myquery,$myfields){
              $array_query = array();
              $array_fields = explode(",", $myfields);
              $query = $this->db->query($myquery);
              $i = 0;
              while ($row = $query->fetch_array(MYSQLI_ASSOC)){
                  foreach ($array_fields as $field) {
                      $array_query*[$field] = $row[$field];
                  }
                  $i++;
              }
              return $array_query;
          }
      
          public function __destruct(){
              mysqli_close($this->db);
          }
      }
      
      $attori = new Examples();
      echo "<pre>";
      print_r($attori->wolly('SELECT * FROM actor LIMIT 5','actor_id,fullname,last_update')); 
      echo "</pre>";
      
      $news = new Codeigniter();
      echo "<pre>";
      print_r($news->wolly('SELECT * FROM articoli LIMIT 5','id,titolo,sottotitolo'));  
      echo "</pre>";    
      

      ?>
      [/PHP]

      Così risparmio codice, meglio no?

      postato in Coding
      E
      enricocarli
    • RE: Consigli php

      Grazie mille e scusate il ritardo nella risposta; sto sperimentando con php a oggetti; un esempio: vorrei fare un blog che pesca da 2 db; ho scritto queste classi:

      myclass.php
      [PHP]
      <?php
      class Examples{
      private $db;

          public function __construct(){
              $this->db = new mysqli('localhost', 'root', 'hal9000', 'examples');
          }
      
          public function get_actors(){
              $actors = array();
              $query = $this->db->query('SELECT * FROM actor LIMIT 10');
              while ($row = $query->fetch_array(MYSQLI_ASSOC)){
                  $actors[] = array(
                      "id" => $row['actor_id'],
                      "fullname" => $row['fullname']
                  );
              }
              return $actors;
          }
      
          public function __destruct(){
              mysqli_close($this->db);
          }
      }
      
      class Codeigniter{
          private $db;
      
          public function __construct(){
              $this->db = new mysqli('localhost', 'root', 'hal9000', 'myapp_moto');
          }
      
          public function get_actors(){
              $actors = array();
              $query = $this->db->query('SELECT * FROM articoli LIMIT 10');
              while ($row = $query->fetch_array(MYSQLI_ASSOC)){
                  $actors[] = array(
                      "id" => $row['id'],
                      "titolo" => $row['titolo']
                  );
              }
              return $actors;
          }
      
          public function __destruct(){
              mysqli_close($this->db);
          }
      }
      
      $attori = new Examples();
      echo "<pre>";
      print_r($attori->get_actors());
      echo "</pre>";
      
      $news = new Codeigniter();
      echo "<pre>";
      print_r($news->get_actors());  
      echo "</pre>";    
      

      ?>
      [/PHP]

      potrei includere la classe in tutte le view, e farmi un metodo per ogni view in base a quello che mi serve? è corretta una cosa del genere secondo voi?

      grazie mille e buon week end

      postato in Coding
      E
      enricocarli
    • RE: passaggio da procedurale a oop

      Ciao Jhon92,
      ho una domanda, ma perchè estrai i dati con un metodo, e con un altro li stampi? Sicurezza?

      sto provando a scrivere delle classi, posto il codice così mi dici cosa ne pensei.

      ciao e grazie!

      [PHP]
      <?php
      class Examples{
      private $db;

          public function __construct(){
              $this->db = new mysqli('localhost', 'root', 'hal9000', 'examples');
          }
      
          public function get_actors(){
              $actors = array();
              $query = $this->db->query('SELECT * FROM actor LIMIT 10');
              while ($row = $query->fetch_array(MYSQLI_ASSOC)){
                  $actors[] = array(
                      "id" => $row['actor_id'],
                      "fullname" => $row['fullname']
                  );
              }
              return $actors;
          }
      
          public function __destruct(){
              mysqli_close($this->db);
          }
      }
      
      class Codeigniter{
          private $db;
      
          public function __construct(){
              $this->db = new mysqli('localhost', 'root', 'hal9000', 'myapp_moto');
          }
      
          public function get_actors(){
              $actors = array();
              $query = $this->db->query('SELECT * FROM articoli LIMIT 10');
              while ($row = $query->fetch_array(MYSQLI_ASSOC)){
                  $actors[] = array(
                      "id" => $row['id'],
                      "titolo" => $row['titolo']
                  );
              }
              return $actors;
          }
      
          public function __destruct(){
              mysqli_close($this->db);
          }
      }
      
      $attori = new Examples();
      echo "<pre>";
      print_r($attori->get_actors());
      echo "</pre>";
      
      $news = new Codeigniter();
      echo "<pre>";
      print_r($news->get_actors());  
      echo "</pre>";    
      

      ?>
      [/PHP]

      postato in Coding
      E
      enricocarli
    • RE: Consigli php

      Puoi postare un esempio di codice?

      postato in Coding
      E
      enricocarli
    • RE: Consigli php

      io uso molto le funzioni, diciamo che è meglio usare classi e framework, ma nel frattempo posso pubblicare le mie pagine anche se sono in php procedurale giusto?

      altra domanda, voi come strutturate le vostre applicazioni?

      io faccio così:

      nella root: index.php

      [PHP]
      <?php
      include "inc/config.php";
      include "inc/functions.php";

      if(isset($_GET['app'])){
          if (in_array("views/".$_GET['app'].".php", $views)) {
              if (in_array("app/".$_GET['app'].".php", $app)) {
                  include "app/".$_GET['app'].".php";
              }
              include "views/".$_GET['app'].".php";
          } else {
              echo "404";
          }
      } else {
          if($current_url==$base_url){
              if (in_array("app/".$default_view.".php", $app)) {
                  include "app/".$default_view.".php";
              }
              include "views/".$default_view.".php";
          } else {
              echo "404";
          }
      }
      

      ?>
      [/PHP]

      in config.php

      [PHP]
      <?php

      header('Content-Type: text/html; charset=utf-8');
      
      $views = glob('views/*.php');
      $app = glob('app/*.php');
      $default_view ="home";
      
      function dbconn($type){   
          switch($type){   
              case "myapp_moto":
                  ob_start();
                  ini_set('display_errors', 1);
                  $db1 = mysql_connect("localhost", "root", "mysql");
                  mysql_select_db("myapp_moto", $db1);
              break;   
              case "codeigniter":
                  ob_start();
                  ini_set('display_errors', 1);
                  $db2 = mysql_connect("localhost", "root", "mysql");
                  mysql_select_db("codeigniter", $db2);
              break;   
          }
      }
      

      ?>
      [/PHP]

      poi 2 cartelle "app" e "view" nella prima il codice php che estrae dati dal db e mette in un array,
      e nella seconda le view che espongono i dati.

      Secondo voi è una strada corretta? come dovrei fare se volessi usare le classi?

      grazie mille per le risposte
      buona domenica

      postato in Coding
      E
      enricocarli
    • RE: passaggio da procedurale a oop

      Grazie mille x la risposta, scusa il ritardo ma non ho ricevuto la notifica. Do un occhio al codice e se ho dubbi ti chiedo. Buon week end e grazie ancora!

      postato in Coding
      E
      enricocarli
    • RE: Consigli php

      Diciamo che per progetti complessi è meglio usare un framework?

      postato in Coding
      E
      enricocarli
    • Consigli php

      Salve a tutti,

      Sono un appassionato di php, scrivo php procedurale, non so programmare a oggetti e non so usare framework.

      La mia domanda è: pubblicare pagine web con php procedurale, è obsoleto? Sconsigliabile?

      Grazie a tutti per le risposte
      Buona serata

      postato in Coding
      E
      enricocarli
    • passaggio da procedurale a oop

      Buongiorno a tutti,

      sono un appassionato dilettante di php, quel poco che ho fatto l'ho scritto sempre con php procedurale,
      ora vorrei passare a php ad oggetti, per questo vorrei una delucidazione:

      prima scrivevo:

      [PHP]
      function utenti(){
      $array_utenti = array();
      $query_utenti = mysql_query("SELECT utenti.nome, utenti.cognome, utenti.foto, utenti.email, siti.url FROM utenti INNER JOIN utente_sito ON utenti.id = utente_sito.utente INNER JOIN siti ON siti.id = utente_sito.sito ORDER BY siti.url ASC");
      while ($row = mysql_fetch_assoc($query_utenti)): $array_utenti[] = array(
      "nome" => $row['nome'],
      "cognome" => $row['cognome'],
      "foto" => $row['foto'],
      "email" => $row['email'],
      "url" => $row['url']
      );
      endwhile;
      $utenti = array();
      foreach ($array_utenti as $utente) {
      $utenti[] = array(
      "nome" => $utente['nome'],
      "cognome" => $utente['cognome'],
      "foto" => $utente['foto'],
      "email" => $utente['email'],
      "url" => $utente['url']
      );
      }
      return $utenti;
      }
      $utenti = utenti();
      foreach ($utenti as $utente) {
      echo $utente['url']."<br />";
      echo $utente['nome']."<br />";
      echo $utente['cognome']."<br />";
      echo $utente['foto']."<br />";
      echo $utente['email']."<hr>";
      }
      [/PHP]

      ora scrivo:

      [PHP]
      class Editor{
      public function utenti(){
      $array_utenti = array();
      $query_utenti = mysql_query("SELECT utenti.nome, utenti.cognome, utenti.foto, utenti.email, siti.url FROM utenti INNER JOIN utente_sito ON utenti.id = utente_sito.utente INNER JOIN siti ON siti.id = utente_sito.sito ORDER BY siti.url ASC");
      while ($row = mysql_fetch_assoc($query_utenti)): $array_utenti[] = array(
      "nome" => $row['nome'],
      "cognome" => $row['cognome'],
      "foto" => $row['foto'],
      "email" => $row['email'],
      "url" => $row['url']
      );
      endwhile;
      $utenti = array();
      foreach ($array_utenti as $utente) {
      $utenti[] = array(
      "nome" => $utente['nome'],
      "cognome" => $utente['cognome'],
      "foto" => $utente['foto'],
      "email" => $utente['email'],
      "url" => $utente['url']
      );
      }
      return $utenti;
      }
      }
      $class_editor = new Editor();
      $utenti = $class_editor->utenti();
      foreach ($utenti as $utente) {
      echo $utente['url']."<br />";
      echo $utente['nome']."<br />";
      echo $utente['cognome']."<br />";
      echo $utente['foto']."<br />";
      echo $utente['email']."<hr>";
      }
      [/PHP]

      secondo voi è corretto?

      postato in Coding
      E
      enricocarli
    • RE: unico login per più siti

      ok grazie mille PietroR!

      postato in Coding
      E
      enricocarli
    • RE: unico login per più siti

      Se facessi in questo modo secondo voi sarebbe un sistema sicuro?

      sito primario:

      [PHP]
      <?php
      /* UTENTE 1 */
      $user_1 = "mario";
      $password_1 = "1234";
      $site1_1 = "localhost/TEST/sito1.com/";
      $site2_1 = "localhost/TEST/sito2.com/";
      $site3_1 = "localhost/TEST/sito3.com/";
      echo sha1($user_1);
      echo "<br />";
      echo sha1($password_1);
      echo "<br />";
      echo sha1($site1_1);
      echo "<br />";
      echo sha1($site2_1);
      echo "<br />";
      echo sha1($site3_1);
      echo "<hr>";

      /* UTENTE 2 */
      $user_2 = "luigi";
      $password_2 = "0000";
      $site1_2 = "localhost/TEST/sito3.com/";
      $site2_2 = "localhost/TEST/sito5.com/";
      echo sha1($user_2);
      echo "<br />";
      echo sha1($password_2);
      echo "<br />";
      echo sha1($site1_2);
      echo "<br />";
      echo sha1($site2_2);
      echo "<hr>";

      /* UTENTE 3 */
      $user_3 = "toad";
      $password_3 = "9999";
      $site1_3 = "localhost/TEST/sito1.com/";
      $site2_3 = "localhost/TEST/sito3.com/";
      $site3_3 = "localhost/TEST/sito2.com/";
      $site4_3 = "localhost/TEST/sito7.com/";
      echo sha1($user_3);
      echo "<br />";
      echo sha1($password_3);
      echo "<br />";
      echo sha1($site1_3);
      echo "<br />";
      echo sha1($site2_3);
      echo "<br />";
      echo sha1($site3_3);
      echo "<br />";
      echo sha1($site4_3);?>
      [/PHP]

      sito secondario:

      [PHP]
      <?php
      $url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
      $uri = 'localhost/TEST/mysso';
      $get = file_get_contents($uri);
      $users = explode("<hr>", $get);
      foreach ($users as $user) {
      $users_ok = explode("<br />", $user);
      $n_elementi = count($users_ok);
      for ($i=0; $i < $n_elementi; $i++) {
      if($i!=0 AND $i!=1){
      if (sha1($url)==$users_ok*){
      echo $users_ok*."<br>";
      }
      }
      }
      echo "<hr>";
      }
      ?>
      [/PHP]

      di fatto espongo tutti gli utenti con i siti a cui possono accedere nel sito primario,
      usando sha1 così non mostro nulla, uso quel file per inserire nel db degli altri siti le coppie di user e password, magari usando un cron per tenerlo aggiornato.

      Secondo voi è corretto/sicuro?

      ho scritto il codice in fretta ma dovrebbe capirsi in linea di massima,
      poi inserirò form, sessioni e quello che manca.

      fatemi sapere
      ciao

      postato in Coding
      E
      enricocarli
    • unico login per più siti

      Buongiorno,

      volevo un'informazione: vorrei fare un unica pagina di login per più siti che risiedono in server diversi;
      mi sembra si chiami sso questo sistema, qualcuno ha idea di come si possa fare una cosa del genere?

      Di fatto si crea un pannello d'inserimento di amministratori, con user e password,
      se le credenziali sono corrette c'è un cookie per la sessione,
      ma come si fa a fare in modo che entri anche negli altri siti che non risiedono nello stesso server?

      Si potrebbe memorizzare l'IP dell'amministratore una volta che le credenziali sono corrette ma poi?

      Pensavo ma forse non è corretto, fare una pagina in php, che mostra gli IP degli amministratori una volta loggati,
      poi con lo scrapping dagli altri siti fare un cookie che apra la sessione di login solo se hai l'IP corretto.

      è sbagliato vero? Qualcuno ha idee migliori?

      grazie in anticipo
      buon week end

      postato in Coding
      E
      enricocarli
    • RE: problema insert query

      ho risolto così:

      [PHP]

                          $array_insert = array();
                          foreach ($array_col as $col) {
                              if($col['key']!="PRI"){
                                  $array_insert[] = $col['nome'];
                              }
                          }
                          $array_value = array();
                          foreach ($array_col as $col) {
                              if($col['key']!="PRI"){
                                  $array_value[] = $_POST[$col['nome']];
                              }
                          }                        
                          $query_insert = mysql_query("INSERT INTO ".$_GET['table']." (
                              ".implode(',', $array_insert)."
                              ) VALUES ( '".
                                    implode("','", $array_value).
                                "')");
                          if($query_insert===1){
                              $insert = mysql_fetch_assoc($query_insert);
                          }
      

      [/PHP]

      di fatto ho passato 2 array.

      grazie mille per i suggerimenti
      buona serata!

      postato in Coding
      E
      enricocarli
    • RE: problema insert query

      no, buona idea, ci provo. Grazie x la risposta!

      ciao!

      postato in Coding
      E
      enricocarli
    • problema insert query

      Buongiorno a tutti,
      ho questo codice:

      [PHP]
      mysql_query("INSERT INTO ".$_GET['table']."(".
      foreach ($array_col as $col) {
      if ($col['key']!="PRI") {
      echo $col['nome'].",";
      }
      }
      .") values(".
      foreach ($array_col as $col) {
      echo $_POST[$col['nome']].",";
      }
      .")");
      [/PHP]

      ma non inserisce nulla nel db;

      sto facendo un piccolo crud, per quello il nome della tabella e i campi devono essere dinamici.

      Qualcuno può aiutarmi? :arrabbiato:

      grazie mille a tutti!
      buona serata

      postato in Coding
      E
      enricocarli
    • RE: Quesito

      Grazie Pablito15,

      ma allora che senso ha usare get?

      quando si hanno richieste con tanti get ok,
      ma se ne ho pochi, posso usare questa formula o sbaglio?
      forse non è elegante?

      bho!
      era così per curiosità

      grazie mille
      ciao!

      postato in Coding
      E
      enricocarli