+ Ответить в теме
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Вопрос по регистрации/авторизации и группы пользователя. Интересный вопрос =)

  1. #1

    Лампочка Вопрос по регистрации/авторизации и группы пользователя. Интересный вопрос =)

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

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

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

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

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

    Для начала хочу показать весь 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>
    ";
    }
    ?>


    Регистрация:
    <!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>


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

    <!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 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 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 я пока не силён

  2. #2
    Модератор Mulder - весьма и весьма положительная личность Mulder - весьма и весьма положительная личность Mulder - весьма и весьма положительная личность Аватар для Mulder
    Регистрация
    19.05.2010
    Адрес
    Гомель
    Сообщений
    1,694
    Цитата Сообщение от MAKAR Посмотреть сообщение
    Но в тоже время прошу расказывать чем проще тем лучше, просто в php я пока не силён
    Как это знакомо. Очередной адепт Попова? Просмотрели 2-3 урока этого дилетанта и уже возомнили себя гуру? Выбросите его уроки в мусоропровод, купите настоящие книги по пхп. Через год упорного изучения можете приступать к написанию своей цмс.

    ЗЫ. Код, который вы привели, лучше никому не показывать, а писать для себя. Через год, будете сами над собой смеяться от того бреда, который написали.

    Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
    Brainbench.com - PHP5: 4.03 out of 5. Master degree.
    Oracle Certified Java Programmer (SCJP) SE 5.

  3. #3
    а что не так я написал? я попросил помощи, только и всего. и походу дела кроме вас себя гуру никто не считает.

  4. #4
    Если вы считаете это бредом то хотябы говорили почему, а если это высказывание вы написали ради набивание поста то лес там ==>

  5. #5
    код читать не стал, это долго и нудно, кратко вам скажу так: введите у каждого пользователя статус (в базе тоже), и при каждой генерации страницы в соответствии с этим статусом генерируйте свое для каждого пользователя.
    чаще всего пишу в спешке, могут быть очепятки

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

     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>";
    }



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

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

    Регистрация:

    <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;


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

    <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;


    Проверка авторизации юзера:

    // Проверка авторизирован ли юзер
    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 ();
    }
    }


    Пример прав доступа она же группа пользователей:

    // Странциа проверки группы пользователя и его прав доступа
    $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 'Ваша группа неможет просматривать данную страницу';
    }


    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 Коннект к БД сами напишите
    Последний раз редактировалось LifeUP; 03.02.2011 в 12:50.

  8. #8
    Модератор Mulder - весьма и весьма положительная личность Mulder - весьма и весьма положительная личность Mulder - весьма и весьма положительная личность Аватар для Mulder
    Регистрация
    19.05.2010
    Адрес
    Гомель
    Сообщений
    1,694
    Цитата Сообщение от MAKAR Посмотреть сообщение
    Если вы считаете это бредом то хотябы говорили почему
    1.
    if (isset($_GET['id'])) {$id = $_GET['id']; }
    if (!isset($id)) {$id = 1;}

    Классический Попов. Тут возможны два варианта:
    1. У вас полная каша в голове, раз пишите столь бессмысленный код.
    2. Бездумный копипаст. Абы скопипастить код, а понять, зачем он тут не для нас.
    Конструкция if-else и тернарный оператор не для адептов Попова. Они ими брезгуют.
    $id = isset($_GET['id']) ? intval($_GET['id']) : 1;

    2. Какие-то дикие и невнятные проверки входных данных. Проверка введенного мыла вызывает хохот. В довесок добиваем код еще и повторяющимися проверками. Если ник не может содержать меньше трех букв, то зачем отдельно проверять на пустоту и на длину? Проверяйте сразу на длину.
    3.
    $result = "SELECT nick FROM register   
    WHERE nick LIKE '$nick' OR
    nick LIKE '$eng_nick' OR
    nick LIKE '$rus_nick'";
    $myrow = mysql_query($result);

    Получается, если в системе зареген пользователь "andre", я уже не смогу зарегить ник "andrey". Сам условие запроса вида "сам не знаю, что пишу". Ответьте, чему равны переменные $nick и $eng_nick в случае ника "andrey". Применение mysql_num_rows вообще ресурсоемко. Откройте для себя мануал по мускулу.
    4. Некая подозрительно выборочное экранирование данных перед вставкой в бд. Почему были защищены только ник и пасс? Думаете остальные данные не опасны? Опять на лицо полное непонимание процесса и каша в голове.

    Это я еще по поверхности прошел. Жести в вашем коде напорядок больше. Не тратьте зря время. Начните изучать пхп, а не читать попсу.

    Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
    Brainbench.com - PHP5: 4.03 out of 5. Master degree.
    Oracle Certified Java Programmer (SCJP) SE 5.

  9. #9
    Местный alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее Аватар для alexdrob
    Регистрация
    08.09.2009
    Адрес
    Краснодарский край
    Сообщений
    6,488
    Цитата Сообщение от LifeUP Посмотреть сообщение
    if (isset ($_SESSION['user_id']) && $_SESSION['user_id'] > 0)
    Можно так)
    if (!empty($_SESSION['user_id']))


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

  10. #10
    Цитата Сообщение от alexdrob Посмотреть сообщение
    Можно так)
    if (!empty($_SESSION['user_id']))


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

+ Ответить в теме

Похожие темы

  1. Глупый, но интересный вопрос.
    от RSK в разделе Флейм и оффтопик
    Ответов: 7
    Последнее сообщение: 10.07.2010, 02:08
  2. интересный вопрос
    от Aleksey1989 в разделе HTML
    Ответов: 4
    Последнее сообщение: 21.02.2010, 15:58
  3. Интересный вопрос
    от Htmlmaster в разделе CSS
    Ответов: 1
    Последнее сообщение: 16.12.2009, 11:41
  4. Очень интересный вопрос
    от Mex в разделе Флейм и оффтопик
    Ответов: 1
    Последнее сообщение: 30.08.2009, 12:58
  5. Ответов: 6
    Последнее сообщение: 18.12.2008, 23:46

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения