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
Máš to rozbité.

Prvně si přečti jak se PHP a HTML používá společně.
radvis
Profil *
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
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 *
Jsem to pouze okopíroval a vložil pár řádku. Co se ti na řádku mysql_query... nelíbí?
radvis
Profil *
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)
Majkl578
Profil
[#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
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 *
Nešlo o mně, šlo o to, co chtěl vyřešit ... poslal jsem mu to na inspiraci :)
radvis
Profil *
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
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 *
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
radvis:
Krom toho že na konci chybí závorka a vstup není oescapovaný tak ano.
radvis
Profil *
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 *
Promiň, ale nemusís řešit snad každou čárečku, nemyslíš?
AM_
Profil
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 *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: