Autor Zpráva
Xzibit
Profil *
pls mozte mi pomoct napisat login v php z databazou mysql??
mam databazu len login neviem a este potom logine ak sa niekto logne a ja chcem selectovat jeho hodnoty tak ako php zisti ze to ma brat z jeho riadka?/??
ja vim ze nemam davat 2 dotazy v jednom ale to psolu suvisi
tark
Profil
zjednodušeně:


SQL query: select id,name,password from users where username=$_POST['username']
Xzibit
Profil *
dik a ten login nevis??
RAmses
Profil *
mozna je to lamacsky napsane ale fakci to:
LOGIN

<?
$error = false; //nenastala chyba
if(IsSet($_POST['login_form']))
{
$login = $_POST['login'];
$password = $_POST['passwd'];
if (IsSet($login) && $login == "")
{
$messageID = '016'; //nezadan login
$error = true;
}
if (IsSet($password) && $password == "")
{
$messageID = '017'; //nezadano heslo
$error = true;
}

$find_user = @MySQL_Query("SELECT * FROM `users` WHERE login='".StrToUpper($login)."' AND password='$password'");

if (@MySQL_Num_Rows($find_user) == 0)
{
$messageID = '018'; //spatne jmeno nebo heslo
$error = true;
}
if (!$error)
{
if($result = MySQL_Fetch_Array($find_user))
{
$log_update = @MySQL_Query("UPDATE `users` SET lastlog = now() WHERE login='$login'");
@Session_Start();
$_SESSION['auth'] = Array
(
'id' => $result['id'],
'login' => $result['login'],
'email' => $result['email'],
'level' => $result['level'],
'time' => Time()+3600
);
$messageID = '019'; //login uspesny
//Header('Location: http://www.neco.cz/index.php?page=message.php&zprava='.$zprava);
}
else
{
$error = true;
exit;
}
}
}
?>


<?
@Session_Start();
if (IsSet($_SESSION['auth']))
{
$sesid = $_SESSION['auth']['id'];
$seslogin = $_SESSION['auth']['login'];
$sesemail = $_SESSION['auth']['email'];
$seslevel = $_SESSION['auth']['level'];
$sestime = $_SESSION['auth']['time'];
if ($sestime < Time())
{
@Session_Destroy();
$messageID = '021';

@Header('Location: http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
}

else
{
$_SESSION['auth']['time'] = Time()+1800;
}
}
?>
RAmses
Profil *
Ten druhy zdrojak mam v souboru check_session.php a mam ho includovany do stranek ktere jsou za loginem, tedy po prihlaseni a kontroluje jestli jsi prihlaseny a jestli uz nevyprsela doba prihlaseni
Xzibit
Profil *
no jo ale tam vidim len jeden zrojak :/
RAmses
Profil *
no ja vidim dva a kazdy je oddelen <? ?>
error414
Profil
Xzibit
Pokud ani trochu nechapes tenhle kod tak si to nech od nekoho napsat.

RAmses
if (IsSet($login) && $login == "")
tohle treba nechapu ja proc to dvoji testovani, podle me staci empty
Xzibit
Profil *
no vi dvaja experti dik a este ked chcem abi php poznal ze ked sa dakto logne ze ma davat info z jeho riadku to us nemusim davat? ak hej pls napiste
RAmses
Profil *
No ja kdyz sem objevil ze je nejake empty tak uz sem byl liny to upravovat, ja kdyz se neco naucim tak to aplikuju na nove scripty a tenhle sem nasel v kompu ve starych vecech
RAmses
Profil *
No vzdyt pokud se nekdo logne tak v sessions ma ulozene i jeho ID podle ktereho potom vybiras jeho udaje z db....pokud je to to co myslis....asi takhle


$select_info = MySQL_Query("SELECT atributy FROM `tabulka` WHERE id=$_SESSION['auth']['id'] LIMIT 1");
error414
Profil
RAmses
OT, nemas nekdy takovy pocit ze kdyz se treba naucis nejakou novou vec v php tak se ti ty stare veci nelibi a nejaradeji bys je vsecky prepsal
Xzibit
Profil *
jj a ten stlpec auth je tam tedy na co??
RAmses
Profil *
RAmses
OT, nemas nekdy takovy pocit ze kdyz se treba naucis nejakou novou vec v php tak se ti ty stare veci nelibi a nejaradeji bys je vsecky prepsal


No přesně takový pocit mám, ale u mě je lenost nad všechny pocity. Což mě ovšem přivedlo k PHP :D Furt kutim jak to udělat co nejjednodušeji aby se o to musel starat co nejmíň, nebo spíš když to dělám pro někoho, tak aby si mohl adminem nastavit kdeco a nemusel hrabat do zdrojáku.
Ale s tím přepisováním scriptů je to tak, že ho přepíšu, pokud ho chci na něco nového použít, tam kde je ho už neměním, leda když dělám novou verzi stránek
RAmses
Profil *
Nevím jestli to řeknu správně, ale je to název té session, dvou rozmerné pole $_SESSION kde prvni rozmer je nazev session a druhy je nazev prvku obsahujici info o prihlaseni jako id, login atd....Pokud vysvetluju blbe tak me nekdo opravte
Xzibit
Profil *
aha dik moc
jozob
Profil
error414
if (IsSet($login) && $login == "")
"Tohle treba nechapu ja proc to dvoji testovani, podle me staci empty"
Pokiaľ empty() vráti TRUE, neznamená to hneď, že aj funkcia isset() by vrátila TRUE, teda premenná môže byť prázdna ale definovaná, alebo môže byť nedefinovaná a v tom prípade by funkcia empty() mala vrátiť Notice. Nemýlim sa?
error414
Profil
jozob
Znam co vraci tyhle funkce ale nechapu proc testovat login funkcemi isset a ia pak testovat jestli neni prazdny.

Staci zkontrolovat jestli neni prazdne.
mala vrátiť Notice podle me to vrati notice jen proto ze pouzivas nedefinovanou promenou, coz je jen ochrana proti preklepum.
jozob
Profil
error414
Ten zdroják som nečítal. Môže to byť tak, že premenná bude definovaná vždy, ale pokiaľ som si neni istý, vždy radšej použijem isset(). A skript by nemal hádzať Notice.
Doom4
Profil *
Ahoj myslim ze reseni pro tebe je zde http://www.linuxsoft.cz/article.php?id_article=538 :-))))) je to tam pekne vysvetlene a vysledne zdrojove kody loginu si muzes stahnout a poupravit tak jak potrebujes .-)))
crazy
Profil *
pokud mate naladu tak mi napiste na 295-080-606 na ICQ potřebuju moc poradit kolem LOGINU.. je mi jedno jestli přez php bo JS... a bo to napište sem ale podrobně všechno.. (webhosting www.webzdarma.cz bo www.ic.cz) díkes všem co jsou ochotni
Toto téma je uzamčeno. Odpověď nelze zaslat.