Avatar
Jan Demel
Redaktor
Avatar
Jan Demel:

Ahojte, s klukama se chceme pustit do nějákého projektu... no řekněme, že je to celkem velký projekt :D A tak trochu se toho bojím, protože PHPčko se začínám učit. někde psali, že znalost C# mi pomůže, protože je to skoro to stejné... Tak doufám, že to výjde :)

Nicméně k věci ... Kde mám chybu v tomhle scriptu ?

<?php
        //PRIPOJENI DO DATABAZE
        mysql_connect("localhost","jmeno","heslo");
        mysql_select_db("trade");
        //DOSTAVAME UDAJE
        $name = $_GET["name"];
        $pass = $_GET["pass"];
        //TVORBA TABLE A VLOZENI UDAJU
        mysql_query("CREATE TABLE $name(id TEXT, pass TEXT)");
        mysql_query("INSERT INTO $name (id, pass) VALUES ($name, $pass");
        ?>
Odpovědět 28.10.2013 20:11
To co se zdá být nemožné, je vždy možné.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jan Demel
Kit:

V obou SQL dotazech máš místo jména tabulky proměnnou $name. Navíc tam máš SQL injection, takže ti kdokoli může tu databázi třeba smazat. V posledním dotazu ti chybí pravá závorka a apostrofy kolem odkazů na proměnné. Sloupec id se zpravidla dělá typu integer.

Nahoru Odpovědět  +1 28.10.2013 20:23
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Demel
Redaktor
Avatar
Jan Demel:

Dík moc... :)
Ono to, že mám místo jména tabulky proměnnou $name má svůj důvod :)

Editováno 28.10.2013 20:26
Nahoru Odpovědět 28.10.2013 20:25
To co se zdá být nemožné, je vždy možné.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Jsem už úplně bezradný, v každém druhém dotazu na fóru je SQL injekce. Asi na to napíšu nějaký článek, abychom je mohli rovnou odkazovat.

Nahoru Odpovědět  +4 28.10.2013 20:27
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Jan Demel
Redaktor
Avatar
Odpovídá na David Čápka
Jan Demel:

Jéé tak to promiň :/ Nechtěl jsem tě nazlobit :(

Nahoru Odpovědět 28.10.2013 20:28
To co se zdá být nemožné, je vždy možné.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jan Demel
Kit:

To je spíš k pláči než k usměvavému smajlíku.

Nahoru Odpovědět 28.10.2013 20:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Jako kdyby od sebe opisovali :)

Přitom stačí domyslet si, co se asi tak stane, když někdo do vstupních dat pošle obyčejný apostrof...

Nahoru Odpovědět 28.10.2013 20:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jan Demel
Kit:

Mne jsi s tím svým zrůdným skriptem také pěkně namíchl. Jako kdybys tady ty články, které pracně píšeme, vůbec nečetl. A ten tvůj druhý příspěvek byl tak sprostý, že jsem ho pro jistotu ihned smazal.

Nahoru Odpovědět 28.10.2013 20:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michal Žůrek (misaz):

přijde mi že každý druhý na fóru je ale opravdu nečte. A není to jen na fóru o PHP a SQL.

Nahoru Odpovědět  +1 28.10.2013 20:44
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Kit:

Nejenže nečtou články, ale ani neznají netiketu. To je pak s nimi těžké.

Nahoru Odpovědět  -1 28.10.2013 20:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:

Mě by spíše zajímalo, kde všichni berou, že se pouížvá mysql_query a o SQL injection ani nemluvě :)

Nahoru Odpovědět  +1 28.10.2013 20:57
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Jan Demel
Redaktor
Avatar
Jan Demel:

OK... Takže se všem omlouvám. Ale pořád jsem ten problém nevyřešil
Má jít o to, že se uživatel zaregistruje a vytvoří se mu vlastní tabulka, do které se zapíše jeho nick a password ...
Prosím poslal by jste mi tu někdo kod jak by to mělo být ?

Nahoru Odpovědět 28.10.2013 21:19
To co se zdá být nemožné, je vždy možné.
Avatar
Snorlax
Redaktor
Avatar
Odpovídá na Petr Nymsa
Snorlax:

taky mě zajímá jak dlouho potrvá než všichni budou používat PDO

Nahoru Odpovědět 28.10.2013 22:02
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Snorlax
Redaktor
Avatar
Odpovídá na Jan Demel
Snorlax:

ne budeš mít tbl user kde budeš mít min. tyto 3 sloupce
id_user
nick
pass

(jména si udělej jak chceš)
id bude sloužit na identifikaci(budou to čísla 1,2,3,...). když budeš chtít smatat uživatele tak uděláš jen
DELETE FROM user WHERE id_user = '2'
každý bude mít VLASTNÍ id. proto tam pro jistotu nastav primární klíč. dále tam můžeš nastavit A_I (já to nepoužívám. moc to nemusim). no a pak tam zapíšeš nick a ZAŠIFROVANÝ heslo (třeba pomocí MD5)

$heslo = MD5($_POST['heslo']);

vytvářet pro každého uživatele tabulku je to nejšílenější co jsem kdy slyšel... to mě nikdy nenapadlo... dokážeš si představit jak by asi vypadala databáze třeba tady devbooku?

ještě nějaké otázky?

Nahoru Odpovědět 28.10.2013 22:08
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Odpovídá na Jan Demel
Jakub Šárník:

A proč by se měla vytvářet každému uživateli vlastní tabulka? To vůbec není potřeba.

 
Nahoru Odpovědět 28.10.2013 22:09
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jan Demel
Kit:

To je jednoduché. Uděláš jednu tabulku, do které uložíš všechny uživatele.

Nahoru Odpovědět 28.10.2013 22:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Snorlax
Kit:

PDO se všichni naučí až tehdy, kdy už bude nahrazeno něčím novějším :)

Nahoru Odpovědět  +1 28.10.2013 22:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Salieri
Člen
Avatar
Odpovídá na Petr Nymsa
Salieri:

Bohužel, třeba já ze školy ... :/

Nahoru Odpovědět 28.10.2013 22:13
Hlavní zlo? **Školství a Matematika**!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Salieri
Kit:

My se už učíme PDO a práci s výjimkami :)

Nahoru Odpovědět 28.10.2013 22:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Salieri
Člen
Avatar
Odpovídá na Kit
Salieri:

Mohu se zeptat, je tady někde na to PDO tutoriál? Přiznám se, ani nevím co to je. Typuji,že to bude něco s o objektama atd...

Nahoru Odpovědět 28.10.2013 22:17
Hlavní zlo? **Školství a Matematika**!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Salieri
Kit:

Už jsem to sem dnes dával:
http://www.itnetwork.cz/…-a-modularne
Asi budu muset ještě přidat nějaký díl.

Nahoru Odpovědět 28.10.2013 22:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Salieri
Člen
Avatar
Salieri:

Děkuji, prostuduji to.

Nahoru Odpovědět 28.10.2013 22:30
Hlavní zlo? **Školství a Matematika**!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Salieri
Kit:

Koukám, že dnes bych to už napsal jinak. Přehledněji a s polovičním množstvím kódu.

Nahoru Odpovědět 28.10.2013 22:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Snorlax
Redaktor
Avatar
Nahoru Odpovědět  +1 28.10.2013 23:07
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 24 zpráv z 24.