Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    192
    La lista bianca è utile a rammentare cosa consentire.
    Il parametro è già filtrato e se il valore stringa non è una sintassi speciale per il database va più che bene. Comunque è buona norma utilizzare i Prepareted Statement con il proprio charset il 4 parametro del costruttore PDO (dopo dbname) o in alternativa tramite opzione (dopo la pass) PDO::MYSQL_ATTR_INIT_COMMAND => 'Set Names UTF8'; o a proprio rischio direttamente Set Names UTF8 se il proprio PHP non imposta la preferenza del charset (solitamente accade se fù costruito prima del PHP 5.3.1 poiché il charset non dovrebbe essere ignorato direttamente nel costruttore). La terza sintassi ti espone comunque a rischi però è limitato poiché filtrato dalla lista bianca. Maggiore informazioni https://www.php.net/manual/en/mysqli...ts.charset.php
    Inoltre considera che precedentemente WordPress utilizzava UTF8 che poi è stata aggiunta la possibilità di crearlo in utf8mb4, se il database tabelle e campi non hanno o tutti UTF-8 o utf8mb4 si presenterà qualche problema
    Se effettuo una richiesta http e quindi esegue il codice php è comunque l'esito del programmatore effettuare la query, Se esiste il valore in $_POST e $_GET è una ripetizione diretta o indiretta, va utilizzato per un metodo altrimenti scrivi codice OOP ma per le debolezze del codice procedurale.

    Per mio gusto personale è più efficiente effettuare la query anche se non esiste il valore tramite uno dei due metodi http, cioè:
    Codice PHP:
    $hide_error true;
    $allowed_list = array('position');
    //if(!empty($_GET['orderby'])) //se non è una stringa vuota o array vuoto, la struttura di controllo successiva rende l'idea più chiara
    if(isset($_GET$_GET['orderby']) && is_string($_GET['orderby']) && '' !== $_GET['orderby']) {
    $key array_search($_GET['orderby'], $allowed_listtrue);
    if(
    $key === 0)
    $hide_error false//Non mostrare errore a chiunque, se true in questo contesto è utile per capire che non è 'position' === 'position' e che quindi per comprendere meglio l'imprevisto non per generare e lanciare un'eccezione
    }
    $orderby 'position'//implicito
    var_dump($orderby); 
    Perché generare un'eccezione se comunque ho solo bisogno di una richiesta http, poiché il codice dovrà essere eseguito? Semplicemente lo imposto esplicitamente.

    Altre info per PDO https://phpdelusions.net/pdo
    PS. Se $_GET['orderby'] non esiste php assegna automaticamente il valore NULL, quindi la tua funzione imposta comunque
    Codice PHP:
    $orderby 'position'
    che è il valore della lista bianca.
    Ultima modifica di darbula; 11-12-2021 a 11:37

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