Poslao: 14 Dec 2015 19:32
|
offline
- Nikola04
- Građanin
- 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.
|
|
Poslao: 14 Dec 2015 20:48
|
offline
- Dr.Cooler
- Građanin
- 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
|
|
|
|
Poslao: 14 Dec 2015 21:04
|
offline
- Nikola04
- Građanin
- 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
|
|
|
|
Poslao: 15 Dec 2015 10:17
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- 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.
|
|
|
|
Poslao: 15 Dec 2015 12:11
|
offline
- Nikola04
- Građanin
- 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);
|
|
|
|
Poslao: 15 Dec 2015 12:46
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- 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.
|
|
|
|
Poslao: 15 Dec 2015 14:46
|
offline
- Nikola04
- Građanin
- 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.
|
|
|
|
Poslao: 15 Dec 2015 16:25
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- 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.
|
|
|
|