Overview
Comment: | Corrections et restrictions sur la recherche en SQL |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
cbff2cb168ac1f419d7510a282f38354 |
User & Date: | bohwaz on 2014-02-03 15:46:49 |
Other Links: | manifest | tags |
Context
2014-02-03
| ||
15:54 | Liens actions avec icône unicode check-in: 9a50bc5f21 user: bohwaz tags: trunk | |
15:46 | Corrections et restrictions sur la recherche en SQL check-in: cbff2cb168 user: bohwaz tags: trunk | |
15:34 | Boutons d'ordre des colonnes plus clairs check-in: 40db664167 user: bohwaz tags: trunk | |
Changes
Modified src/include/class.membres.php from [78366218cf] to [e67112c5ee].
︙ | ︙ | |||
680 681 682 683 684 685 686 | return true; } public function searchSQL($query) { $db = DB::getInstance(); | < < < < < < > > > > > > > > > > > > > > > > > > | 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 | return true; } public function searchSQL($query) { $db = DB::getInstance(); $st = $db->prepare($query); if (!$st->readOnly()) { throw new UserException('Seules les requêtes en lecture sont autorisées.'); } if (!preg_match('/LIMIT\s+/', $query)) { $query = preg_replace('/;?\s*$/', '', $query); $query .= ' LIMIT 100'; } if (!preg_match('/FROM\s+membres(?:\s+|$|;)/i', $query)) { throw new UserException('Seules les requêtes sur la table membres sont autorisées.'); } if (preg_match('/;\s*(.+?)$/', $query)) { throw new UserException('Une seule requête peut être envoyée en même temps.'); } $st = $db->prepare($query); $res = $st->execute(); $out = []; while ($row = $res->fetchArray(SQLITE3_ASSOC)) { if (array_key_exists('passe', $row)) |
︙ | ︙ |
Modified src/templates/admin/membres/recherche_sql.tpl from [dd453e1022] to [3beaec155c].
︙ | ︙ | |||
66 67 68 69 70 71 72 | <p class="actions"> <em>Pour les membres cochés :</em> <input type="submit" name="move" value="Changer de catégorie" /> <input type="submit" name="delete" value="Supprimer" /> {csrf_field key="membres_action"} </p> | | | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <p class="actions"> <em>Pour les membres cochés :</em> <input type="submit" name="move" value="Changer de catégorie" /> <input type="submit" name="delete" value="Supprimer" /> {csrf_field key="membres_action"} </p> {else} <p class="alert"> Aucun membre trouvé. </p> {/if} </form> |
︙ | ︙ |