abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 6
včera 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
včera 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 26
včera 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 11
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 5
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 60
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 675 hlasů
 Komentářů: 61, poslední dnes 13:06
Rozcestník
Reklama

Dotaz: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi

17.10.2011 22:32 Johny
Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Přečteno: 791×
Zdravím :), Mám problém s porovnáním dat z formuláře v databázi MySQL. Vše běží zatím na localhostu jde o to, že uživatel zadá jméno a heslo zatím jen pomocí echa vypíše jestli operace proběhla správně a její výsledek. Problém je v tom, že k žádnému výstupu s datbáze se ani nedostanu a tím pádem je porovnávat dvě hodnoty nemožné :/.

kód PHP:
$path = "/wpplugins/";

// funkce pro ošetření vstupních dat od uživatele
function db_escape($str) 
{ 
    return mysql_real_escape_string(@get_magic_quotes_gpc() ? stripslashes($str) : $str);
} 

include "spojeni_db.php"; 

$PHPSESSID=rand(1, 2000000);
$_SESSION["test"]=0;
$_SESSION["PHPSESSID"]=$PHPSESSID;
$_SESSION["test"]=$_POST['test'];
$IP=$_SERVER["REMOTE_ADDR"];

if ($_SESSION["test"] = 1) {
	$_SESSION["name"]=trim($_POST['name']);
	$_SESSION["pass"]=trim($_POST['pass']);
	if (!isset($_SESSION["name"])){$_SESSION['name']="NULL";}
	if (!isset($_SESSION["pass"])){$_SESSION['pass']="NULL";}
	if (!isset($_POST['test'])){$_SESSION['test']="NULL";}
	
	$tb = "logintable";
	$username = $_SESSION["name"];
	$userpass = $_SESSION["pass"];
	$result = mysql_query("SELECT COUNT(*) FROM $tb WHERE Nick = '$username' AND Password = '$userpass' ");

echo "$result";
echo "jste úspěšně přihlášen";

}
else {zobraz formular}

zobraz zakladni formular>

kód souboru pro pripojeni k databázi:
if ($_SERVER["SERVER_ADDR"]=="localhost")
{
  define("SQL_HOST","localhost");
  define("SQL_DBNAME","users");
  define("SQL_USERNAME","root");
  define("SQL_PASSWORD","richter");
}
else
{
	echo "Nelze se pripojit k databazi";
}

Nemůžu se dopátrat problému, předem díky za odpovědi.

Odpovědi

17.10.2011 23:36 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
A co to tak dát do tagu <pre> a se to dá přečíst?
echo "$result";
je blbost, nějaké mysql_fetch_xxx tam chybí…, ale jinak nevím ani na co se ptáte…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
18.10.2011 08:50 Johny
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Oprava: Vlastně mi šlo o to, aby se uživatel pomocí jednoduchého logovacího formuláře přihlásil k registrovanému obsahu stránky. Aby toto bylo možné musím provést kontrolu správnosti jména a hesla v databázi kam se jména a hesla ukládají.Uživatel zadá svůj Nick a Password a následně pomcí PHP se pokouším porovnávat udáje z POST->FORM s údaji v databázi, celkem jednoduchá logická operace jak si na stránky nepustit nikoho kdo není registrovaný (takový menší redakční systém. Jenže se mi zatím nepovedlo ani pomocí PHP v kombinaci s SQL tyto data správně porovnat a přesměrovat registrované na požadovaný obsah. Jde jen o kontrolu FORM x Databáze MySQL.

18.10.2011 10:19 kuka
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
To, ze jde o prihlasovani na strance, problem pouze zamlzuje. Podivej se do nejakeho tutorialu, jak v PHP udelat dotaz do mysql, zjistit co vraci atd.
18.10.2011 11:02 Johny
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Aktualizuji problem:
$id_spojeni = mysql_connect(`localhost`,`root`,`richter`);
if (!$id_spojeni) {
	echo "Spojení s MySQL databází se nezdařilo 
"; } else { echo "Spojeni s databází navázáno
"; } $vysledek_vybrani = mysql_select_db('users', $id_spojeni); if (!$vysledek_vybrani) { echo "Databázi users se nám nepodařilo vybrat
"; } else { echo "Databáze users vybrána
"; } $id_vysledku = mysql_query(`SELECT * FROM logintable`,$id_spojeni); if (!$id_vysledku) { echo "Nepodařilo se nám poslat SQL dotaz do databáze
"; } else { echo "Podařilo se poslat SQL dotaz
"; } Jméno Heslo while($radek = mysql_fetch_row($id_vysledku)) { for ($i=0; $i<2; ++$i) echo ``, $radek[$i], ``; } mysql_close($id_spojeni);
výstup na stránce: Spojeni s databází navázáno Databázi users se nám nepodařilo vybrat Nepodařilo se nám poslat SQL dotaz do databáze Jméno Heslo ( ! ) Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\resultdb.php on line 39 Call Stack # Time Memory Function Location 1 0.0006 372944 {main}( ) ..\resultdb.php:0 2 0.1229 379056 mysql_fetch_row ( ) ..\resultdb.php:39 PS: nechápu jak může script připojit uživatele ROOT, ale neselectnout požadovanou datbázi když je syntaxe správně...nějaké rady?
Josef Kufner avatar 18.10.2011 11:24 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Proč tam máš všude obrácené apostrofy místo normálních?
Hello world ! Segmentation fault (core dumped)
18.10.2011 11:46 Johny
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
protože bez nich mi nefunguje ani to mysql_connect(). to nebude podle mě tímhle...
18.10.2011 12:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Na to lze odpovědět jen: „to je pěkná blbost“.
Je třeba znát základy jazyka, a u PHP prostě řetězce mohou být buď mezi " nebo ' a každý má jinou funkcionalitu (pro znalé, <<< je fčul zbytečné :-)).
Zkuste si třeba v terminálu:
php -r 'echo `ls`;'
a pak:
php -r 'echo "ls";'
trochu rozdíl, že?
Znak ` - v PHP nemá místo, krom toho, že je to znak jak každý jiný.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
18.10.2011 11:56 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Rozlišujte ` ' ", v této kombinaci (MySQL a PHP):
` - má význam v MySQL příkazu pro názvy DB, tabulek, sloupců
' - PHP řetězec „jak je“
" - PHP řetězec dosazující proměnné atd.

Následující upravený(neříkám, že super správný) kód je normálně funkční.
<?php
$id_spojeni = mysql_connect('localhost','root','heslo');
if (!$id_spojeni)
{
  echo "Spojení s MySQL databází se nezdařilo\n";
  exit(1);
}
else
{
  echo "Spojeni s databází navázáno\n";
}

$vysledek_vybrani = mysql_select_db('users', $id_spojeni);
if (!$vysledek_vybrani)
{
  echo "Databázi users se nám nepodařilo vybrat\n";
  echo "Error no. " . mysql_errno($id_spojeni) . ", Message: " . mysql_error($id_spojeni)  . "\n";
  exit(2);
}
else
{
  echo "Databáze users vybrána\n";
}

$id_vysledku = mysql_query('SELECT * FROM logintable',$id_spojeni);
if (!$id_vysledku)
{
  echo "Nepodařilo se nám poslat SQL dotaz do databáze\n";
  echo "Error no. " . mysql_errno($id_spojeni) . ", Message: " . mysql_error($id_spojeni)  . "\n";
  exit(3);
}
else
{
  echo "Podařilo se poslat SQL dotaz\n";
}
//Jméno
//Heslo
while($radek = mysql_fetch_row($id_vysledku))
{
  for ($i=0; $i<2; ++$i)
    echo $radek[$i] . "\n";
}
mysql_close($id_spojeni);
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 18.10.2011 14:38 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Btw, tady je příklad, který výsledek SQL dotazu naformátuje do tabulky.

Maličko upravený (hlavně doplněno escapování html značek ve výsledku):
<?php
$query="select * from user";
$result=mysql_query($query);
$numfields = mysql_num_fields($result);

echo "<table>\n<tr>";

// Header
for ($i=0; $i < $numfields; $i++) {
   echo '<th>', htmlspecialchars(mysql_field_name($result, $i)), '</th>';
}

echo "</tr>\n";

// Data
while ($row = mysql_fetch_row($result)) {
   echo '<tr>';
   foreach ($row as $col) {
     echo '<td>', htmlspecialchars($col), '</td>';
   }
   echo "</tr>\n";
}

echo "</table>\n"
?>
Jinak doporučuju se podívat na funkci mysql_fetch_assoc. Kód při jejím používání je mnohem čitelnější a prý to ani není nijak znatelně pomalejší.

A pak také na mysql_real_escape_string.
Hello world ! Segmentation fault (core dumped)
rADOn avatar 18.10.2011 18:54 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
Pokud potřebuješ jen jednoduché přihlášení, vybodni se na SQL a formuláře a použij http autentizaci. Je to otázka pár řádků v konfiguráku a plaintextového souboru s hesly. Zakryptovanými! (styď se).

Pokud chceš něco složitějšího, máš to blbě od začátku do konce.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
18.10.2011 19:09 l4m4
Rozbalit Rozbalit vše Re: Logovací systém - porovnávání výsledků z formuláře s údaji v databázi
s/jednoduché přihlášení/\0 ručně administrátorem udržované množiny uživatelů/
To je dost velký rozdíl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.