Ответы пользователя по тегу PHP
  • Как построить логику отправки данных в mysql через PHP?

    Сначала сделать авторизацию. Когда пользователь авторизуется записать куда-нибудь, что он авторизовался (в интернете есть статьи с простым решением). Также надо будет понять: будет один тест или больше? Если один тест можно не париться). Допустим у нас будет несколько тестов, тогда после авторизации надо сделать редирект на страничку с тестами. Пользователь выбирает тест (ссылка с id на тест). Допустим у нас есть таблица Вопросы, а в ней поля id вопроса, id теста, вопрос, ответ. После выбора теста генерируется форма с вопросами из таблицы вопросы (вытянуть необходимые данные при помощи sql запроса, а далее циклом вывести input, только без ответа :) ). После нажатии закончить тест данные из формы сохраняются в таблице Ответы (id ответ, id вопроса, id пользователя). После сохранения сравниваем ответы между таблицами Вопросы и Ответы, после сравнения результат записываем в таблице Результаты (id пользователя, id теста, сколько процентов, какая оценка).

    АХ ДА! при прохождении теста проверьте чтобы пользователь был авторизован))

    ПС: это одна из возможных реализациях, не из лучших явно, но для быстрого написания сгодиться. Логика по крайней мере должна быть такой.

    ПСС: А еще вопросы бывают разные, например, объемные. это когда один вопрос на всю страницу. тут надо будет выводить только один input
    Ответ написан
  • Можно ли при возникновении ошибки в php выводить на экран заглушку в виде html?

    Очень странное поведение честно говоря, у меня при ошибке все равно перезагружает . Вот как у меня
    var gulp         = require('gulp'),
        sass         = require('gulp-sass'),
        browserSync  = require('browser-sync')
        concat       = require('gulp-concat'),
        uglify       = require('gulp-uglifyjs'),
        autoprefixer = require('gulp-autoprefixer'),
        connectPHP   = require('gulp-connect-php');
    
    
    // Обработка Sass-файлов
    gulp.task('sass', function() {
        return gulp.src('web/sass/main.sass')
        .pipe(sass())
        .pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7', {cascade: true}]))
        .pipe(gulp.dest('web/css'))
        .pipe(browserSync.reload({stream: true}))
    });
    
    // Обновление PHP-файлов
    gulp.task('updatePHP', function() {
        return gulp.src([
            'assets/AppAsset.php',
            'config/*.php',
            'controllers/**/*.php',
            'models/**/*.php',
            'view/**/*.php',
            'web/**/*.php'
        ])
        .pipe(browserSync.reload({stream: true}))
    });
    
    /**
     * Объединение и минимизация JS-файлов
     */
    // gulp.task('oneScript', function() {
    //     return gulp.src([
    //         'app/libs/jquery/dist/jquery.min.js',
    //         'app/libs/slick-1.8.1/slick/slick.min.js',
    //         'app/libs/bootstrap4/dist/js/bootstrap.min.js',
    //         'app/js/common.js'
    //     ])
    //     .pipe(concat('scripts.min.js'))
    //     .pipe(uglify())
    //     .pipe(gulp.dest('app/js'))
    //     .pipe(browserSync.reload({stream: true}))
    // });
    
    // Синхронизация с браузером
    gulp.task('browser-sync', function() {
        browserSync({
            notify: false,
            proxy: 'hte'
        });
    });
    
    gulp.task('watch', function() {
        //gulp.watch(['libs/**/*.min.js', 'app/js/common.js'], gulp.parallel('oneScript'));
        gulp.watch('web/sass/*.sass', gulp.parallel('sass'));
        gulp.watch(['controllers/**/*.php' ,'models/**/*.php', 'views/**/*php'], gulp.parallel('updatePHP'));
    });
    
    gulp.task('default', gulp.parallel('browser-sync', 'watch'));
    Ответ написан
  • Как подтвердить запрос на добавление записи в бд через почту?

    А до подтверждения они где будут храниться?
    Я думаю можно сделать так:
    Клиент отправляет данные через форму. Данные из формы сохраняются в БД, в этой\другой таблице создаем статус и код подтверждения. Клиенту приходит на почту ссылочка с подтверждением, в ссылочке содержится код подтверждения (а лучше хеш). Срабатывает контроллер, проверяет код, если всё совпадает, то данные подтверждаются. Еще можно сделать проверку, если в течение 24 часов данные не подтвердились, то удаляем и данные и код. Может быть еще есть нюансы
    Ответ написан
  • Почему не работают кнопки на формах?

    Ошибка 403 Forbidden обычно связана с тем, что нет необходимых разрешений для пользователя. В битриксе не разбираюсь, но стоит посмотреть в логах что проиошло
    Ответ написан