Задать вопрос

Проблема переезда на VPS, как пофиксить отправку формы?

Добрый вечер!

Ситуация такая возникла с сайтом speedsporter.ru , это перенесенный с другого хостинга best-sporter.ru .

Проблема следующего характера, при попытке перехода в каталог: speedsporter.ru/catalog/adidas-yeezy-boost-350 товары не выводятся, хотя на главной они есть, база подключена. Файлы не редактировались при переносе, только база.
Фильтр и пагинация при этом отрабатывает четко. Только каталог и отправка форм

Так же при попытке отправить форму заказа или обратной связи нас сразу дропает по причине "id error", паста кода отправки заказа:

<?php
/**
 * Order
 *
 * @author dandelion <web.dandelion@gmail.com>
 * @package App_Order
 */
class App_Order extends Controller
{
    function indexAction(array $params)
    {
        $product_id = @$params[0];
        if (!$product_id)
            echo $product_id;
            die('id error');
        $product = $this->model->product->getById($product_id);
        if ($product->isEmpty())
            die('product doesnt exist');
       
        $form = $this->load->form('order');
        if ($form->isSubmit() && $form->isValid())
        {
            $data = new Entity(array_map('strip_tags',$form->getData()));
 
            $ip = $this->model->user->getIp();
            if ($this->model->order->countByIp($ip) >= 5) {
                die('fail');
            }
 
            /**
             * Сохранение данных
             */
            $id = $this->model->order->add(array(
                'product_id' => $product_id,
                'name'  => $data->name,
                'phone' => $data->phone,
                // 'email' => $data->email,
                // 'address' => $data->address,
                // 'message' => $data->message,
                //'step' => 1,
                'timestamp'  => time(),
                'ref' => (string)@$_COOKIE['ref'],
                'utm_source' => (string)@$_COOKIE['utm_source'],
                'utm_medium' => (string)@$_COOKIE['utm_medium'],
                'utm_term' => (string)@$_COOKIE['utm_term'],
                'utm_content' => (string)@$_COOKIE['utm_content'],
                'utm_campaign' => (string)@$_COOKIE['utm_campaign'],
                'referer' => (string)@$_COOKIE['referer'],
                'phrase' => (string)@$_COOKIE['phrase'],
                'ip' => $ip,                
            ));
            /**
             * Отправка на мыло
             */
            $sent = false;
            if ($this->var->email)
            {
                require_once DIR_LIB.'/phpmailer/class.phpmailer.php';
 
                $mail = new PHPMailer();
                $mail->From     = 'no-reply@'.$_SERVER['HTTP_HOST'];
                $mail->FromName = $data->name ? $data->name : $_SERVER['HTTP_HOST'];    $mail->AddReplyTo($data->email, $data->name);
                $mail->Host     = $_SERVER['HTTP_HOST'];
                if (YANDEX_SMTP_LOGIN && YANDEX_SMTP_PASS)
                {
                    $mail->From     = YANDEX_SMTP_LOGIN;//$data->email;
                    $mail->IsSMTP(); // enable SMTP
                    $mail->SMTPAuth = true;  // authentication enabled
                    $mail->Host = 'smtp.yandex.ru';
                    $mail->Port = 25;
                    $mail->Username = YANDEX_SMTP_LOGIN;  
                    $mail->Password = YANDEX_SMTP_PASS;      
                }
                else
                {
                    $mail->Mailer   = "mail";
                }
                $mail->Body    = nl2br(
"Товар: <a href='http://{$_SERVER['HTTP_HOST']}/item/{$product->key}'>$product->name</a>".($product->code ? " ($product->code)":'')."
Телефон: $data->phone
".(!empty($_COOKIE['ref']) ? "Реферал: {$_COOKIE['ref']}" : '')."
 
".(!empty($_COOKIE['referer']) ? "Источник: {$_COOKIE['referer']}" : '')."
".(!empty($_COOKIE['phrase']) ? "Фраза: {$_COOKIE['phrase']}" : '')."
 
".(!empty($_COOKIE['utm_source']) ? '[utm]'.join('-',array(@$_COOKIE['utm_source'],@$_COOKIE['utm_medium'],@$_COOKIE['utm_term'],@$_COOKIE['utm_content'],@$_COOKIE['utm_campaign'])).'[/utm]' : '')."
[ip]{$_SERVER['REMOTE_ADDR']}[/ip]
 
");
                $mail->AltBody = strip_tags(str_replace("<br/>", "\n", $mail->Body));
                $mail->Subject = 'Заказ #'.$id;//$data->subject;
                $emails = array_map('trim',explode(',',$this->var->email));
                foreach ($emails as $email)
                    $mail->AddAddress($email);
 
                $sent = $mail->Send();
            }
            /**
             * SMS
             */
            $stuff = $this->model->stuff->get();
            if ($stuff->sms_order_enable)
            {
                $phone1 = preg_replace('@[^0-9]+@i','',$data->phone);
                $phone2 = preg_replace('@[^0-9]+@i','',$stuff->sms_order_phone);
                $placeholders = array(
                    '{ID}' => $id,
                    '{NAME}' => $data->name,
                    '{PHONE}' => $data->phone,
                    '{TOTAL}' => ((int)$product->price).' '.$stuff->currency,
                );
                $text1 = str_replace(array_keys($placeholders),array_values($placeholders),$stuff->sms_order_client);
                $text2 = str_replace(array_keys($placeholders),array_values($placeholders),$stuff->sms_order_admin);
               
                if ($phone1 && $text1)
                    $this->model->sms->send($phone1,$text1);
                if ($phone2 && $text2)
                    $this->model->sms->send($phone2,$text2);
            }
            /**
             * Результат
             */
            if ($id || $sent)
            {
                $this->Url_redirectTo('order/success/'.$id);
                die('ok');
                //$this->tpl->assignBlockVars('success');
                //unset($_POST);
                //$this->Url_redirectTo('order/shipping/'.$id);
            }
            else
            {
                //$this->tpl->assignBlockVars('fail');
            }
            /*
            if (isset($params[1]) && $params[1]=='pay')
            {
                $this->model->order->edit(array(
                    'step' => 3,
                    'paymethod'  => 'robokassa'
                ),$id);
 
                $stuff = $this->model->stuff->get();
               
                $mrh_login = ROBOKASSA_LOGIN;
                $mrh_pass1 = ROBOKASSA_PASS1;
                $out_summ = $product->price;
                $inv_id = $id;
                $inv_desc = "Оплата заказа в магазине \"{$stuff->site_name}\"";
                $shp_item = 1;
                $in_curr = "PCR";
                $culture = "ru";
                $crc  = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1");
                $test_url = "http://test.robokassa.ru/Index.aspx";
                $production_url = "https://merchant.roboxchange.com/Index.aspx";
                $final_url = "{$production_url}?".http_build_query(array(
                    'MrchLogin' => $mrh_login,
                    'OutSum' => $out_summ,
                    'InvId' => $inv_id,
                    'Desc' => $inv_desc,
                    'SignatureValue' => $crc,
                    //'IncCurrLabel' => $in_curr,
                    'Culture' => $culture,
                ));
                die("<meta http-equiv=\"refresh\" content=\"0; url={$final_url}\"/>
                <p>Пожалуйста, подождите, идет перенаправление на сервис RoboKassa...</p>
                <p>Если ваш браузер не поддерживает автоматической переадресации, нажмите <a href=\"{$final_url}\">сюда</a></p>");
            }
            else
            {
                $this->model->order->edit(array(
                    'step' => 5,
                ),$id);
                $this->Url_redirectTo('order/success/'.$id);
                die('ok');
            }
             */
        }
        else $form->renderErrors($this->tpl);
       
        $this->tpl->assignVars(array(
            'ID'=>$product_id,
            'PRODUCT_NAME'=>$product->name
        ));
    }
   
    function successAction(array $params)
    {
        $id = (int)@$params[0];
        if (!$id)
            die('id error');
           
            $order = $this->model->order->getById($id);
            $product = $this->model->product->getById($order->product_id);
            $goods = array(
                    'id' => $product->id,
                    'name' => $product->name,
                    'price' => $product->price,
                    'quantity' => 1
            );
           
        $this->tpl->assignVars(array(
            'ID' => $id,
            'TOTAL' => $product->price,
            'GOODS' => json_encode($goods),
        ));
    }
}


Версия PHP 5.6 в обоих случаях, возможно что-то нужно доинсталлировать на сервер? Думал PHPMailer, нет, доинсталлировав его ситуация та же. Спасибо за любую помощь и наводку куда смотреть!
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
я бы предложил freelansim.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы