Avatar
shakki
Člen
Avatar
shakki:

Zdravím, dělám jednoduchý databázový filtr pro sbírku hokejových karet, který funguje na principu vyhledávání společného textu. Na netu jsem našel množství filtrů, ale vzhledem k tomu, že s ním teprv začínám, zkusil jsem něco jednodušího. Krok po kroku jsem nastavil vlastnosti filtru v souboru, uložil a chtěl vyzkoušet. Zadal jsem tedy hledaný výraz, ale tabulka, kterou jsem součástí filtru nechal vypsat se nevyfiltrovala. Připojuji kod.

<form name="search_form" method="POST" action="hleda­ni.php">
Hledej: <input type="text" name="search_box" value=" "/>
<input type="submit" name="search" value="Hledat"/>
</form>

<?php
$link = mysql_connect("mys­ql.wz.cz", "---", "---")
or die("Nelze se připojit: " . mysql_error());
mysql_select_db("sha­kaar") or die("Nelze vybrat databázi");
$query = "SELECT * FROM HokejKarty";
$result = mysql_query($query) or die("Dotaz nelze provést: " . mysql_error());

if(isset($_POS­T['search'])) {
$search_term = mysql_real_es­cape_string($_POS­T['search_box']);
$query .= "WHERE Vyrobce = '{$search_box}'";
$query .= "OR Zeme = '{$search_box}'";
}
?>
<table width="70%" cellpadding="5" cellspacing="5">
<tr>
<td>id</b</td>
<td>Znacka</td>
<td>Cislo</td>
<td>Zeme</td>
<td>Rok</td>
<td>Nazev</td>
</tr>
<?php
while ($row= mysql_fetch_a­rray($result)) { ?>
<tr>
<td><?php echo $row ['id']; ?></td>
<td><?php echo $row ['Vyrobce']; ?></td>
<td><?php echo $row ['Cislo']; ?></td>
<td><?php echo $row ['Zeme']; ?></td>
<td><?php echo $row ['Rok']; ?></td>
<td><?php echo $row ['Nazev']; ?></td>

<?php } ?>

</table>

Editováno 29.12.2013 16:34
 
Odpovědět 29.12.2013 15:01
Avatar
Kit
Redaktor
Avatar
Odpovídá na shakki
Kit:

Skript v PHP musí být na začátku souboru "hledani.php". Pro vyhledávání se zásadně používá metoda "GET".

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

dík za radu, chtěl jsem se ještě zeptat, který z těch scriptů. Ten s výpisem tabulce asi ne, takže předpokládám že máš na mysli připojující skript s podmínkou. Změnil jsem to tedy podle toho a nestalo se zase nic.

 
Nahoru Odpovědět 29.12.2013 15:36
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na shakki
David Čápka:

V query používáš nějakou proměnnou search_box, ale máš tam jen search_term. Kdybys používal prepared statements s PDO, tak bys tu chybu asi neudělal.

Nahoru Odpovědět  +1 29.12.2013 15:38
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
FastNode
Redaktor
Avatar
Odpovídá na shakki
FastNode:

Příště až budeš někde publikovat kód alespoň vyhvězdičkuj nebo úplně smaž přístupové údaje do databáze, speciálně v případě kdy je administrace databáze veřejně přístupná. Takhle se ti kdokoliv může hrabat v databázi! ;)

 
Nahoru Odpovědět  +1 29.12.2013 16:26
Avatar
Odpovídá na shakki
Michal Žůrek (misaz):

prosímtě změň si heslo k db.

Nahoru Odpovědět 29.12.2013 16:29
Nesnáším {}, proto se jim vyhýbám.
Avatar
Vojta Pšenák
Redaktor
Avatar
Vojta Pšenák:

Mimochodem, měl bys ošetřit hesla, jsou volně přístupná v databázi. Taky by nemělo být možné zaregistrovat se s prázdným jménem/heslem/e­mailem. Nevím jestli se ti v tom někdo hrabal, ale máš v databázi hroznej bordel

 
Nahoru Odpovědět 29.12.2013 16:33
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

Toho jsem si ani nevšiml, už jsem mu to z toho příspěvku vymazal, stejně to ale určitě vidělo plno lidí. Alespoň si to bude pamatovat a neudělá podobnou hloupost až opravdu půjde o důležitý projekt.

Nahoru Odpovědět 29.12.2013 16:35
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
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

V důležitých projektech se přihlašovací údaje do skriptů nedávají.

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

Díky za upozornění, zjistil jsem to hned jak ten kod odeslal a bohužel jsem to tady už nemohl vymazat. Heslo jsem změnil, udělal jsem pěknou hovadinu :/.

 
Nahoru Odpovědět 29.12.2013 16:51
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 10 zpráv z 10.