Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

OpenCart не выполняет скрипт


WebDevYV

Recommended Posts

Есть скрипт, который на локальной машине работает корректно, но при установке его на сервер в файл product.tpl (cms OpenCart 2.3.0.2, theme Next Default 3)ничего не происходит. Скрипт берет цену из таблицы с учетом id товара. Ошибок код никаких не выводит. Спасибо за помощь.

  <?php
    $host = 'хост';
    $db   = 'имя бд';
    $user = 'юзер нейм';
    $pass = 'пароль';
    $charset = 'utf8';

    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = [
      PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
      PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
      PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $user, $pass, $opt);

    $stmt = $pdo->prepare('SELECT price FROM oc_product WHERE product_id = ?');
    $stmt->execute([$_GET['id']]);
     foreach ($stmt as $row)
     {
      echo 'price '.$row['price'] . "\n";
     }
  ?>

 

Надіслати
Поділитися на інших сайтах


1 час назад, nikifalex сказал:

если вы пишете какую-то жуть, то причем тут opencart вообще?

можно ли более аргументированно? Кстати, ошибку нашел, $_GET['id']- ничего не вызывал. 

$_GET['product_id']- нужно было так
Надіслати
Поділитися на інших сайтах


13 минут назад, WebDevYV сказал:

можно ли более аргументированно? Кстати, ошибку нашел, $_GET['id']- ничего не вызывал. 


$_GET['product_id']- нужно было так

На stackoverflow подсказали? У Вас какая конечная цель, задача какая, а то получается не очень элегантное решение.

Надіслати
Поділитися на інших сайтах


44 минуты назад, agefremov сказал:

На stackoverflow подсказали? У Вас какая конечная цель, задача какая, а то получается не очень элегантное решение.

Все верно, на нем. Задача была изначальная взять цену из "price" при входе на товар. Но задача уже изменилась и выполнена(подгрузка цен в калькулятор). Если у вас есть более лаконичное решение, буду рад посмотреть. Спасибо за внимание.

Надіслати
Поділитися на інших сайтах


Фигня - пишите все в шаблон, зачем вам встроенные методы опенкарта?

 

Покажите советчиков со stackoverflow

Надіслати
Поділитися на інших сайтах

11 минут назад, Otvet сказал:

подскажите сайтик, надо ломануть базу для того чтоб не повадно было так делать

 

 

Проще сказать "не падай", чем дать руку? Я только начинаю( очень начинаю, это первое, что написано на php/sql), можно сказать где здесь пробоина, а лучше дать совет, как не нужно, чтобы не повадно было?

Надіслати
Поділитися на інших сайтах


Так вы не с того начали..
Вам уже надо лезть напрямую в базу!!!
Это вы быстро усваиваете.
А копнуть глубже, изучить подобный код?

Надіслати
Поділитися на інших сайтах

Только что, chukcha сказал:

Так вы не с того начали..
Вам уже надо лезть напрямую в базу!!!
Это вы быстро усваиваете.
А копнуть глубже, изучить подобный код?

Разумеется все будет изучено в должном уровне, просто сейчас возникла острая необходимость в написании конкретно такого запроса/программы. Сначала был написан код по устаревшей методике(не знаю, почему не обратьил внимание на предупреждение об отсутствии тех функций в php7), потом вот переписал в PDO. Сейчас перемещу подключение к хосту в отдельный файл. Из безопасных соображений пока ничего не приходит в голову( от отсутствия опыта). Если вы серьезно про советников на стак, то могу дать. 

Надіслати
Поділитися на інших сайтах


Конечно серьезно дайте советчиков, не поленюсь наконец-то зарегистрироваться.
1. опенкарт не сильно заточен по PDO

 

Конечно можно, но есть нюансы.

 

потому что , изучаем понятие SQL инъекций

Надіслати
Поділитися на інших сайтах

8 минут назад, chukcha сказал:

Конечно серьезно дайте советчиков, не поленюсь наконец-то зарегистрироваться.
1. опенкарт не сильно заточен по PDO

 

Конечно можно, но есть нюансы.

 

потому что , изучаем понятие SQL инъекций

https://ru.stackoverflow.com/questions/730822/opencart-не-выполняет-скрипт вот ссылка на вопрос. Но в чем проблема, честно говоря, до конца не понимаю, потому что вопрос был решен. А момент безопасности, думаю отдельная, большая тема. 

Надіслати
Поділитися на інших сайтах


Секундочку...

1 час назад, WebDevYV сказал:

Все верно, на нем.

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

Надіслати
Поділитися на інших сайтах

8 минут назад, chukcha сказал:

Секундочку...

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

"но при установке его на сервер в файл product.tpl (cms OpenCart 2.3.0.2, theme Next Default 3)"

Не понимаю с чего Вы так решили. Да и какая разница? Разве вывод из OC отличается от любого другого? 

Надіслати
Поділитися на інших сайтах


Не совсем понял.. Какое?

 

$product_info = $this->model_catalog_product->gatProduct($this->request->get['product_id'];

$price = $product_info['price']

 

Разницу видите?

 

Где подключение к базе?

Где возможная SQL инъекция?

Где в конце, концов sql-клиент?

Надіслати
Поділитися на інших сайтах

12 часов назад, chukcha сказал:

$product_info = $this->model_catalog_product->gatProduct($this->request->get['product_id'];

$price = $product_info['price']

Разница существенна, но данный код не работает(

$product_info = $this->model_catalog_product->getProduct($this->request->get['product_id')];

$price = $product_info['price']

)

Выводит Fatal error: Using $this when not in object context in C:\OSPanel\domains\testsql\sql-test.php on line 47

Где 47 строка- объявление $product_info.

По поводу того что было нужно: вывод цены из столбца price, то есть здесь вы были правы.

3 часа назад, chukcha сказал:

Я так понимаю, что ТС нужна цена неотформатированная цена

 

Сейчас были добавлены 6 столбцов по той же схеме price_1, price_2, price_n, куда будут вноситься цены(шесть, потому что цены будут варьироваться в зависимости от количества дней ). Задача не изменилась, вывод работает, но по условию кода в первом вопросе, который не безопасен. Буду копать, как обращаться к БД OpenCart базовыми средствами. 

Надіслати
Поділитися на інших сайтах


ну не подключил я еще модель.. И что..

 

Не важно!!!
Вы не стой стороны подходите, вы пытаетесь получить данные в шаблоне,а их нужно получать в контроллере

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.