Autor | Zpráva | ||
---|---|---|---|
W4S3K Profil * |
Zdravím ...snažím se udělat obyčejná formulář pro lidi, kde napíšou svůj nick a vyberou klan, čímž se přidají na seznam. Data by se měli ukládat do tabulky v DB a z ní vypisovat. Vypisování bych řekl že mám dobře, ale nefunguje, zapisování tak nějak vůbec netuším. Neví někdo prosím jak na to? :-)
<? $spojeni = mysql_connect(mysql.ic.cz,"supertajnýlogin","supertajnýheslo" ); mysql_select_db(moje-databáze, $spojeni); $vysledek = mysql_query( "SELECT * FROM allysraz ORDER BY datum", **-vytažení z tabulky $spojeni); while ($zaznam = mysql_fetch_array($vysledek) ): <table border=1> <tr><td>Nick</td><td>Klan</td></tr> <tr><td> echo $zaznam["nick"]; echo "<br> "; </td> <td>echo $zaznam["klan"]; echo "<br>";</td></tr> endwhile; ?> <form method="GET" action="pokus.php"> <input type="text" name="nick" ><br> <select name="klan" size=1 > <option value="Mercifuls" label="Mercifuls"> Mercifuls <option value="Mirai" label="Mirai">Mirai <option value="Puremind" label="Puremind">Puremind <option value="Inmemoriam" label="Inmemoriam">InMemoriam </select><br> <input type="SUBMIT" size=10 alt="Odešli informace" value="Odešli"> </form> Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
![]() |
||
Majkl578 Profil |
#2 · Zasláno: 24. 2. 2010, 21:36:09
|
||
radvis Profil * |
#3 · Zasláno: 25. 2. 2010, 01:03:49
Tak to je celkem zajímavý kód. Nemůžeš mít <td>echo. Musíš mít echo<td>
<?php $spojeni = mysql_connect(mysql.ic.cz,"supertajnýlogin","supertajnýheslo" ); mysql_select_db(moje-databáze, $spojeni); $vysledek = mysql_query( "SELECT * FROM allysraz ORDER BY datum", **-vytažení z tabulky $spojeni); while ($zaznam = mysql_fetch_array($vysledek) ){ $html = "<table border=1>"; $html .= "<tr><td>Nick</td><td>Klan</td></tr>"; $html .= "<tr><td> $zaznam["nick"] </td></tr>"; $html .= "<tr><td>$zaznam["klan"]</td></tr>"; echo $html; } //Když zmáčknes tlačítko odeslat "send" if(isset($_GET['send'])){ mysql_query("INSERT INTO klan (nick = $_GET['nick'], klan = $_GET['klan']) ; } } ?> <form method="GET" action="pokus.php"> <input type="text" name="nick" ><br> <select name="klan" size=1 > <option value="1"> Mercifuls <option value="2">Mirai <option value="3">Puremind <option value="4">InMemoriam </select> <input type="submit" name="send" value="Odešli"> </form> Nevím, zda to bude fungovat je to psané z hlavy, ale také ti doporučuji si přečíst něco o PHP a HTML. |
||
AM_ Profil |
#4 · Zasláno: 25. 2. 2010, 08:42:45
radvis:
> mysql_query("INSERT INTO klan (nick = $_GET['nick'], klan = $_GET['klan']) ; > } Zajímavá syntaxe, v které verzi PHP/MySQL (nebo raději v kterém vesmíru) toto funguje? Také by mne zajímalo, ve kterém vesmíru se správně vypíšs řádek 8-11 a jestli v tom samém vesmíru se provede řádek 16-19 dříve než 1-13, aby se poslední uložený tým hned projevil. $spojeni = mysql_connect('mysql.ic.cz',"supertajnýlogin","supertajnýheslo" ); A tuhle ošklivou chybu jsi mu tam taky nechal. Sice je to lepší než vlající kusy HTML uprostřed PHP, nicméně při jeho úrovni znalostí si ani tvůj kód zřejmě sám neopraví do funkční podoby. |
||
radvis Profil * |
#5 · Zasláno: 25. 2. 2010, 13:05:17
Jsem to pouze okopíroval a vložil pár řádku. Co se ti na řádku mysql_query... nelíbí?
|
||
radvis Profil * |
#6 · Zasláno: 25. 2. 2010, 13:07:05
Já myslím, že mu to fungovat bude:) kdysi jsem t pomocí $n = "tex. řetězec"; a nakonec echo $n a fungovalo to a to vložení tam má ouze na inspiraci (také mi to kdysi tak fungovalo)
|
||
Časová prodleva: 4 dny
|
|||
Majkl578 Profil |
#7 · Zasláno: 1. 3. 2010, 19:26:40 · Upravil/a: Majkl578
[#6] radvis
Opravdu? Tak tedy k [#3]: Parse errory na řádcích 5, 10, 11, 18 a 20. Warningy na řádcích 2 (3x), 3, 6 (3x) a 7. Notice na řádcích 2 (3x) a 3 (2x). To je 18 problémů na takovém krátkém kousku kódu. Blahopřeji. Samozřejmě nechybí ani náchylnost XSS a SQL injection. Ale koho by to taky zajímalo, že? :) |
||
AM_ Profil |
#8 · Zasláno: 1. 3. 2010, 20:47:11
radvis
„kdysi jsem t pomocí $n = "tex. řetězec"; a nakonec echo $n a fungovalo to a to vložení tam má ouze na inspiraci“ Četl jsi pravidla fóra? je zde povolen jen český a slovenský jazyk. Jazyk, jakým je napsána tato věta, se mi odhalit nepodařilo. „Co se ti na řádku mysql_query... nelíbí?“ Takhle syntaxe INSERT INTO nevypadá. „Jsem to pouze okopíroval a vložil pár řádku.“ "copy-paste" programování bez pochopení kódu a znalosti syntaxe nevede k ničemu dobrému. |
||
radvis Profil * |
#9 · Zasláno: 1. 3. 2010, 21:21:39
Nešlo o mně, šlo o to, co chtěl vyřešit ... poslal jsem mu to na inspiraci :)
|
||
radvis Profil * |
#10 · Zasláno: 1. 3. 2010, 21:24:19
Majkl578 -> předpokládám, že jsis vytvořil databázi a dal tam přesně to, co tam má v příkladu, jestli ne tak se nemusíš divit proč tam je error:D a řádek 2,3 není muj, ale jeho co zde vložil.
|
||
AM_ Profil |
#11 · Zasláno: 1. 3. 2010, 21:29:44
radvis:
„předpokládám, že jsis vytvořil databázi a dal tam přesně to, co tam má v příkladu, jestli ne tak se nemusíš divit proč tam je error:D“ Sorry že odpovídám za Majkla... teoreticky se dá napsat kód, který v případě neexistence databáze vygeneruje Parse error, ale to není tenhle případ :) |
||
radvis Profil * |
#12 · Zasláno: 1. 3. 2010, 21:32:42
A když už se ti nelíbí insert tak tady ho ma snad už podle tvého mínění dobře:
... $nick = htmlspecialchars($_GET['nick']); $klan = $_GET['klan']; mysql_query("INSERT INTO klan (nick, klan) VALUES ($nick, $klan); ... |
||
AM_ Profil |
#13 · Zasláno: 1. 3. 2010, 21:34:24
radvis:
Krom toho že na konci chybí závorka a vstup není oescapovaný tak ano. |
||
radvis Profil * |
#14 · Zasláno: 1. 3. 2010, 21:34:31
AM_ nevím, proč zde řešíš každou chybu, kterou jsem já neudělal. Vzal jsem jeho kód co tu měl a přidal pár řádku. Myslím, že teď už by to fungovat mohlo :).
|
||
radvis Profil * |
#15 · Zasláno: 1. 3. 2010, 21:35:21
Promiň, ale nemusís řešit snad každou čárečku, nemyslíš?
|
||
AM_ Profil |
#16 · Zasláno: 1. 3. 2010, 21:38:22
radvis:
„AM_ nevím, proč zde řešíš každou chybu, kterou jsem já neudělal.“ Je jedno, kdo jí udělal, ty jsi jí sem přinesl. Když hodíš granát mezi lidi, taky je až druhořadá informace, kdo ten granát vyrobil :) napsat někomu deset řádek špatného kódu není moc dobrá rada, měl bys být rád, že tě na chyby někdo upozornil :) resp asi ti to může být jedno, tazatel už zřejmě vlákno nesleduje, takže je to asi úplně jedno, ale když tu vidím nesmysl, tak nevím, proč ho neopravit. |
||
radvis Profil * |
#17 · Zasláno: 1. 3. 2010, 21:47:14
Jde o to, že jsem to psal z hlavy (až na ten insert) . Mělo by to teoreticky fungovat (i když jsem tam měl pár chyb). Pouze jsem mu prostě ukázal jak asi na to. Jestli chtěl hotové řešení spletl si sekci :). Máš pravdu, že jsem to mohl opravit, ale bohužel jsem to neudělal (nepovažoval jsem to za moc důležité). Tohle téma zřejmě můžem uzavřít, protože už asi nikoho nezajímá:D.
|
||
Majkl578 Profil |
#18 · Zasláno: 1. 3. 2010, 21:57:41
radvis:
[#10] Pouze jsem ten soubor nechal zpracovat interpreterem. Nepotřebuji mít databázi k tomu, aby na mě zařval 5x parse error. Ale ano, pravda, při správném připojení k databázi by se některé Notice/Warningy nezobrazily. [#12] Bohužel, problém s SQL injection zůstává. Použití mysql_real_escape_string() by to řešilo. „Mělo by to teoreticky fungovat (i když jsem tam měl pár chyb).“ Neprotiřečíš si trochu? „Tohle téma zřejmě můžem uzavřít, protože už asi nikoho nezajímá:D.“ To bych nechal posoudit autora samotného. |
||
Časová prodleva: 13 let
|
0