Datatables php grid

Datatables php grid

offline
  • Niko E
  • Software & Information Engineering
  • Pridružio: 05 Maj 2009
  • Poruke: 135
  • Gde živiš: Wien

Pozdrav,
potrebna mi je neka tabela, tj. skripta za citanje podataka iz mysql baze i ispisivanje u tabeli.
Ja sam koristio Datatables jer ispunjava skoro sve moje zahteve: izmena, unus, brisanje, pretrazivanje, dobra paginacija i preglednost. Izgleda ovako:



Medjutim ono sto se meni ne svidja je sigurnost ove skripte na serveru, jer ona koristi
jQuery.getJSON - to znaci da uvek postoji onaj .php fajl koji sadrzi podatke sa citanje.



Da li neko ima neki predlog ili alternativu? Hvala unapred.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Miljan Ilic
  • Pridružio: 18 Jun 2014
  • Poruke: 178

Mislim da niko ne moze pristupiti tom .php fajlu ako nije ulogovan. Tako se prave takve .php skripte. Pozz



offline
  • Niko E
  • Software & Information Engineering
  • Pridružio: 05 Maj 2009
  • Poruke: 135
  • Gde živiš: Wien

Moze, bez obzira da li je ulogovan ili ne, druga slika u mom prvom postu to dokazuje.

editor.datatables.net/examples/php/staff.php

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3654
  • Gde živiš: 127.0.0.1

Tu ti i lezi problem - dozvoli prikaz tog JSON-a samo ako je korisnik ulogovan.

Client-side JS koji se izvrsava u browseru ne moze da cita iz baze bez pomoci nekog server-side jezika.

offline
  • Niko E
  • Software & Information Engineering
  • Pridružio: 05 Maj 2009
  • Poruke: 135
  • Gde živiš: Wien

Ok, hvala. Ja sam mislio da u tom .php fajlu dopisem nesto tipa:
sec_session_start(); if (login_check($mysqli) == true) json_encode($result);

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3654
  • Gde živiš: 127.0.0.1

Mislio si da dopises dva reda u kome imas dve custom f-je o kojima niko osim tebe nikakvog pojma nema, a da ti mi kazemo da li je to u redu ili ne?

Da ne spominjem da ovo ne radi - json_encode vraca rezultat, ne stampa ga.

offline
  • Niko E
  • Software & Information Engineering
  • Pridružio: 05 Maj 2009
  • Poruke: 135
  • Gde živiš: Wien

Rastafarii ::Mislio si da dopises dva reda u kome imas dve custom f-je o kojima niko osim tebe nikakvog pojma nema, a da ti mi kazemo da li je to u redu ili ne?

Da ne spominjem da ovo ne radi - json_encode vraca rezultat, ne stampa ga.

-hteo sam da napisem "echo json_encode($result);"
Inace to je bio samo primer, moja skripta izgleda potpuno drugacije.

Ovo je client side deo: (JS)
    $('#mojaTabela').DataTable( {         dom: "Bfrtip",         ajax: "json.php",         columns: [             { data: ... },         ],         select: true,         buttons: [         ....         ]     } );
json.php (server side):
// DataTables PHP library include( "DataTables.php" );   Editor::inst( $db, 'db_demo' )     ->fields(         Field::inst( 'bla_bla' ),         ....     )     ->process( $_POST )     ->json();
Ono sto meni treba je da se proveri da li je taj json.php validan, koristio bih ovu f-ju (nadam se da je ok)
function isJSON($string){    return is_string($string) && is_array(json_decode($string, true)) ? true : false; }

i da glavi problem sa pocetka price je da taj .php ne bude citljiv. Ja se izvinjavam ako nisam bio jasan.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3654
  • Gde živiš: 127.0.0.1

Ajd redom - tvoja f-ja isJSON() moze u odredjenim slucajevima da dovede do greske tipa E_WARNING. Sigurnije je da proveravas ovako:

function isJSON($string) {     return @json_decode($string) && !json_last_error(); }

Kad ispred poziva funkcije stavis @, samo za taj poziv iskljucujes prikaz moguce greske, dok json_last_error() vraca (eventualnu) gresku prilikom poslednjeg dekodiranja.

Sama provera da li je output f-je json mi se cini nepotrebnom.

Sto se tice "necitljivosti" PHP fajla - ako on ne bude citljiv, ni DataTables.js nece moci da ga procita. Ako je skroz otvoren - jos gore - svi ce moci da ga citaju.

Dakle - tebi treba provera da li korisnik moze da edituje rekorde u tabeli ili ne. Ako imas tu proveru na stranici koja prikazuje datatables (ona gde je JS), samo taj deo dodaj u json.php. Ako nemas - onda ti je potpuno svejedno sto neko eventualno moze da manipulise json.php fajlom - jer isto to moze i preko editora, plus mu je lakse jer ima graficki editor.

Ko je trenutno na forumu
 

Ukupno su 754 korisnika na forumu :: 40 registrovanih, 4 sakrivenih i 710 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., babaroga, Bane san, bojanM84, Boris90, cole77, danilopu, dragon986, Drug pukovnik, Faki-Valjevo, Georgius, Giša, GreenMan, HrcAk47, hyla, JOntra, KRCO95, KUZMAR, Marko Marković, Milan A. Nikolic, milijarder, millle, Milos ZA, mnn2, moldway, mrvica78, nadjas_515, nikoli_ca, nuke92, Panter, Profica, sakota79, Skywhaler, stug, trajkoni018, udbas, USSVoyager, vlvl, voja64, zziko