NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Erik Šťastný:18.10.2016 10:29

Zdravíčko, rád bych se zeptal na názory jak by měl vypadat SQL dotaz při logování uživatele do aplikace.

Zatím mám něco ve smyslu :

SELECT Username FROM logins WHERE Username='Pepa' AND Password='1234'

A následně v aplikaci :

If ("Pepa".equals(Výstup z DB)
{
        // úspěšně přihlášeno
}
else
{
        / špatné jméno nebo heslo
}

Ale musím říct, že tenhle způsob porovnávání Pepy s Pepou se mi moc nelíbí, je nějaký jiný, hezčí prosím? :)

 
Odpovědět
18.10.2016 10:29
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:18.10.2016 19:49
<?php

$db = new PDO('host', 'user', 'password', 'options'); //Připojení k db pokud není jinde

$login = $db->prepare('SELECT username FROM logins WHERE username = ? AND password = ?');
$login->execute(array($username, $password));
$user = $login->fetch();

if (!$user){
    // Zpracování výjimek nebo chyb
}

$_SESSION['user'] = $user;
Editováno 18.10.2016 19:51
Nahoru Odpovědět
18.10.2016 19:49
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:20.10.2016 8:56

Já neřekl ani slovo, že jde o PHP :D

Nicméně ve finále je to vlastně mám pocit to stejné ne? Jde mi hlavně o ten SELECT, ten bude asi vždy takovýdle? Neexistuje jen něco jako "If exist"?

 
Nahoru Odpovědět
20.10.2016 8:56
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:20.10.2016 18:45

Jo no, nějak sem si pamatoval z minulých diskusí, že jsi řešil php a neuvědomil sem si, že tady jde jen o sql dotaz.

Nicméně SQL dotaz máš správný. Pokud nepotřebuješ vytáhnout z db přímo údaje o přihlašujícím se uživateli tak se dá použít taky

SELECT COUNT(*) FROM logins WHERE username = 'Pepa' AND password = '1234'

to pak vrací 1 pokud byl uživatel nalezen s odpovídajícím heslem a 0 pokud není nalezen nebo nesouhlasí jméno/heslo

jinak je nutné to řešit v kódu aplikace

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
20.10.2016 18:45
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:20.10.2016 21:52

To víš Php řeším v práci a C# a MySQL doma :D

Ty jo to mě vůbec nenapadlo ten count s výsledkem 1/0 je mnohem hezčí , díky ! :)

 
Nahoru Odpovědět
20.10.2016 21:52
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 5 zpráv z 5.