Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Движок на PHP+MySQL

1.9K
21 июня 2005 года
SumroK
49 / / 18.09.2003
Приветы!
Я вот решил ваять движок для сайта(такой не большой портальчик), а т.к. я этого ни разу не далал у меня появились вопросы:
1. С чего начинать писать движок?
2. На что конкретно стоит обратить внимание в первую очередь?
3. А так же выслушаю советы по безопасности.

Заранее спасибо коллеги. :!!!:
271
21 июня 2005 года
MrXaK
721 / / 31.12.2002
Ну сначала надо бы написать для себя ТЗ (Техническое Задание), разделить всё на фрагменты и т. п.
А вообще если с ООП хорошо, то я бы посоветовал написать несколько классов, таких как работа с базой данных, класс парсинга шаблонов и вывода их на экран, класс обработки стандартных полей (ну например комментарии к разным разделам)...
потом на основе этих классов уже писать всё остальное...
а по безопасности всегда жди, что юзер введёт абсолютно не то, что от него просят... особенно обращай внимание на ограниченные выборки из бд (например, вывод какой-либо страницы новостей).. передавая в строке число, которое будет вставлено после LIMIT надо ждать, что взломщик введёт вместо числа что-нить типа UNION SELECT ... /* я обычно такие условия просто проверяю функцией is_numeric().
ну ещё на авторизацию пользователей надо обратить внимание...
ну вот вроде и всё.. хотя конечно не всё, но основное я думаю написал) удачи)
з.ы. потом дашь посмотреть творение )
1.9K
21 июня 2005 года
SumroK
49 / / 18.09.2003
На счет Т3 я уже догнал, правда у меня это называлось планом :)

Начал с админки, но возникли проблемы с авторизацией...
Админ вводит как обычно в форму логин и пасс, скрипт проверяет если логин и пасс верны, то пихаем енти переменные в сессию и кидаем в панель админа, иначе выводим ошибку о неверно введенных данных. Если данные введены неверно скрипт реагирует правильно, а если данные введены верно происходит вот что кидает обратно на логин-форму и говорит что данные введены неверно + Notice: Undefined index: login in w:\home\localhost\www\expengine\admin\index.php on line 30
Вот код:
Код:
<?php
    $log="admin";
    $pas="admin";

    if ($_GET['act']=="go") {
        if ($_POST['login']==$log && $_POST['passwd']==$pas) {
            $_SESSION['user']=$_POST['login'];
            $_SESSION['pass']=$_POST['passwd'];

            echo "<META HTTP-EQUIV='REFRESH' CONTENT='1; admin.php'>";
        } else {
            echo "Login or pass incorrect!";
        }
    }
?>
4
21 июня 2005 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by SumroK
такой небольшой портальчик



Я бы рекомендовал начать с теории и терминологии:


http://www.russ.ru/netcult/cathedra/20010329_sebrant.html

1.9K
21 июня 2005 года
SumroK
49 / / 18.09.2003
С этим я уже разобрался.
Лучше помоги с постом содержащим проблему и кусок кода.
271
21 июня 2005 года
MrXaK
721 / / 31.12.2002
ну значит у тебя имя поля для ввода называется не login а ещё как-то... поэтому $_POST['login'] считается незаданным...
1.9K
21 июня 2005 года
SumroK
49 / / 18.09.2003
Цитата:
Originally posted by Mr.Hacker
ну значит у тебя имя поля для ввода называется не login а ещё как-то... поэтому $_POST['login'] считается незаданным...


Нет поле называется login
у меня все переменные правильны...

1.8K
21 июня 2005 года
BIKTOP
91 / / 06.04.2005
Цитата:
Originally posted by SumroK
На счет Т3 я уже догнал, правда у меня это называлось планом :)

Начал с админки, но возникли проблемы с авторизацией...
Админ вводит как обычно в форму логин и пасс, скрипт проверяет если логин и пасс верны, то пихаем енти переменные в сессию и кидаем в панель админа, иначе выводим ошибку о неверно введенных данных...
Notice: Undefined index: login in w:\home\localhost\www\expengine\admin\index.php on line 30
Вот код:
Код:
<?php
    $log="admin";
    $pas="admin";

    if ($_GET['act']=="go") {
        if ($_POST['login']==$log && $_POST['passwd']==$pas) {
            $_SESSION['user']=$_POST['login'];
            $_SESSION['pass']=$_POST['passwd'];

            echo "<META HTTP-EQUIV='REFRESH' CONTENT='1; admin.php'>";
        } else {
            echo "Login or pass incorrect!";
        }
    }
?>



Я конечно могу ошибаться, но мне кажется, что если вся форма передается через $_GET[], то и значения полей надо снимать с масива $_GET[].

1.8K
21 июня 2005 года
BIKTOP
91 / / 06.04.2005
Цитата:
Originally posted by SumroK
Приветы!
Я вот решил ваять движок для сайта(такой не большой портальчик), а т.к. я этого ни разу не далал у меня появились вопросы:
1. С чего начинать писать движок?
2. На что конкретно стоит обратить внимание в первую очередь?
3. А так же выслушаю советы по безопасности.

Заранее спасибо коллеги. :!!!:



А если вопрос о том с чего, начать, то любой большой (и не большой тоже) серьезный проект начинается с построения базы данных. А потом на базу данных вешается сайт. И чем грамотнее спроектирована эта база, тем легче будет в будущем. Так что учи теорию баз данных. Вещь нудная, но ОЧЕНЬ полезная.

1.9K
22 июня 2005 года
SumroK
49 / / 18.09.2003
Цитата:
Originally posted by BIKTOP
А если вопрос о том с чего, начать, то любой большой (и не большой тоже) серьезный проект начинается с построения базы данных. А потом на базу данных вешается сайт. И чем грамотнее спроектирована эта база, тем легче будет в будущем. Так что учи теорию баз данных. Вещь нудная, но ОЧЕНЬ полезная.



Спасибо за совет!
С БД вроде в ладах :)

А форма имеет метод POST к вашему сведению.

1.9K
22 июня 2005 года
kasap
168 / / 07.04.2005
Сделай так и ошибки не должно быть:

Код:
<?php
    $log="admin";
    $pas="admin";

    if ($_GET['act']=="go") {
        if(isset($_POST['login']) && isset($_POST['passwd'])) {
            if ($_POST['login']==$log && $_POST['passwd']==$pas) {
                $_SESSION['user']=$_POST['login'];
                $_SESSION['pass']=$_POST['passwd'];

                echo "<META HTTP-EQUIV='REFRESH' CONTENT='1; admin.php'>";
            } else {
                echo "Login or pass incorrect!";
            }
        }
    }
?>
4
22 июня 2005 года
mike
3.7K / / 01.10.2002
Меня смущает одновременно использование массивов $_GET и $_POST.
1.9K
22 июня 2005 года
kasap
168 / / 07.04.2005
Цитата:
Originally posted by mike
Меня смущает одновременно использование массивов $_GET и $_POST.


Меня тоже :)

12K
22 июня 2005 года
zerkms
3 / / 22.06.2005
mike, kasap:
и зря смущает. это вполне возможно.
вопрос только в другом - насколько нужно.

далее:
сумрок:
редирект делай хедером

echo session_id(); - и смотри теряется твоя сессия или нет

в сессиях храни _только_ ид пользователя, т.к.
- зачем тебе вообще его пароль там
- по хорошему все действия/права/... пользователя определяются его ид, а логин в будущем может потребоваться изменить

для начала думаю хватит
1.9K
23 июня 2005 года
SumroK
49 / / 18.09.2003
Тэк-с, вроде авторизацию у меня хватило ума сделать :) тока вот я забыл как проверять правильность сессионых данных на странице админа?
Типа если залогинился он говорит хеллоу админ, а если зашел просто на страницу admin.php он выдает просто hello, но факт не в выводе хелло а в том что он пускает на эту страницу...
Как это исправить? Я знал способ проверить сессию, правда забыл :(
12K
23 июня 2005 года
zerkms
3 / / 22.06.2005
Цитата:
Originally posted by SumroK
Тэк-с, вроде авторизацию у меня хватило ума сделать :) тока вот я забыл как проверять правильность сессионых данных на странице админа?
Типа если залогинился он говорит хеллоу админ, а если зашел просто на страницу admin.php он выдает просто hello, но факт не в выводе хелло а в том что он пускает на эту страницу...
Как это исправить? Я знал способ проверить сессию, правда забыл :(




научись свои мысли оформлять нормальными словами - чтобы тебя все понимали

представим что в сессии ты хранишь uid (ид пользователя), тогда на _любой_ странице (на админ.рхр в том числе) проверяешь права (это уже будет зависеть от того как ты эти пава собственно раздаёшь) и выводишь то что пользователь должен увидеть

ps: "проверить сессию" print_r( $_SESSION );
isset( $_SESSION['var'] );
if ( $_SESSION['var'] === 'foo' )

выбирай

1.9K
23 июня 2005 года
SumroK
49 / / 18.09.2003
Цитата:
Originally posted by zerkms
научись свои мысли оформлять нормальными словами - чтобы тебя все понимали

представим что в сессии ты хранишь uid (ид пользователя), тогда на _любой_ странице (на админ.рхр в том числе) проверяешь права (это уже будет зависеть от того как ты эти пава собственно раздаёшь) и выводишь то что пользователь должен увидеть

ps: "проверить сессию" print_r( $_SESSION );
isset( $_SESSION['var'] );
if ( $_SESSION['var'] === 'foo' )

выбирай



Спасибо зерокул. Извиняюсь конечно, что выражал свои мысли не совсем понятно, я торопился.
За то теперь у меня все работает. =) Сейчас буду писать скрипт новостей.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог