Ankündigung

Einklappen
Keine Ankündigung bisher.

PDO Statement absichern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PDO Statement absichern

    Hallo @alle

    Bin grade an umstellen von msql auf PDO
    Kann man an dieser Funktion noch was besser machen, was absichern angeht
    Polste hier mal Code Stücke, ich hoffe es reicht so
    PHP-Code:
    function func_statement_rechnung($sort,$msql,$start,$datensaetze_pro_seite,$where,$Post_suchwort) {
         
    $a = array('Rechnungsdatum DESC','Rechnungsdatum ASC','Bestellnummer DESC','Bestellnummer ASC','Orderid DESC','Orderid ASC','Rechnungbetrag DESC','Rechnungbetrag ASC');
         
    $b = array('5','10','15','20','25','50','100','250');
                if(!
    in_array($sort$afalse)){ 
                  return -
    1
                }
                if(!
    in_array($datensaetze_pro_seite$bfalse)) { 
                  return -
    1
                }
                if(
    strlen($where)>40) { 
                   return -
    1
                }
                if(
    strlen($Post_suchwort)>20) { 
                   return -
    1
                }
                try {
                    
    $statement =$msql->prepare('SELECT * FROM rechnungbuch '$where' ORDER BY ' $sort' LIMIT :limitab,:limitbis');
                    
    $statement->bindParam(':limitab'$startPDO::PARAM_INT);
                    
    $statement->bindParam(':limitbis'$datensaetze_pro_seitePDO::PARAM_INT);
                    if(
    $where!=""){
                       
    $val "%" $Post_suchwort "%";
                       
    $statement->bindParam(':queryString'$val);
                      }
                     return 
    $statement;
                    } catch(
    PDOException $e){
                        
    $messages="Select   : rechnungbuch \r\n";
                        
    pdo_error_handling($e,$messages);
                       return -
    1;
                    }
        }
            if(isset(
    $_GET['s'])){
                
    $search_sort  filter_var($_GET['s'], FILTER_SANITIZE_STRING);
                } else {
                     
    $search_sort"Orderid DESC";
                }    
            if(isset(
    $_GET['limit'])){
                
    $datensaetze_pro_seite  filter_var($_GET['limit'], FILTER_SANITIZE_STRING);
                } else {
                    
    $datensaetze_pro_seite "10";
            }

        
    $seiten ceil($total $datensaetze_pro_seite);
        
    $start = ($go-1) * $datensaetze_pro_seite
        
    $where='WHERE Orderid LIKE :queryString';
                   
        
    $Statement=func_statement_rechnung($search_sort,$msql,$start,$datensaetze_pro_seite,$where,$Post_suchwort) ;
                    if(
    $Statement!="-1") {
                       
    $Statement->execute();
                       
    $row_count =$Statement->rowCount();
                       while(
    $Row $Statement->fetch(PDO::FETCH_ASSOC)) {

                                       }
                        } 

  • #2
    Bitte schau dir mal einen Querybuilder an. Solche gibt es Beispielsweise im Aura-Projekt, oder im ZendFramework. Ich habe das Gefühl, dass das vom Konzept her ziemlich zu dem passt, was du da versuchst und aktuell nicht wirklich gesund aussieht.

    Kommentar


    • #3
      Zitat von rkr Beitrag anzeigen
      Bitte schau dir mal einen Querybuilder an. Solche gibt es Beispielsweise im Aura-Projekt, oder im ZendFramework. Ich habe das Gefühl, dass das vom Konzept her ziemlich zu dem passt, was du da versuchst und aktuell nicht wirklich gesund aussieht.
      hallo
      mm,ok doch so schlimm !?!
      Ich schaue mir das mal an

      Kommentar


      • #4
        Naja, das Konstrukt wirkt schwer durchschaubar und unnötig komplex. Mit einem QueryBuilder wäre die Lösung übersichtlicher.

        Kommentar


        • #5
          Zitat von rkr Beitrag anzeigen
          Naja, das Konstrukt wirkt schwer durchschaubar und unnötig komplex. Mit einem QueryBuilder wäre die Lösung übersichtlicher.
          Mich würde Interessieren, was ich bei der Funktion falsch gemacht habe
          b.z.w du hast geschrieben, das es ziemlich ungesund.
          Man will ja was dazu lernen

          grüß
          Martin

          Kommentar


          • #6
            Hi, ich bin gerade unterwegs und kann daher mit meinem smartphone nicht vollqualifiziert antworten. Das ganze würde aber vom Konzept her in etwa so funktionieren:

            PHP-Code:
            $query $queryBuilder->select();
            $query
            ->from('table')
            ->
            where('field=?'$value)
            ->
            orderBy('field''desc')
            ->
            orderBy($fieldName$sortDirection);

            if(
            $otherValue != 'condition') {
                
            $query->where('field_x = true');
            }
            $rows $query->fetchRows(); 
            Du kannst du deine Queries belliebig zusammenbauen und PHP-seitig bestimmte Parts nur unter Bedingungen berücksichtigen.

            Kommentar


            • #7
              Zitat von rkr Beitrag anzeigen
              Hi, ich bin gerade unterwegs und kann daher mit meinem smartphone nicht vollqualifiziert antworten. Das ganze würde aber vom Konzept her in etwa so funktionieren:

              PHP-Code:
              $query $queryBuilder->select();
              $query
              ->from('table')
              ->
              where('field=?'$value)
              ->
              orderBy('field''desc')
              ->
              orderBy($fieldName$sortDirection);

              if(
              $otherValue != 'condition') {
                  
              $query->where('field_x = true');
              }
              $rows $query->fetchRows(); 
              Du kannst du deine Queries belliebig zusammenbauen und PHP-seitig bestimmte Parts nur unter Bedingungen berücksichtigen.
              Hallo
              Ok,ich werde mir das nochmal in Ruhe anschauen,
              Ich dachte nur in ersten Moment, wo du geschrieben hast das es ziemlich ungesund das ich voll die Sicherheitslücke drinne habe.

              Kommentar

              Lädt...
              X