Профиль пользователя заблокирован сроком «навсегда» без указания причины
Ответы пользователя по тегу PHP
  • Как дать доступ на ссылку только зареганому человеку?

    1) Забудьте про mysql_query, еспользуйте mysqli или PDO.
    2) Добавьте валидацию полей, а то ваш сайт сейчас может скушать <script>Ничего хорошего</script>
    3) Не храните пароли в открытом виде в базе, храните их хеш + соль (salt). Для шифрования не используйте md5 или sha1(его перестают поддерживать)
    Ну а самые простой ответ на ваш вопрос - при авторизации, заносим пользователю в сессию какой-либо флаг для доступа к странице к примеру $_SESSION['dostup']=1; При заходе на страницу сразу проверяем значение переменной, и если оно не равно вашему значению, то используется заголовки(header) для перенаправления пользователя на страницу авторизации.
    Еще неплохо было бы выдавать пользователю токен на время сессии и проверять все данные который он отправляет.
    Ответ написан
    Комментировать
  • При каждом заходе на сайт, меняется фоновое изображение. Возможно ли сделать? Как настроить цели в метрике?

    По первому вопросу - храним путь к картинке в переменной, затем на главной странице тупо увеличиваем i++ при каждом открытии страницы и выдаем путь к картинке для фона. Если не хотим чтобы каждый раз у одного и того же пользователя страница при обновлении не меняла фон, то вначале перед счетчиком проверяем его сессию или куки, а уже после них выдаем путь, увеличиваем счетчик, заносим данные в сессию,куки.
    Ответ написан
    2 комментария
  • Как правильно парсить чпу на php?

    Вы поняли все верно, красивые названия нужны чаще всего по требованию заказчика, для себя же хватит и вашего вида - mysite/catalog/view/product/12322, к тому же не придется обращаться к базе данных, т.к. массив с роутами будет хранится в одном файле.
    Ну а если же вам нужны прям красивые ссылки - mysite/catalog/smartphone/yotaphone/yotaphone2-exclusive - то хранить в бд и получать, но в этом ничего плохого нет, к базе на любом сайте происходит обращение и если проект не предназначен для высоких нагрузок - то вы и не заметите по времени выполнение запроса на получение урлы.
    Ответ написан
    Комментировать
  • Почему так в php?

    Чтото мне подсказывает что вам поможет эта ссылочка
    Ответ написан
    Комментировать
  • Составить массив по убыванию?

    Чувствую что вам стоит посмотреть метод пузырька :) Так и гуглите - сортировка пузырьком :) Подходит и для многомерных массивов.
    Ответ написан
    Комментировать
  • Как защититься от SQL инъекций?

    юзаем PDO подготовленные запросы, фильтруем все входящие данные параметры в запрос. Для фильтрации параметров хорошо использовать небольшой файлик со списком команд, которые нельзя использовать и проверять параметр на их наличие.
    И опять же, даже если и до чего то, смогут добраться на сайте, всегда работайте на сайте под отдельным пользователем с самыми урезанными правами, конечно это тоже конечно не дает полной защиты, однако продвинутые школьники и студенты уже заступорятся и бросят это занятие :)
    Ответ написан
    Комментировать
  • Какие есть варианты добавления записей в БД(mysql)?

    По первому пункту - данные для регистрации вы обрабатываете с формы обработчиком, обработчик может находится в теле того же документа, либо другой документ, отправляете POST запросом на странице с формой и принимаете на другой странице. Для того чтобы проверить подлинность пароль подключаетесь к бд, делаете запрос через SELECT с условием WHERE login=$login AND pass = $pass. Это если рассматривать самый просто вариант. Поближе к реальным условиям - храните пароль как хэш + соль.
    По второму - вы спрашиваете в какие поля запишутся данные с формы - данные запишутся в те поля, которые вы укажите. Раз такие вопросы задаете, вам следует научится работать с бд, попробуйте посмотреть туториал по созданию сайта на phpstart точка ком, там все детально разбирается.
    Ответ написан
    Комментировать
  • Нарушает ли хранение моделей, видов и контроллеров в одной директории концепцию MVC?

    Не нарушает, даже больше скажу: можно даже все делать в одном файле, но внутри него разделять логику и представление, и это тоже будет являться MVC в PHP.
    Ответ написан
    Комментировать
  • Как сделать пагинацию на MVC?

    Пробежав глазами по коду, кажется что у вас в роутинге просто не принимается дополнительный параметр в виде номера страницы.
    // получаем имя контроллера
        if ( !empty($routes[1]) )
        {	
          $controller_name = $routes[1];
        }
        
        // получаем имя экшена
        if ( !empty($routes[2]) )
        {
          $action_name = $routes[2];
        }

    Вы получаете контроллер и экшен, но не принимаете параметр для экшна.
    Ответ написан
  • Контроллер срабатывает после знака вопрос, как исправить?

    Знакомый роутинг, чувствую туториал с пхп-старта :) Роутинг корявый и недоделанный, если с сервака будешь заходить на сайт с адресом вида 255.255.255.255/test/site, то будут ошибки, поэтому не пугайся :) Допиливать мне его было лень, поэтому с денвера сразу на хостинг залил его.
    Вот кстати весь htacces оттуда
    AddDefaultCharset utf-8

    RewriteEngine on
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php

    # Попробуйте эту настройку .htaccess, если у Вас возникли проблемы с отображением
    # стилей css
    #AddDefaultCharset cp-1251
    #ErrorDocument 404 /
    #RewriteEngine On
    #RewriteCond %{REQUEST_FILENAME} -s [OR]
    #RewriteCond %{REQUEST_FILENAME} -l [OR]
    #RewriteCond %{REQUEST_FILENAME} -d
    #RewriteRule ^.*$ - [L]
    #RewriteRule ^.*$ index.php [L]
    Ответ написан
    8 комментариев