Autor | Zpráva | ||
---|---|---|---|
hladis Profil |
#1 · Zasláno: 4. 9. 2008, 07:30:32 · Upravil/a: hladis
mohli by jste mi prosím vysvětlit, jak funguje přihlášení a napsat mi i třeba nějaký jednoduchý příklad?
docela to chápu ale ten kód je pro mě velkou neznámou. dokázali by jste mi prosím poradit? za každou odpověď díky |
||
srigi Profil |
spravis si v DB tabulku users:
CREATE TABLE `users` ( `id` mediumint unsigned NOT NULL auto_increment, `username` varchar(20) NOT NULL, `password` char(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM; INSERT INTO `users` (`id`, `username`, `password`) VALUES (NULL, 'admin', SHA1('pokus')); index.php <?php include("db.php"); // musi obsahovat funkciu db_connect() session_start(); // je uzivatel prihlaseny? if (isset($_SESSION['loged'])) { // ano je, zobraz chraneny obsah echo "Vitaj " . $_SESSION['username']; die(); } else { // uzivatel nie je prihlaseny // odoslal uzivatel prihlasovaci formular? if (isset($_POST['submit'])) { // ano odoslal, over udaje $username = trim($_POST['username']); if (empty($username)) die("prazdne policko meno"); $password = trim($_POST['password']); if (empty($password)) die("prazdne policko heslo"); db_connect(); $query = "SELECT * FROM `users` WHERE `username` = '$username'"; @$result = mysql_query($query); if (!$result) die("zlyhala komunikacia s DB"); // je uzivatel zaregistrovany? if ($row = mysql_fetch_assoc($result)) { // ano uzivatel je registrovany $db_passwd = $row['password']; // over heslo if (sha1($password) == $db_passwd) { // heslo O.K. $_SESSION['loged'] = "yes"; $_SESSION['username'] = $username; $_SESSION['lastact'] = time(); header('Location: index.php'); die(); } else { // nespravne heslo die("zadali ste nespravne heslo"); } } else { // uzivatel nie je registrovany, odchpd prec die("nie ste registrovany uzivatel, pristup zakazany"); } } else { // prihlasovaci formular nebol odoslany, zobraz ho ?> <form action="index.php" method="post"> meno: <input type="text" name="username" /><br /> heslo: <input type="password" name="password" /><br /> <input type="submit" name="submit" value="odoslat" /> </form> <?php die(); } } ?> |
||
hladis Profil |
#3 · Zasláno: 4. 9. 2008, 12:21:07 · Upravil/a: hladis
srigi
kde mám toto: INSERT INTO `users` (`id`, `username`, `password`) VALUES (NULL, 'admin', SHA1('pokus')); napsat když mám databázi na ic.cz? a když napíšu ten kód tak mi to napíše: Parse error: syntax error, unexpected T_STRING in /home/free/clanweb.cz/m/miniking/root/www/index.php on line 3 |
||
srigi Profil |
#4 · Zasláno: 4. 9. 2008, 12:43:08 · Upravil/a: srigi
Do PhpMyAdmin-a. To su SQL prikazy.
|
||
hladis Profil |
#5 · Zasláno: 4. 9. 2008, 12:51:18
|
||
Kajman_ Profil * |
#6 · Zasláno: 4. 9. 2008, 12:54:22
Na konci druhého řádku chybí středník.
|
||
hladis Profil |
#7 · Zasláno: 4. 9. 2008, 13:04:18
pořád to píše chybu: Odkaz
|
||
joe Profil |
#8 · Zasláno: 4. 9. 2008, 13:06:12
$username = trim($_POST['username']); Data od uživatele nejsou ošetřená... |
||
nightfish Profil |
#9 · Zasláno: 4. 9. 2008, 13:06:15
hladis
Warning: include(db.php) [function.include]: failed to open stream: No such file or directory in /home/free/clanweb.cz/m/miniking/root/www/index.php on line 2 soubor db.php neexistuje (na což bys zřejmě došel i prostým přeložením té chybové hlášky pomocí slovníku) |
||
joe Profil |
#10 · Zasláno: 4. 9. 2008, 13:06:56
hladis
Warning: include(db.php) Musíš se taky připojit k databázi. Nemáš soubor db.php. Nejdřív by sis o tom měl něco přečíst. |
||
hladis Profil |
#11 · Zasláno: 4. 9. 2008, 13:08:01 · Upravil/a: hladis
joe
jak je mám ošetřit? nightfish ok, vytvořil jsem soubor db.php a pořád nic, co by měl ten soubor obsahovat? srigi db_connect() prosím poraďte mi a nový odkaz: Odkaz |
||
srigi Profil |
#12 · Zasláno: 4. 9. 2008, 15:01:58 · Upravil/a: srigi
db.php <?php function db_connect() { @$link = mysql_connect('mysql.ic.cz', 'MENO', 'HESLO'); if (!$link) die("zlyhalo pripojenie k DB"); @$result = mysql_select_db('cw_miniking', $link); if (!$result) die("zlyhalo pripojenie k DB"); return true; } joe >> to jednoduche (ne)osetrenie je tam naschval, kcel som co najkratsi kod - princip. |
||
hladis Profil |
#13 · Zasláno: 4. 9. 2008, 16:05:19 · Upravil/a: hladis
srigi
skript funguje, jak se odhlásit a jak bych udělal registraci? |
||
grimword Profil |
#14 · Zasláno: 4. 9. 2008, 16:27:33
odhlaseni >>zmenit(vymazat) session; registrace>>skript co bude vkladat nove zaznamy do mysql?:)
|
||
hladis Profil |
#15 · Zasláno: 4. 9. 2008, 16:30:22
grimword
jo to mám na mysli:) |
||
srigi Profil |
#16 · Zasláno: 4. 9. 2008, 16:42:16 · Upravil/a: srigi
hladis
Odo mna uz kod nekci, prejav trocha samostatnosti. edit: ten logout teda este napisem. Do prvej podmienky pridaj jeden riadok, tak aby to vypadalo takto: // je uzivatel prihlaseny? if (isset($_SESSION['loged'])) { // ano je, zobraz chraneny obsah echo "Vitaj " . $_SESSION['username'] ."<br>\n"; echo "<a href=\"logout.php\">odhlasit</a>"; die(); } Teraz vytvor logout.php v tom istom priecinku kde je index.php: <?php session_start(); if (isset($_SESSION['loged'])) { // set cookie expiration time to past. Client delete such cookie setcookie(session_name(), "", time() - 259200, '/'); // delete cookie record from client unset($_COOKIE[session_name()]); // unset all SESSION variables $_SESSION = array(); // and finaly destroy this SESSION session_unset(); session_destroy(); header('Location: index.php'); die(); } else { die("nepovoleny pristup"); } |
||
hladis Profil |
#17 · Zasláno: 4. 9. 2008, 16:51:54
poradte mi nekdo kod aspon na tu registraci prosiim
|
||
Nox Profil |
#18 · Zasláno: 4. 9. 2008, 17:14:48
http://www.linuxsoft.cz/php/
přečti a budeš vědět |
||
hladis Profil |
#19 · Zasláno: 4. 9. 2008, 17:51:56 · Upravil/a: hladis
právě tam to čtu ale nemohu pochopit zápis MYSQL funkce INSERT, mohl by mi ho někdo aspoň trochu vysvětlit prosím?
mám kód: <form action="registrace.php" method="post"> meno: <input type="text" name="jmeno" /><br /> heslo: <input type="password" name="heslo" /><br /> <input type="submit" name="submit" value="odoslat" /> </form> <? // zde je include souboru s konstantami mysql_connect(mysql.ic.cz, cw_miniking, miniking); mysql_select_db(users); mysql_query("INSERT INTO [users] (username) VALUES ($jmeno varchar 15, ...)") mysql_query("INSERT INTO [users] (password) VALUES ($heslo varchar 15, ...)") or die("Nelze vykonat definiční dotaz: " . mysql_error()); ?> co v něm mám blbě? |
||
8383-9021 Profil * |
#20 · Zasláno: 4. 9. 2008, 18:09:23
<? // zde je include souboru s konstantami mysql_connect("mysql.ic.cz", "cw_miniking", "miniking"); mysql_select_db("users"); mysql_query("INSERT INTO `users` (username,password) VALUES ('$jmeno','$heslo')") or die(mysql_error()); ?> |
||
srigi Profil |
#21 · Zasláno: 4. 9. 2008, 18:13:37
„co v něm mám blbě?“
Nazov databazy predsa nie je users. Okrem toho mas zlu syntax INSERT INTO prikazu, ale oprava uz bola predvedene vyssie. |
||
hladis Profil |
#22 · Zasláno: 4. 9. 2008, 18:18:52
|
||
joe Profil |
#23 · Zasláno: 4. 9. 2008, 18:22:23
srigi
Ja vim, to bylo pro zakladatele, protože takoví jako je on, právě vezmou to co tu někdo napsal (ty) a zkopírujou. A pak se diví proč to a to... hladis Jak je ošetřit. Jednoduše, najdi si něco o tom, jak bezpečně vkládat data do db. Je jednoduchý zkopírovat kód, naházet ho do souboru a mít radost, že to funguje. Když něco děláš, měl bys o tom něco vědět, a to jistě nevíš jak je vidět. |
||
8383-9021 Profil * |
#24 · Zasláno: 4. 9. 2008, 18:23:03
hladis
Skontroluj či máš dobré údaje do db. |
||
hladis Profil |
#25 · Zasláno: 4. 9. 2008, 18:35:15
8383-9021
podívej se sám: |
||
8383-9021 Profil * |
#26 · Zasláno: 4. 9. 2008, 18:42:04
hladis
<? // zde je include souboru s konstantami mysql_connect("mysql.ic.cz", "cw_miniking", "miniking"); mysql_select_db("cw_miniking"); mysql_query("INSERT INTO `users` (username,password) VALUES ('$jmeno','$heslo')") or die(mysql_error()); ?> |
||
hladis Profil |
#27 · Zasláno: 4. 9. 2008, 18:45:55
8383-9021
pise mi to spatne heslo a pritom ho mam dobre... |
||
8383-9021 Profil * |
#28 · Zasláno: 4. 9. 2008, 18:49:29
hladis
Sprav si to takto, sem medzi úvodzovky si vyplň údaje do mysql: $db_host = ""; //host $db_user = ""; //prihlasovacie meno $db_pass = ""; //prihlas. heslo $db_name = ""; //nazov db a pripajaj sa takto mysql_connect($db_host, $db_user, $db_pass); mysql_select_db($db_name); |
||
hladis Profil |
#29 · Zasláno: 4. 9. 2008, 19:00:45
8383-9021
takže teď tam mám kód: <form action="registrace.php" method="post"> meno: <input type="text" name="jmeno" /><br /> heslo: <input type="password" name="heslo" /><br /> <input type="submit" name="submit" value="odoslat" /> </form> <? // zde je include souboru s konstantami $db_host = "mysql.ic.cz"; //host $db_user = "cw_miniking"; //prihlasovacie meno $db_pass = "miniking"; //prihlas. heslo $db_name = "cw_miniking"; //nazov db mysql_connect($db_host, $db_user, $db_pass); mysql_select_db($db_name); mysql_query("INSERT INTO `users` (username,password) VALUES ('$jmeno','$heslo')") or die(mysql_error()); ?> a pořád mi to píše při loginu nesprávné heslo |
||
8383-9021 Profil * |
#30 · Zasláno: 4. 9. 2008, 19:21:59
Pri akom logine?
Ako robíš login? Keď sa prihlasuješ tak údaje nezapisuj ale načítavaj SELECT * FROM `tabulka` ... |
||
Téma pokračuje na další straně.
|
0