Ответы пользователя по тегу PHP
  • Мультиязычный сайт php + mysql?

    @Mysterion
    $stmt = $pdo->query("SELECT `key` FROM language WHERE `language`=$language")->fetchAll(PDO::FETCH_UNIQUE);

    Где $language - это, например, содержимое $_SESSION['language'].
    Ну и в сессию сохранять выбранный язык.
    Ответ написан
  • Как реализовать вставку изображений из буфера (как вк)?

    @Mysterion
    Посмотрите этот пример, там интересно выводится изображение через canvas. Можете таким образом превью показывать, если изображение валидное, и в hidden input прятать base64 код, который будет отправлен на сервер. На сервере проверять его на валидность тоже.
    Ответ написан
    Комментировать
  • Вызвать функцию php через ajax?

    @Mysterion
    Можно сделать проще. Через ajax отправлять название функции скрипту и аргументы, например.
    $.ajax({
        type: "POST",
        url: 'script.php',
        cache: false,
        data: {
            'args': [
                arg_1: 'one',
                arg_2: 'two'
            ],
            'func': "example"
        },
        dataType: 'json'
    });

    А в скрипте делать так:
    if(function_exists($_POST['func'])) {
        // функция существует, надо ее вызвать
        $_POST['func'](); // вызвали функцию
        $_POST['func']($_POST['args']['arg_1']); // передали аргумент 
        $func = $_POST['func'];
        $func(); // так тоже можно вызвать
    }

    Разумеется не стоит доступ к этому скрипту давать всем. Можно ведь и свой код таким образом выполнить на сервере.
    А если всем надо, то делайте список доступных функций:
    $allow_functions = ['count', 'rand'];
    if(in_array($_POST['func'],$allow_functions) && function_exists($_POST['func'])) {
        // выполняем код
    }
    Ответ написан
    Комментировать
  • Почему переменные не записываются в файл?

    @Mysterion
    Включайте вывод ошибок и смотрите конкретную причину.
    Ответ написан
  • Как передать данные строки таблицы php?

    @Mysterion
    Чтобы подсветить строку таблицы, можно создать какой-нибудь css-класс, который будет создавать какое-то выделение этой строки. Класс active, например.
    $('tr').on('click', function() {
        // удаляем у всех tr элементов таблицы класс active
        $('table tr').removeClass('active');
        // выбранной строке таблицы присваиваем класс active
        // в нашем случае в this лежит ссылка на обрабатываемый по клику элемент TR
        $(this).addClass('active');
        var id = $(this).find('td:first').text();
        // в id переменной будет лежать содержимое первого td элемента таблицы
        // дальше его можно куда-нибудь аяксом отправить
        $.ajax({
            type:"POST",
            url:'script.php', // куда шлем запрос
            cache: false,
            data:{id:id}, // отправляем $_POST['id'] скрипту с содержимым переменной id
            dataType: 'json',
            success: function(data){
                // успешно выполнено
            },
            error: function(data){
                // какая-то ошибка
            }
        });
    });

    Насчет success и error не уверен. Говорят, что done нужно использовать.
    Ответ написан
    5 комментариев