• Как создать запись в таблице сразу после того как файл будет полностью загружен через ProFTPD?

    rabbit418
    @rabbit418 Автор вопроса
    23 yo Designer from Ukraine
    Посмотрел в логах и нашел ошибку SQL:

    mod_sql/4.3: unrecoverable backend error: (1136) Column count doesn't match value count at row 1


    Все оказалось проще чем я думал, в таблице было еще поле id которое AUTO_INCREMENT и его тоже надо было передать.

    Решение моей проблемы для потомков:
    SQLLog RETR,STOR handle
    SQLNamedQuery handle INSERT "'', '%f', %b, '%u', now()" uploadhistory
    Ответ написан
    Комментировать
  • Как в Twig использовать шаблон в зависимости от ситуации?

    rabbit418
    @rabbit418 Автор вопроса
    23 yo Designer from Ukraine
    Получилось решить проблему простым вложением.

    Есть файл layout.twig в нем базовый шаблон, далее файл index.twig в нем шаблон страницы, и отдельные файлы для каждого из микрошаблонов.

    layout.twig:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        {% block content %}{% endblock %}
    </body>
    </html>


    index.twig:
    {% extends 'layout.twig' %}
    
    {% block content %}
        {% block info %}{% endblock %}
    {% endblock %}


    Ну и template1.twig например:
    {% extends 'index.twig' %}
    
    {% block info %}Hello World{% endblock %}


    Ну и на страницу рендерим template1.twig.
    Ответ написан
    Комментировать
  • Как настроить smtp?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Установи себе на локальный сервер какой нибудь почтовый сервис, Postfix например.

    https://www.digitalocean.com/community/tutorials/h...
    Ответ написан
    Комментировать
  • RedBeanPhp Как сделать вывод картинок по id?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    <?php
    $all = R::getAll ("SELECT * FROM product JOIN images ON product.img_id = images.id_img");
    $pay = R::findAll('images', 'id_img = ?', [$all->img_id]);
    Ответ написан
    Комментировать
  • Как реализовать кукисы при авторизации?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    При авторизации создаем в базе, редисе или мемкеше запись о входе куда пишем UUID и срок его действия (так же можно записать информацию о пользователе, например IP, UserAgent, UserID итд.). Далее этот UUID записываем в куки или сессию. После этого если надо проверить авторизован ли пользователь берем UUID и проверяем в базе срок действия, если UUID не просрочен считаем пользователя авторизованным.
    Ответ написан
    Комментировать
  • Есть ли рабочий консольный Telegram-клиент для считывания сообщений пользователя?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Есть telegram-cli
    Ответ написан
    Комментировать
  • Как отправить из php функции post запрос?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    <?php
    function post($url, $data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        curl_close ($ch);
    
        return $output;
    }
    
    echo post("https://google.com", [
        'foo' => 'bar'
    ]);
    Ответ написан
    Комментировать
  • Як поставить проверку php (if) и проверять содержимое что есть в корне сайта?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    <?php
    $request_uri = explode('/', $_SERVER['REQUEST_URI'], 2);
    
    switch ($request_uri[0]) {
        case '/uk':
            # code...
            break;
    
        case '/en_US':
            # code...
            break;
    
        case '/ru_RU':
            # code...
            break;
    
        default:
            # code...
            break;
    }
    Ответ написан
    Комментировать
  • Как правильно передать 6-й аргумент функции setcookie() и как его понимать?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    session_start();
    $currentCookieParams = session_get_cookie_params();
    $sidvalue = session_id();
    
    if(!isset($_COOKIE['PHPSESSID'])) {
    	setcookie(
    		'PHPSESSID', //name  
    		$sidvalue, //value  
    		0, //expires at end of session  
    		$currentCookieParams['path'], //path  
    		$currentCookieParams['domain'], //domain  
    		true //secure  
    	);
    }
    Ответ написан
  • Сайт с API предоставляющий график криптовалюты?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Ответ написан
    Комментировать
  • Не отсылает сообщение на почту при отправители, почему?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Для валидации email есть функция filter_var.

    <?php
    $email = "john.doe@example.com";
    
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
      echo("$email is a valid email address");
    } else {
      echo("$email is not a valid email address");
    }
    ?>
    Ответ написан
    Комментировать
  • Как починить json?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Ну самое простое можно $template прогнать через urlencode(), а на клиенте разобрать обратно через decodeURIComponent().

    <?php
    $template = implode("\n", [
    	'<!DOCTYPE html>',
    	'<html lang="en">',
    	'<head>',
    		'<meta charset="UTF-8">',
    		'<title>Document</title>',
    	'</head>',
    	'<body>',
    		'<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima consectetur placeat, doloribus, qui eaque quas laborum fuga voluptas dolorum distinctio illo quibusdam quia cum, inventore quos. Quo ipsam sed asperiores.</p>',
    	'</body>',
    	'</html>'
    ]);
    
    $response = array(
        "html" => urlencode($template),
        "show" => 'true'
    );
    header('Content-type: application/json; charset=utf-8');
    $json = json_encode($response);
    
    echo $json;
    ?>


    <script>
    var data = new FormData();
    data.append("foo", "bar");
    
    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;
    
    xhr.addEventListener("readystatechange", function () {
      if (this.readyState === this.DONE) {
        console.log(decodeURIComponent(this.responseText));
      }
    });
    
    xhr.open("GET", "/ajax");
    
    xhr.send(data);
    </script>
    Ответ написан
    Комментировать
  • Вместо ссылки на аудио плеер?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Вот например:
    <?php
    function parseAudio($message) {
    	$matches = [];
    	$s = preg_match('/\[audio (.*?)\]/', $message, $matches);
    	return str_replace($matches[0], "<audio controls><source src=\"{$matches[1]}\" type=\"audio/wav\"></audio>", $message);
    }
    
    echo parseAudio("Message with audio\n[audio records/1517754431.wav]");
    ?>
    Ответ написан
    Комментировать
  • Как почистить сервер cenos?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    В первую очередь удалить нужно старые версии ядер.
    yum install yum-utils -y;
    package-cleanup --oldkernels;
    Ответ написан
    Комментировать
  • Как создать приложение flask на centos7?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    1. sudo yum install epel-release
    2. sudo yum install python-pip python-devel gcc nginx
    3. sudo pip install virtualenv
    4. mkdir ~/myproject
    5. cd ~/myproject
    6. virtualenv myprojectenv
    7. source myprojectenv/bin/activate
    8. pip install gunicorn flask
    9. vim ~/myproject/myproject.py
    from flask import Flask
    application = Flask(__name__)
    
    @application.route("/")
    def hello():
        return "<h1 style='color:blue'>Hello There!</h1>"
    
    if __name__ == "__main__":
        application.run(host='0.0.0.0')

    10. python myproject.py
    11. open localhost:5000
    Ответ написан
    Комментировать
  • PHP. Как отправить сообщение на mail.ru с пометкой "Регистрация"?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Попробуй воспользоваться этой библиотекой: https://github.com/PHPMailer/PHPMailer
    Вот пример:
    <?php
    // Import PHPMailer classes into the global namespace
    // These must be at the top of your script, not inside a function
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    //Load composer's autoloader
    require 'vendor/autoload.php';
    
    $mail = new PHPMailer(true);                              // Passing `true` enables exceptions
    try {
        //Server settings
        $mail->SMTPDebug = 2;                                 // Enable verbose debug output
        $mail->isSMTP();                                      // Set mailer to use SMTP
        $mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;                               // Enable SMTP authentication
        $mail->Username = 'user@example.com';                 // SMTP username
        $mail->Password = 'secret';                           // SMTP password
        $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = 587;                                    // TCP port to connect to
    
        //Recipients
        $mail->setFrom('from@example.com', 'Mailer');
        $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
        $mail->addAddress('ellen@example.com');               // Name is optional
        $mail->addReplyTo('info@example.com', 'Information');
        $mail->addCC('cc@example.com');
        $mail->addBCC('bcc@example.com');
    
        //Attachments
        $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
        $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
    
        //Content
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = 'Here is the subject';
        $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    
        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
    }
    Ответ написан
    1 комментарий
  • Как эмулировать запрос FormData из PHP?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Можно например так, с помощью Curl.

    <?php
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "/ajax.php",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"foo\"\r\n\r\nbar\r\n-----011000010111000001101001--\r\n",
      CURLOPT_HTTPHEADER => array(
        "content-type: multipart/form-data; boundary=---011000010111000001101001"
      ),
    ));
    
    $response = curl_exec($curl);
    $err = curl_error($curl);
    
    curl_close($curl);
    
    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo $response;
    }


    А еще можно вот так, с помощью HTTP v2:
    <?php
    
    $client = new http\Client;
    $request = new http\Client\Request;
    
    $body = new http\Message\Body;
    $body->addForm(array(
      'foo' => 'bar'
    ), NULL);
    
    $request->setRequestUrl('/ajax.php');
    $request->setRequestMethod('POST');
    $request->setBody($body);
    
    $client->enqueue($request)->send();
    $response = $client->getResponse();
    
    echo $response->getBody();
    Ответ написан
    1 комментарий
  • Как правильно использовать цикл?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Используйте лучше PDO.

    <?php
    # подключаемся к базе данных  
    try {
      $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
      $DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    }catch(PDOException $e) {
      echo "Хьюстон, у нас проблемы.";
    }
    
    # данные, которые мы вставляем  
    $data = [
      'type' => $_GET['type']
    ];
    
    # делаем запрос
    $STH = $DBH->prepare("select * from catalog where catalog.type = :type order by catalog.id desc");
    $STH->execute($data);
    
    # устанавливаем режим выборки
    $STH->setFetchMode(PDO::FETCH_ASSOC);
    
    # выводим результат
    while($row = $STH->fetch()) {
      echo "<div class=\"item active\">{$row['name']} - {$row['price']}</div>";
    }
    ?>
    Ответ написан
    Комментировать
  • Как сделать правильный random?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Вероятность на то и вероятность, ее невозможно с точьносью просчитать. Можете прогнать простой тест, и хоть на 100, хоть на 1000 тестах результат будет отличаться на ±3-5% от общего значения.

    <?php
    # Показать с 70% вероятностью
    echo rand(1, 100) <= 70 ? "Показать" : "Скрыть";
    ?>
    Ответ написан
    Комментировать
  • Не работает модем в Gentoo, что делать?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Gentoo это операционная система для опытных пользователей. Может быть Вам попробовать что то более простое например Linux Mint.
    Ответ написан
    2 комментария