X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Вопрос по регистрации/авторизации и группы пользователя. Интересный вопрос =)
MAKAR_hb
MAKAR_hb
Topic Starter сообщение 3.2.2011, 10:02; Ответить: MAKAR_hb
Сообщение #1


Здравствуйте дорогие посетители html.by

Взялся написать скрипт сайта на php "под свои нужны" надоели cms.

Сайт и основные функции уже написаны, дошло дело до регистрации пользователей.

Так как это мой первый скрипт с этим возникли проблемы. Теперь поподробней.

в базе mysql есть таблицы с полями: логин, пароль, e-mail, и группа пользователя. ( вот об этом и пойдёт речь )

Для начала хочу показать весь php код:

Вход:
[PHP]<?php
// Если посетитель "вошёл" - приветствуем его
if(isset($_SESSION['user']))

{
echo "<p class='text_title_post'>Добро пожаловать,<br>".$_SESSION['user']."!</p>
<p align='center'><a href='out.php'><strong>Выход</strong></a></p>


";
}
else
{


echo "

<table align='center' class='enter_form' width='100' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td><label class='enter_text'>Логин:</label></td>
<td><input class='enter_imput' type='text' name='login' id='login' size='15' maxlength='15' > </td>
</tr>
<tr>
<td><label class='enter_text'>Пароль:</label></td>
<td><input class='enter_imput' type='password' name='pass' id='pass' size='15' maxlength='10' > </td>
</tr>
<tr>
<td>
<br>
<a href='http://localhost/........./reg.php'><div align='left'>Регистрация</div></a>
<br>
</td>
<td>
<br>
<input class='bat' type='submit' name='enter' id='enter' value='Войти'>
</td>

</tr>

</table>
";
}
?>[/PHP]

Регистрация:
[PHP]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Processing</title>
</head>

<body bgcolor="#000000">
<?php include("blocks/bd.php");/*Подключаемся к базе*/

if(isset($_POST['nick'])) {$nick = $_POST['nick'];}
if(isset($_POST['pass'])) {$pass = $_POST['pass'];}
if(isset($_POST['pass_again'])) {$pass_again = $_POST['pass_again'];}
if(isset($_POST['mail'])) {$mail = $_POST['mail'];}
if(isset($_POST['ip'])) {$ip = $_POST['ip'];}
if(isset($_POST['date'])) {$date = $_POST['date'];}



//Кодирование тегов
$nick = htmlspecialchars($nick);
$pass = htmlspecialchars($pass);
$pass_again = htmlspecialchars($pass_again);

//Кодирование обратных слешей
$nick = stripslashes($nick);
$pass = stripslashes($pass);
$pass_again = stripslashes($pass_again);

//Удаление пробелов
$nick = trim($nick);
$pass = trim($pass);
$pass_again = trim($pass_again);




//Проверка логина
if(empty($nick))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Вы не ввели логин! Пожалуйста, введите логин!</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();


}

//Проверка пароля
if(empty($pass) || empty($pass_again) || $pass != $pass_again)
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Введённые пароли не совпадают!</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}

//Проверка мыла
if(empty($mail))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Вы не ввели e-mail! Пожалуйста, введите e-mail!</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}

if (!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $mail))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Введите e-mail в виде <i>something@server.ru</i> <br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}


//Если все поля заполнены, продолжение проверки
if(strlen("$nick") < 3)
{
print"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Слишком короткий логин!<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}
if(strlen("$pass") < 5)
{
print"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Слишком короткий пароль!<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}



//Проверка
$rus = array("А","а","В","Е","е","К","М","Н","О","о","Р","р","С","с","Т","Х","х");
// Массив латинских букв
$eng = array("A","a","B","E","e","K","M","H","O","o","P","p","C","c","T","X","x");
// Заменяем русские буквы латинскими
$eng_nick = str_replace($rus, $eng, $nick);
// Заменяем латинские буквы русскими
$rus_nick = str_replace($eng, $rus, $nick);
// Формируем SQL-запрос
$result = "SELECT nick FROM register
WHERE nick LIKE '$nick' OR
nick LIKE '$eng_nick' OR
nick LIKE '$rus_nick'";
$myrow = mysql_query($result);


if($myrow)
{
if(mysql_num_rows($myrow)>0)
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ник \"$nick\" к сожалению, уже зарегистрирован. Попробуйте другой.<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='7 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}
}

$result1 = "SELECT mail FROM register
WHERE mail LIKE '$mail'";
$myrow1 = mysql_query($result1);

if($myrow1)
{
if(mysql_num_rows($myrow1)>0)
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Адрес \"$mail\" к сожалению, уже зарегистрирован. Попробуйте другой.<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='7 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}
}

//Регистрация пользователя
$nick = mysql_escape_string($nick);
$pass = mysql_escape_string($pass);
$result2 ="INSERT INTO register (nick, pass, mail, ip, date) VALUES ('$nick', '$pass', '$mail', '$ip', '$date')";



if( mysql_query($result2))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#606060; '><strong>Вы успешно зарегистрированы!<br>
Ваш ник: $nick<br>
Ваш пароль: $pass <br></strong></span></td>
</tr>
</table></p>";

echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='10 ; URL=index.php'>
</HEAD></HTML>";

mysql_close();
}
else
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка регистрации!<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit(mysql_error());
}

?>
</body>
</html>[/PHP]

Авторизация:

[PHP]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Processing</title>
</head>

<body bgcolor="#000000">
<?php include("blocks/bd.php");/*Подключаемся к базе*/

if(isset($_POST['login'])) {$login = $_POST['login'];}
if(isset($_POST['pass'])) {$pass = $_POST['pass'];}

//Кодирование тегов
$login = htmlspecialchars($login);
$pass = htmlspecialchars($pass);

//Кодирование обратных слешей
$login = stripslashes($login);
$pass = stripslashes($pass);

//Удаление пробелов
$login = trim($login);
$pass = trim($pass);

// Формируем и выполняем SQL-запрос для посетителя с
// именем $_POST['name']
$query = "SELECT pass FROM register WHERE nick='$login'";
$nme = mysql_query($query);
if(!$nme)
{

echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка выполнения запроса! Пожалуйста, напишите об этом администратору.</strong></span></td>
</tr>
</table></p>";
exit();


}
// Если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($nme) > 0)
{
// Получаем пароль
$password = mysql_result($nme, 0);
// Сравниваем пароль из базы данных и введённый посетителем
if ($pass == $password)
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сессии посетитель не вводил своё имя, пароль повторно -
// передаём их через сессию
if(session_start())
{
$_SESSION['user'] = $_POST['login'];
$_SESSION['password'] = $_POST['pass'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедиться, что
// посетитель "вошёл"
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD><body>";
}
}
else
{
echo"<br>
<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка идентификации: неправильный пароль</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='4 ; URL=index.php'>
</HEAD></HTML>";
exit();
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo"<br>
<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка идентификации: посетитель не зарегистрирован</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='4 ; URL=index.php'>
</HEAD></HTML>";
exit();
}
?>
</body>
</html>[/PHP]

Выход:

[PHP]<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Processing</title>
</head>

<body bgcolor="#000000">
<?php


unset($_SESSION['user']);
unset($_SESSION['password']);

session_destroy();

echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD><body>";
?>

</body>
</html>[/PHP]

А теперь собственно и главный вопрос:
Например есть две категории пользователей:
Пользователь
ВИП пользователь

Как сделать так чтобы чтобы на страницах моего сайта скрывалась некоторая информация от простых пользователей и не было ограничений для ВИП пользователей. А на месте где информация для пользователей скрыта выводился соответствующий текст "Типа ты не вип поэтому просмотр ограничен"

На всякий случай приведу php код страницы где выводится новость:

[PHP]<?php include ("db.php") ;

if (isset($_GET['id'])) {$id = $_GET['id']; }
if (!isset($id)) {$id = 1;}

$result = mysql_query ("SELECT * FROM data WHERE id='$id'",$db);

if (!$result)
{
echo "<p>Запрос на выбор данных из базы не прошел<br> Код ошибки:</p>";
exit (mysql_error());
}

if (mysql_num_rows ($result) > 0 )
{
$myrow = mysql_fetch_array ($result);

/*Cчётчик просмотров*/
$new_view = $myrow["view"] + 1;
mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'",$db);
}

else
{
echo "<p>Информация по запросу не может быть извлечена, в таблице нет записей!</p>";
exit ();
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title><?php echo $myrow["title"]; ?></title>
<meta name="description" content="<?php echo $myrow["meta_d"]; ?>" />
<meta name="keywords" content="<?php echo $myrow["meta_k"]; ?>" />
<link type="text/css" rel="StyleSheet" href="style.css" />
</head>

<table class="mainT" cellpadding="5" cellspacing="0" align="center" style="width:927px;">
<tr class="TRh">

<td class="TDh2">
<div style="float:right;">

<table width="325px;" cellpadding="0" cellspacing="0" border="0" class="menusTABLE">

<?php include ("blocks/verx.php") ?>

</div></td></tr>

<tr>
<td class="TDhtop" colspan="2">

<?php include ("blocks/menu.php") ?>


</td></tr>

<tr>
<td class="TDh4" width="" valign="top">

<table cellpadding="0" cellspacing="0" align="center" width="">

<tr>
<?php include ("blocks/news.php") ?>

<td colspan="3" style="padding-bottom: 10px;">
<div id="bcontent">
<div id="allEntries">
<?php
printf ("
<h1 class='title'>%s скачать бесплатно</h1>
<p class='opisanie'>%s</p>
<p class='video'>%s</p>
<p class='down'><a href='%s'>Скачать %s бесплатно</a></p>
<p class='dateview'>Дата добавления: <strong>%s</strong> | Просмотров: <strong>%s</strong></p>

", $myrow["title"], $myrow["opisanie"], $myrow["video"], $myrow["down"], $myrow["title"], $myrow["date"], $myrow["view"]);
?>

</div></div></td>
</tr>

<tr>
<?php include ("blocks/newsniz.php") ?>
</tr>

</table></td>

<td class="TDh5" width="245px" valign="top">

<?php include ("blocks/right.php") ?>

</td></tr>

<tr>
<?php include ("blocks/footer.php") ?>

</tr>
</table>

</body>
</html>[/PHP]

Заранее благодарен за любые подсказки по данному вопросу.
Но в тоже время прошу расказывать чем проще тем лучше, просто в php я пока не силён:wacko:
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 3.2.2011, 11:25; Ответить: Mulder_hb
Сообщение #2


(MAKAR_hb @ 3.2.2011, 12:02) *
Но в тоже время прошу расказывать чем проще тем лучше, просто в php я пока не силён

Как это знакомо. Очередной адепт Попова? Просмотрели 2-3 урока этого дилетанта и уже возомнили себя гуру? Выбросите его уроки в мусоропровод, купите настоящие книги по пхп. Через год упорного изучения можете приступать к написанию своей цмс.

ЗЫ. Код, который вы привели, лучше никому не показывать, а писать для себя. Через год, будете сами над собой смеяться от того бреда, который написали.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MAKAR_hb
MAKAR_hb
Topic Starter сообщение 3.2.2011, 11:50; Ответить: MAKAR_hb
Сообщение #3


а что не так я написал? я попросил помощи, только и всего. и походу дела кроме вас себя гуру никто не считает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MAKAR_hb
MAKAR_hb
Topic Starter сообщение 3.2.2011, 11:52; Ответить: MAKAR_hb
Сообщение #4


Если вы считаете это бредом то хотябы говорили почему, а если это высказывание вы написали ради набивание поста то лес там ==>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 3.2.2011, 12:20; Ответить: Apay
Сообщение #5


код читать не стал, это долго и нудно, кратко вам скажу так: введите у каждого пользователя статус (в базе тоже), и при каждой генерации страницы в соответствии с этим статусом генерируйте свое для каждого пользователя.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DoctorX
DoctorX
сообщение 3.2.2011, 14:16; Ответить: DoctorX
Сообщение #6


Перед этим получаем из бд групп пользователя.

[PHP] if(session_start())
{
$_SESSION['user'] = $_POST['login'];
$_SESSION['password'] = $_POST['pass'];

// Тут присваиваем группу из бд в сессиию

// Осуществляем автоматический переход на
// страницу index.php чтобы убедиться, что
// посетитель "вошёл"
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD><body>";
} [/PHP]


В нужном месте сравниваем группу из сессии с разрешённой группой и выводи или не выводим контент.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LifeUP
LifeUP
сообщение 3.2.2011, 14:41; Ответить: LifeUP
Сообщение #7


Набросал вам небольшой примерчик:

Регистрация:
[PHP]
<h3>Регистрация</h3>
<form action="" method="post">
Login: <input name="login" type="text" maxlength="54" /><br />
Password: <input name="password" type="text" maxlength="45" /><br />
<input name="submit" type="submit" value="Войти" />
</form>


<?php
$info = '';
if (isset ($_POST['submit']))
{
$login = isset ($_POST['login']) ? trim ($_POST['login']) : '';
$password = isset ($_POST['password']) ? trim ($_POST['password']) : '';

if (strlen ($login) < 4 || strlen ($login) > 54) {
$info = 'Логин не может быть меньше 4 и больше 54 символов';
} elseif (strlen ($password) < 4 || strlen ($password) > 45) {
$info = 'Пароль не может быть меньше 4 и больше 45 символов';
}

if (empty ($info))
{
// Шифруем в md5 пароль
$password = md5 ($password);

// Заносим данные в БД
if (mysql_query ("INSERT INTO `users` (login, password, user_group) VALUES ('" . mysql_real_escape_string ($login) . "', '" . $password . "', '1')"))
{
$info = 'Регистрация прошла успешно';
}
else
{
$info = 'Ошибка записи в БД';
}
}
}
echo $info;
[/PHP]

Авторизация:
[PHP]
<h3>Авторизация</h3>
<form action="" method="post">
Login: <input name="login" type="text" maxlength="54" /><br />
Password: <input name="password" type="text" maxlength="45" /><br />
<input name="submit" type="submit" value="Войти" />
</form>

<?php
$info = '';
$member_id = array (); // Тут будут храниться данные о пользователе

if (isset ($_POST['submit']))
{
$login = isset ($_POST['login']) ? trim ($_POST['login']) : '';
$password = isset ($_POST['password']) ? trim ($_POST['password']) : '';

if (strlen ($login) < 4 || strlen ($login) > 54) {
$info = 'Логин не может быть меньше 4 и больше 54 символов';
} elseif (strlen ($password) < 4 || strlen ($password) > 45) {
$info = 'Пароль не может быть меньше 4 и больше 45 символов';
}

if (empty ($info))
{
// Шифруем в md5 пароль
$password = md5 ($password);

// Проверяю есть ли такой юзер
$member_id = mysql_fetch_assoc (mysql_query ("SELECT * FROM `users` WHERE login = '" . mysql_real_escape_string ($login) . "' AND password = '" . $password . "' LIMIT 1"));

if ($member_id['login'])
{
$_SESSION['user_id'] = $member_id['user_id'];
$_SESSION['user_password'] = md5 ($member_id['password']);

header ('Location: /');
exit ();
}
else
{
$info = 'Такой пользователь не найден';
}
}
}
echo $info;
[/PHP]

Проверка авторизации юзера:
[PHP]
// Проверка авторизирован ли юзер
session_start ();


if (isset ($_SESSION['user_id']) && $_SESSION['user_id'] > 0)
{
$user_id = (int)$_SESSION['user_id'];
$password = $_SESSION['user_password'];

$member_id = mysql_fetch_assoc (mysql_query ("SELECT * FROM `users` WHERE user_id = '" . $user_id . "' LIMIT 1"));

if (md5 ($member_id['password']) == $password)
{
$_SESSION['user_id'] = $member_id['user_id'];
$_SESSION['user_password'] = md5 ($member_id['password']);
}
else
{
// Пользователь не найден, удаляю сесии
unset ($_SESSION['user_id'], $_SESSION['user_password']);

header ('Location: /');
exit ();
}
}
[/PHP]

Пример прав доступа она же группа пользователей:
[PHP]
// Странциа проверки группы пользователя и его прав доступа
$res = mysql_query ("SELECT * FROM `user_group`");

$user_group = array ();

while ($row = mysql_fetch_assoc ($res))
{
$user_group[$row['id']] = $row;
}




// Проверяю есть ли у юзера доступ к данной странице
if ($user_group[$member_id['user_group']]['allow_page'])
{
echo 'Тут какойто контент';
}
else
{
echo 'Ваша группа неможет просматривать данную страницу';
}
[/PHP]

sql

users
CREATE TABLE `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(54) NOT NULL,
`password` varchar(35) NOT NULL,
`user_group` int(11) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


user_group
CREATE TABLE `user_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`allow_page` enum('0','1') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `user_group` VALUES ('1', 'Пользователь', '1');
INSERT INTO `user_group` VALUES ('2', 'Гость', '0');


P.S писал не проверив.
P.S.S Коннект к БД сами напишите
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 3.2.2011, 18:40; Ответить: Mulder_hb
Сообщение #8


(MAKAR_hb @ 3.2.2011, 13:52) *
Если вы считаете это бредом то хотябы говорили почему

1.
[PHP]if (isset($_GET['id'])) {$id = $_GET['id']; }
if (!isset($id)) {$id = 1;} [/PHP]
Классический Попов. Тут возможны два варианта:
1. У вас полная каша в голове, раз пишите столь бессмысленный код.
2. Бездумный копипаст. Абы скопипастить код, а понять, зачем он тут не для нас.
Конструкция if-else и тернарный оператор не для адептов Попова. Они ими брезгуют.
[PHP]$id = isset($_GET['id']) ? intval($_GET['id']) : 1;[/PHP]
2. Какие-то дикие и невнятные проверки входных данных. Проверка введенного мыла вызывает хохот. В довесок добиваем код еще и повторяющимися проверками. Если ник не может содержать меньше трех букв, то зачем отдельно проверять на пустоту и на длину? Проверяйте сразу на длину.
3.
[PHP]$result = "SELECT nick FROM register
WHERE nick LIKE '$nick' OR
nick LIKE '$eng_nick' OR
nick LIKE '$rus_nick'";
$myrow = mysql_query($result);[/PHP]
Получается, если в системе зареген пользователь "andre", я уже не смогу зарегить ник "andrey". Сам условие запроса вида "сам не знаю, что пишу". Ответьте, чему равны переменные $nick и $eng_nick в случае ника "andrey". Применение mysql_num_rows вообще ресурсоемко. Откройте для себя мануал по мускулу.
4. Некая подозрительно выборочное экранирование данных перед вставкой в бд. Почему были защищены только ник и пасс? Думаете остальные данные не опасны? Опять на лицо полное непонимание процесса и каша в голове.

Это я еще по поверхности прошел. Жести в вашем коде напорядок больше. Не тратьте зря время. Начните изучать пхп, а не читать попсу.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 3.2.2011, 20:22; Ответить: alexdrob
Сообщение #9


(LifeUP @ 3.2.2011, 16:41) *
if (isset ($_SESSION['user_id']) && $_SESSION['user_id'] > 0)

Можно так)
[PHP]if (!empty($_SESSION['user_id']))[/PHP]

Я думаю нет смысла каждый раз в бд запрос делать и проверять авторизован ли юзер.
Так же можно и группу в сессии хранить.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LifeUP
LifeUP
сообщение 3.2.2011, 21:26; Ответить: LifeUP
Сообщение #10


(alexdrob @ 3.2.2011, 22:22) *
Можно так)
[PHP]if (!empty($_SESSION['user_id']))[/PHP]

Я думаю нет смысла каждый раз в бд запрос делать и проверять авторизован ли юзер.
Так же можно и группу в сессии хранить.


можно и так. Про авторизация не согласен, если какието данные меняются то юзер их не увидит, не есть гуд.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Стану редактором для вашей группы ВК
редактор вконтакте
3 robot_yaga2 1191 18.2.2024, 18:15
автор: robot_yaga2
Открытая тема (нет новых ответов) Куплю группы ВК - только через гаранта
1 robot_yaga2 864 30.5.2023, 16:51
автор: GlazAlmaz
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыИнвайтер Телеграм в группы, бот Рассыльщик по личкам, Накрутчик подписчиков и просмотров в Каналах
Продаю софт для живого продвижение в Telegram
20 mp3promo 13974 10.4.2023, 18:26
автор: OnArbitrazh
Открытая тема (нет новых ответов) Нужен человек для ведения группы ВК и ТГ-канала
1 Kiloan_Frost 1249 4.4.2023, 3:17
автор: marialitarova
Открытая тема (нет новых ответов) Ищу партнёров или исполнителей для создания телеграмм группы
1 clothing 1524 13.10.2022, 16:17
автор: try100


 



RSS Текстовая версия Сейчас: 28.3.2024, 20:10
Дизайн