True, fixed that
Printable View
Why can I still use the world name "Balls", then?
My original proposal meant the worlds table should be read-only. The values in your drop-down should be like 1-n, where 1 is AMERA and n is the last world in the list. Your worlds table should look something like this:
The query should look something like thisCode:id PRIMARY KEY | name
1 | Amera
2 | Antica
... | ...
n | Zanera
There are 2 major reason to do this:Code:SELECT * FROM auctions LEFT JOIN worlds ON auctions.worldId = worlds.id WHERE worlds.name NOT NULL and (whatever other criteria here)
- It reduces your possible attack surface by reducing the amount of data users are allowed to place raw inside your database.
- It makes the database more space-efficient, as there will not be duplicate strings for world names all over the place.
9. I'm worried about the in-browser pagination. What happens when finished auctions becomes 10k+ auctions? Storing 1000 pages in the browser will be essentially DoSing the end-user's browser.
10. I'm not sure what your database structure is, but you should, first and foremost, be hashing and salting passwords that are stored. I've done some timing attacks that show you're _probably_ not doing this. The reason you want to do this is that, in case your database every does get compromised, the hackers wont have direct access to the plain-text passwords of your users. Instead, they'll have to brute-force the hashes.
https://crackstation.net/hashing-security.htm
http://php.net/manual/en/faq.passwords.php
http://www.sitepoint.com/hashing-pas...d-hashing-api/
@DarkstaR, you got alot of fun dont you? ;)
Case and point: http://www.tibiatracker.com/deletions
This site uses the same table library as you and the same pagination. It take ~21 seconds to load just because it needs to pull that shitload of data down and fill the DOM before displaying anything.
I was going to try to break something but I think Nick has it covered.
:cool: