Ответы пользователя по тегу PHP
  • Как вызывать метод без параметров, а сам метод сделать с параметрами?

    Jakim
    @Jakim
    Laravel - developer
    Возможно что-то не правильно понял, НО!

    $route = new Route($url, $method); // тут по сути произошло new IndexController
    $route->run(); // здесь соответственно вызывается функция run по типу (new IndexController)->run()


    но ведь самой функции run в контроллере нет.
    Ответ написан
  • Как запустить исполняемый файл PHP?

    Jakim
    @Jakim
    Laravel - developer
    Добрый день. Уточните пожалуйста где вы пытаетесь запустить. Установлен ли на сервере/компьютере вообще php. Установлены ли все зависимости? потому что данная ошибка говорит о невозможности подключить файл. А исходя из того что это ядерные функции ларавел. Возможно Вам поможет следующее

    1) в консоли зайти в корень папки Laravel cd /my_project
    2) выполните установку зависимостей composer install для большей уверености можно удалить composer.lock файл если он существует

    Дальше уже нужно смотреть по ситуации.
    Ответ написан
  • Как указать apache какую версию php использовать?

    Jakim
    @Jakim
    Laravel - developer
    Для Nginx
    cd /etc/nginx/sites-available/
    sudo nano your_domain.com
     location ~ \.php$ {
           fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; # какую версию читать для сайта your_domain.com выбрать можно любую с установленых на серваке
        }

    Для Apache2
    sudo apt install php7.2 php7.2-fpm # установили php версию нужную для определенного домена
    ###
    sudo a2enmod actions fastcgi alias proxy_fcgi # Ubuntu старее 18.04
    sudo a2enmod actions fcgid alias proxy_fcgi # Ubuntu 18.04
    ###
    sudo nano /etc/apache2/sites-available/your_domain.com
    
    <VirtualHost *:80>
        ServerName your_domain.com
        DocumentRoot /var/www/your_domain_folder
        <Directory /var/www/your_domain_folder>
            Options -Indexes +FollowSymLinks +MultiViews
            AllowOverride All
            Require all granted
        </Directory>
        <FilesMatch \.php$>
            SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/" # версия php которая нужна на этом домене
        </FilesMatch>
    </VirtualHost>
    Ответ написан
    1 комментарий
  • Как заставить работать встроенный в локальный сервер Open Server модуль Imagick?

    Jakim
    @Jakim
    Laravel - developer
    Если работаете в CMS используйте константу к примеру DIR_IMAGE -OpenCart
    Если самопис или не знаете констант используйте $_SERVER['DOCUMENT_ROOT'] и дальше указывайте путь к изображению.
    Ответ написан
    Комментировать
  • Как разрешить ошибку mail(): Multiple or malformed newlines found in additional_header?

    Jakim
    @Jakim
    Laravel - developer
    <?php
    /**
     * Created by PhpStorm.
     * User: Jakim
     * Date: 08.11.2017
     * Time: 3:37
     */
    $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
    $boundary     = "--".md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.
    $subject_text = 'Тест от меня';
    $subject= '=?utf-8?B?' . base64_encode($subject_text) . '?=';
    $message = 'текст сообщения';
    $headers    = "MIME-Version: 1.0;" . $EOL . "";
    $headers   .= "Content-Type: multipart/mixed; boundary=\"" . $boundary . "\"" . $EOL . "";
    $headers   .= "From: jakimoff1990@gmail.com\nReply-To: jakimoff1990@gmail.com\n";
    
    $multipart  = "--" . $boundary . $EOL;
    $multipart .= "Content-Type: text/html; charset=utf-8" . $EOL . "";
    $multipart .= "Content-Transfer-Encoding: base64" . $EOL . "";
    $multipart .= $EOL; // раздел между заголовками и телом html-части
    $multipart .= chunk_split(base64_encode($message));
    
    #начало вставки файлов
    
    foreach($_FILES["file"]["name"] as $key => $value){
        $filename = $_FILES["file"]["tmp_name"][$key];
        $file = fopen($filename, "rb");
        $data = fread($file,  filesize( $filename ) );
        fclose($file);
        $NameFile = $_FILES["file"]["name"][$key]; // в этой переменной надо сформировать имя файла (без всякого пути);
        $File = $data;
        $multipart .=  "" . $EOL . "--" . $boundary . $EOL . "";
        $multipart .= "Content-Type: application/octet-stream; name=\"" . $NameFile . "\"" . $EOL . "";
        $multipart .= "Content-Transfer-Encoding: base64" . $EOL . "";
        $multipart .= "Content-Disposition: attachment; filename=\"" . $NameFile . "\"" . $EOL . "";
        $multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла
        $multipart .= chunk_split(base64_encode($File));
    
    }
    
    #>>конец вставки файлов
    
    $multipart .= "" . $EOL . "--" . $boundary . "--" . $EOL . "";
    
    if(!mail('jakimoff1990@gmail.com', $subject, $multipart, $headers)){
        echo 'Письмо не отправлено';
    } //Отправляем письмо
    else{
        echo 'Письмо отправлено';
    }

    Там немного поменялись у людей заголовки, сам заморочился пока собрал все в кучу.
    Ответ написан
    1 комментарий
  • Как запустить Cron задачу на Open Server?

    Jakim
    @Jakim
    Laravel - developer
    %progdir%\modules\wget\bin\wget.exe -q --no-cache -O /dev/null http:// your.site/script.php
    %progdir% переменная, которая задается в настройках OpenSever, будет указывать на путь к файлам программы.
    Но что бы сделать каждые 2 секунды, это разве что скриптом можно такое вычудить, и лишь до того момента пока хост не блокнет Вам ip за такое количество запросов на сервак
    Ответ написан
    Комментировать