| Združeanje 2 tabel | ||
|---|---|---|
|
Tody
17. jun 2014 07:45:33
Pridružen od: 3. maj 2010 1446 objav 1411 299 25 |

|
|
|
sikmajnd
17. jun 2014 10:51:37
Pridružen od: 11. nov 2013 89 objav 156 9 1 |
#12
vzemi si čas in si preberi celotni zgornji tutorial. Lepo je razloženo kako in zakaj + na koncu sam sebi sestaviš uporaben class za delo s podatki. Skozi tutorial je tudi razloženo kako se s PDOjem izogneš SQL injectionu (metoda prepare()) mysql_ ukazi (mysqlconnect, mysqlquery, ...) so deprecated, kar pomeni, da njihova uporaba ni priporočljiva. Na žalost je veliko vodičev narejeno še po stari metodi in jih noben ne bo popravljal. Zadeva potem pripelje do takih primerov, kot ga imamo tukaj (: Če potengemo črto, bo bolje, da uporabiš PDO oz. mysqli. |
|
|
klopar
17. jun 2014 12:06:30
Pridružen od: 17. feb 2012 446 objav 78 113 24 |
||
|
klopar
17. jun 2014 18:59:17
Pridružen od: 17. feb 2012 446 objav 78 113 24 |
#14
Vodič sem si prebral vendar imam dva vprašanja. Ker mi bolje leži mysqli bi vas prosil, če mi lahko prosim poveste ali sem zadel z sql injection. Kot sem videl tudi na tej strani: http://www.php.net/manual/en/function.mysql-real-escape-string.php da se sql injection reši z ukazom mysqlrealescape_string? Ali je mogoče še kakšen ukaz. Ali mogoče kdo ve kako bi lahko to tudi testiral če deluje. Se opravičuje ker toliko sprašujem vendar bi se zelo rad naučil in da dobim potrdila tudi od vas. Hvala |
|
|
sikmajnd
18. jun 2014 08:52:40
Pridružen od: 11. nov 2013 89 objav 156 9 1 |
#15
mysqlrealescapestring spada med mysql deprecated ukaze. Če boš uporabljal mysqli, potem je ukaz za escapanje mysqlirealescape_string (pazi na i na koncu). V tem primeru lahko uporabiš nekako takole: Glede na to, da si se odločil, da boš uporabljal mysqli, bi ti vseeno priporočal, da vzameš en class, ki ima že vključene vse potrebne metode. Recimo: PHP mysqli class Zadeva ima kar precej plusov: manj možnosti napak, escapanje stringov je že urejeno, vse skupaj je dosti bolj berljivo, ... |
|
|
Vini
18. jun 2014 09:04:16
Pridružen od: 1. sep 2006 6612 objav 5234 611 56 |
||
|
klopar
18. jun 2014 10:34:03
Pridružen od: 17. feb 2012 446 objav 78 113 24 |
#17
Hvala za veliko pomoč. Samo še to bi vprašal potem pa na delo :). Ali je potrebno zaščiti samo $POST in $GET ali je potrebno zaščititi tudi javo script ( preko jave nimam nič posebnega, kar bi bilo povezano z mysql ). Saj preko programa NETsparker dobim nasledno napako '"--></style></scRipt><scRipt>alert(0x002336)</scRipt> (important) |
|
|
sikmajnd
18. jun 2014 11:16:04
Pridružen od: 11. nov 2013 89 objav 156 9 1 |
#18
@Vini Ta isto sem mu že jaz priporočal, pa se je odločil, da se bo držal mysqli-ja (: @klopar javascript se uporablja samo za validacijo, ki je prijaznejša uporabnika. Prikazovanje napak prez osveževanja - validacija obveznih polj, prikaz "moči" gesla, pravilnost emaila, .. To validacijo je tudi precej lahko obiti in se ne gre zanašati nanjo. Server side validacija all the way. |
|
|
klopar
18. jun 2014 14:10:37
Pridružen od: 17. feb 2012 446 objav 78 113 24 |
#19
Hvala sikmajnd. Preden pa nadaljujem z delom bi vas še vprašal ali bi tale koda bila dovolj za prijavo in ali delam prav SQL inject, saj sem videl da je več primerov... //POVEZAVA Z MYSQLI $uporabniskoime = stripslashes($uporabniskoime); // Kodiraj geslo $uporabniskoime = $povezavamysql->realescapestring($uporabniskoime); $preveriuporabnikeizbaze = "SELECT * FROM $prijavatabela WHERE uporabniskoime='$uporabniskoime' and geslo='$kodiranogeslo'"; |
|