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 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 7
včera 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 1
včera 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
včera 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
včera 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 7
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (3%)
 (10%)
Celkem 387 hlasů
 Komentářů: 31, poslední včera 19:19
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: 789×
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.