Stránka: 1 z 2
| [ Príspevkov: 32 ] | 1, 2 |
Autor | Správa |
---|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
Čavte. Urobil som si základný login ku admin kontu. Cez formulár zadávam nick a heslo, potom mi to overí či existujú aťď. takto vyzera ten kód
Kód: <?php include ("config.php") ?> <?php session_start(); ?> <?php function jeadmin ($meno, $heslo, $link) { $vysledek=mysql_query("select id from clen where meno='".$meno."' and heslo='".$heslo."'", $link); if (mysql_num_rows($vysledek)==0) return; else { $radek = mysql_fetch_array($vysledek); return $radek["id"]; } } // tělo skriptu - nejprve si vytvoříme odkaz na databázi $link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME);
$BudemeZobrazovat=true; if (!empty($_POST)) // už se odeslalo { $id= jeadmin (htmlspecialchars(addslashes($_POST["meno"])), htmlspecialchars(addslashes($_POST["heslo"])), $link); if (!$id) echo "Uživatelské jméno a/nebo heslo nesouhlasí"; else { $BudemeZobrazovat=false; $_SESSION["id"]= $id; echo "si tam"; include ("admin_uvod.php"); } } ?>
Neviem však, ako mám začať kód na ostatných stránkach (ktoré patria do admin konta... ) tak aby boli prístupné len vtedy, keď budem prihlásení.
Viem, že je to určite ľakhé, ale mohli by ste mi poradiť ?
|
|
Registrovaný: 29.10.09 Prihlásený: 06.02.11 Príspevky: 64 Témy: 25 | 25 Bydlisko: Kosice |
Na zaciatok kazdej includovanej stranky.
Kód: session_start(); if(!isset($_SESSION['id'])) { die('Neopravneny pristup'); }
_________________ Apple Macbook White |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
dal som, prihlásil ale napíše neopravneny pristup
|
|
Registrovaný: 22.01.08 Prihlásený: 19.04.15 Príspevky: 492 Témy: 135 | 135 Bydlisko: Bratislava ... |
mal by som otázku, prečo includuješ Config.php do tej istej stránky kde máš už php pripojenie na databázu?
lebo config býva vacsinou connect súbor.
Naposledy upravil B.A.X.O dňa 03.01.2010 14:16, celkovo upravené 1
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
daj
Kód: print_r($_SESSION);
nech vobec vieme, ci ti to session zapise
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
asi áno ....keby som zadal zly nick tam mi napise ze zle heslo...
|
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
blackshadow: kde mám presne dať ten kód, či je to jedno ?
|
|
Registrovaný: 22.01.08 Prihlásený: 19.04.15 Príspevky: 492 Témy: 135 | 135 Bydlisko: Bratislava ... |
Tak sem hoď celý kód ako to máš, aj s tou upravou od tyra.
možno si sa niekde pomýlil len, a lepšie to tak uvidíme.
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
skus pod to:
echo "si tam";
a vlastne, vypise ti "si tam" ?
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
áno, a to tvoje vypísalo Array ( [id] => 6 ) ... id sedí s databázou...
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
Do: admin_uvod.php
daj:
Kód: if($_SESSION["id"]>0) { echo 'Vitaj v administracii'; } else { die('Nie si admin'); }
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
vypísalo : Notice: Undefined variable: _SESSION in D:\Program Files\EasyPHP5.3.0\www\admin_uvod.php on line 2
Nie si admin
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno | |
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
asi to funguje ešte malú prosbu. ako urobiť odhlásenie. aby sa zrušilo session ?
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
Ďuri píše: Chyba ti session_start() preco do includovaneho suboru treba dat session_start ? M1rcO_o píše: ako urobiť odhlásenie. aby sa zrušilo session ?
Kód: session_destroy(); Sprav si odkaz, napr: Kód: <a href="logout.php">odhlas</a> a v logout.php: Kód: <?php session_start(); session_destroy(); header("Location: index.php"); ?>
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Blackshadow píše: preco do includovaneho suboru treba dat session_start ? Ja neviem, ja som tie kody ani nepozeral... ale ked mu vypisovalo hentu chybu... inu pricinu nepoznam. Ale teraz som to pozrel a cudujem sa rovnako ako ty. Ked to funguje, tak dobre, ale je to nejake divne.
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
Tak ak si najdes cas, tak skus toto:
Tvoj hlavny subor
Kód: <?php session_start(); include ("config.php")
function jeadmin ($meno, $heslo, $link) { $vysledek=mysql_query("select id from clen where meno='".$meno."' and heslo='".$heslo."'", $link); if (mysql_num_rows($vysledek)==0) return; else { $radek = mysql_fetch_array($vysledek); return $radek["id"]; } } // tělo skriptu - nejprve si vytvoříme odkaz na databázi $link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME);
$BudemeZobrazovat=true; if (!empty($_POST)) // už se odeslalo { $id= jeadmin (htmlspecialchars(addslashes($_POST["meno"])), htmlspecialchars(addslashes($_POST["heslo"])), $link); if (!$id) echo "Uživatelské jméno a/nebo heslo nesouhlasí"; else { $BudemeZobrazovat=false; $_SESSION["id"]= $id; if($_SESSION["id"]>0) { echo 'Ides do administracie'; define('ADMIN',true); include "admin_uvod.php"; } else { echo 'Nastala chyba'; exit(); } } } ?>
subor "admin_uvod.php" Kód: <?php if(ADMIN) { echo "Som v administracii"; } if($_SESSION["id"]>0) { echo "Session zadane, ID: ".$_SESSION["id"]; } else { echo "Session nejde"; print_r($_SESSION); } ?>
a ze co ti vypise, ked sa prihlasis
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
header("Location: index.php"); čo to presne znamená ? lebo vypisuje že noz found
|
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
Ides do administracieSom v administraciiSession zadane, ID: 6
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
M1rcO_o píše: Ides do administracieSom v administraciiSession zadane, ID: 6 Dakujem, takze v includovanom subore netreba session_start(); M1rcO_o píše: header("Location: index.php"); čo to presne znamená ? lebo vypisuje že noz found
ten header ti presmeruje stranku..
cize miesto index.php si daj subor/stranku,kam sa ma uzivatel presmerovat po tom, ako sa odhlasi.. (nemoze predsa zostat v administracii)
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
ešte jeden problém. Dám odhlásiť od admin konta a skúsim či mi zobrazí stránku aj keď nie som prihlásený. a vypíše Notice: Undefined index: id in D:\Program Files\EasyPHP5.3.0\www\timy_zapis.php on line 3 ... dobre je že nezobrazí stránku ale tám poznámka by tam nemusela byť
|
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
chcem sa všetkým poďakovať, najmä Blackshadow-i za pomoc... Funguje to dobre diki....
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
co je v tom subore timy_zapis.php ?
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
Doteraz som mal heslo ako varchar... dal som tam funkciu md5 ( aj v databaze )... lenže nejako to nereaguje... je chyba len v zápise ?
Kód: <?php include ("config.php") ?> <?php session_start(); ?> <?php function jeadmin ($meno, $heslo, $link) { $vysledek=mysql_query("select id from clen where meno='".$meno."' and heslo= md5('.$heslo.')", $link); if (mysql_num_rows($vysledek)==0) return; else { $radek = mysql_fetch_array($vysledek); return $radek["id"]; } } // tělo skriptu - nejprve si vytvoříme odkaz na databázi $link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD); mysql_select_db(SQL_DBNAME);
$BudemeZobrazovat=true; if (!empty($_POST)) // už se odeslalo { $id= jeadmin (htmlspecialchars(addslashes($_POST["meno"])), md5($_POST["heslo"]), $link); if (!$id) echo "Uživatelské jméno a/nebo heslo nesouhlasí"; else { $BudemeZobrazovat=false; $_SESSION["id"]= $id; echo "Prihlasenie uspesne : "; include ("admin_uvod.php"); } } ?>
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
Kód: $vysledek=mysql_query("select id from clen where meno='".$meno."' and heslo='.$heslo.'", $link); toto tam daj. Ten md5 je tam zbytocny, pretoze heslo do tej funkcie uz zadavas ako md5 tu: Kód: $id= jeadmin (htmlspecialchars(addslashes($_POST["meno"])), md5($_POST["heslo"]), $link);
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
ani tak nefunguje
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
V databaze si si prepisal to heslo na jeho md5 hash ?
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
tak dal som do sql prikazu INSERT INTO `clen` ( `meno` , `heslo` )
VALUES (
'skuska', MD5( '123456' )
);
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
tu funkciu si prepis na:
Kód: function jeadmin ($meno, $heslo, $link) { echo '<br>Heslo z funkcie je: '.$heslo.'<br>'; $vysledek=mysql_query("select id from clen where meno='".$meno."' and heslo= md5('.$heslo.')", $link); if (mysql_num_rows($vysledek)==0) return; else { $radek = mysql_fetch_array($vysledek); echo '<br>Heslo z DB je: '.$radek['heslo'].'<br>'; return $radek["id"]; } }
a uvidime, co mas v DB za heslo a ake tam vkladas
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.08.09 Prihlásený: 07.03.21 Príspevky: 152 Témy: 34 | 34 |
Kód: Heslo z funkcie je: e10adc3949ba59abbe56e057f20f883e Uživatelské jméno a/nebo heslo nesouhlasí
je presne také isté ako v databáze
|
|
Stránka: 1 z 2
| [ Príspevkov: 32 ] | 1, 2 |
|