Питане за login система и проверка за admin

dashi

Registered
Здравяйте,
направих си login система със следният login.php файл:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META HTTP-EQUIV="Content-Language" CONTENT="bg">
<?php
// Закача се към базата данни
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("reg") or die(mysql_error());
$headers = "Content-type: text/html; charset=windows-1251";
//проверява дали потребителят има сетната бисквитка
if(isset($_COOKIE['ID_my_site']))

//ако има ви логва автоматично и ви пренасочва към последно запазената страница
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: members.php");
}
}
}



//ако формата е изпълнена
if (isset($_POST['submit'])) {

// проверява дали полетата са запълнати
if(!$_POST['username'] | !$_POST['pass']) {
die('Не сте попълнили нужните полета.');
}
// проверява дали има такъв потребител с такава парола

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

//дава грешла ако няма
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('Няма такъв потребител. <a href=add.php>Натиснете тук, за да се регистрирате</a>');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Грешна парола, опитайте отново');
}
else
{

// ако всичко е наред сетваме бизквитки
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

//след това пренасочваме към потребителската сесия
header("Location: members.php");
}
}

}
else
{

// ако не е вече излязал потребител
?>
<style type="text/css">
body {
background-image: url(backgroud.jpg);

}
</style>
</head>
<body>
<div style="width: 800px height: 600px; border: 1px solid white;" align="center">
<table border="0" width="740" height="100%" align="center" cellpadding="0" cellspacing="0" bgcolor= "#FFFFFF" background="bg.jpg">
<tr align="left">
<td align="center">
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h3>Влезте с потребителското <br>си име и парола</h3></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td align="left"><a href="add.php">Регистрация</a></td><td colspan="2" align="right">
<input type="submit" name="submit" value="Влез">
</td> </tr>
</table>
</form>
<?php
}

?>

</td>
</tr>

</table>
</div>
</body>
</html>

Искам да попитам какво да добавя, за да прави проверка за user "admin" и ако си влязал с този user да пренасочва към примерно members2.php
T.e. user-a admin да може да влиза в друг линк и за да се има достъп до промени по сайта. Дано да сте ме разбрали.
Благодаря предварително.
 
ами примерно добави и
if($_POST['user']=='admin' and $_POST['pass]=$info[password]){
ti si admin :)
}
макара това да не е наи добрия вариант ако питаш мен.
По добре си направи едно поле в база данни в което за записваш левел-а на потребителите примерно 0 потребител 1 модератор 2 админ или нещо такова и после
if($info['level']=2){ ti si admin }
if($info['level']=1){ ti si mod}
if($info['level']=0){ ti si user }
 
mute каза:
ами примерно добави и
if($_POST['user']=='admin' and $_POST['pass]=$info[password]){
ti si admin :)
}
макара това да не е наи добрия вариант ако питаш мен.
По добре си направи едно поле в база данни в което за записваш левел-а на потребителите примерно 0 потребител 1 модератор 2 админ или нещо такова и после
if($info['level']=2){ ti si admin }
if($info['level']=1){ ti si mod}
if($info['level']=0){ ti si user }
Благодаря ти - това за level къде точно да го добавя в кода, че нещо не ми се получава и може ли вместо съобщението ти си адми да има линк?
Защото аз искам да се влиза с admin и там да се прави проверк аи примерно да сочи към members2.php, а ако се влезе като обикновен user да сочи към members.php
 
добави още едно поле в таблицата ти в база данни и разбирасе че може да пренасочва към header("Location: members2.php");
 
mute каза:
добави още едно поле в таблицата ти в база данни и разбирасе че може да пренасочва към header("Location: members2.php");
Направих го така: <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META HTTP-EQUIV="Content-Language" CONTENT="bg">
<?php
// Закача се към базата данни
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("reg") or die(mysql_error());
$headers = "Content-type: text/html; charset=windows-1251";
//проверява дали потребителят има сетната бисквитка
if(isset($_COOKIE['ID_my_site']))

//ако има ви логва автоматично и ви пренасочва към последно запазената страница
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: members.php");
}
}
if($info['level']==3){ header("Location: members2.php");}
else {header ("Location: members.php");}
}



//ако формата е изпълнена
if (isset($_POST['submit'])) {

// проверява дали полетата са запълнати
if(!$_POST['username'] | !$_POST['pass']) {
die('Не сте попълнили нужните полета.');
}
// проверява дали има такъв потребител с такава парола

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

//дава грешла ако няма
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('Няма такъв потребител. <a href=add.php>Натиснете тук, за да се регистрирате</a>');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Грешна парола, опитайте отново');
}
else
{

// ако всичко е наред сетваме бизквитки
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

//след това пренасочваме към потребителската сесия
header("Location: members.php");
}
}

}

else
{

// ако не е вече излязал потребител
?>
<style type="text/css">
body {
background-image: url(backgroud.jpg);

}
</style>
</head>
<body>
<div style="width: 800px height: 600px; border: 1px solid white;" align="center">
<table border="0" width="740" height="100%" align="center" cellpadding="0" cellspacing="0" bgcolor= "#FFFFFF" background="bg.jpg">
<tr align="left">
<td align="center">
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h3>Влезте с потребителското <br>си име и парола</h3></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td align="left"><a href="add.php">Регистрация</a></td><td colspan="2" align="right">
<input type="submit" name="submit" value="Влез">
</td> </tr>
</table>
</form>
<?php
}

?>

</td>
</tr>

</table>
</div>
</body>
</html>
Но не става. Явно нещо греша. Направих поле в базата. МОЛЯ ВИ помогайте, че ми е много важно.
 

Back
Горе