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

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";
     }
  ?>

 

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


  В 14.10.2017 в 17:12, nikifalex сказав:

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

Expand  

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

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


  В 14.10.2017 в 18:17, WebDevYV сказав:

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

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

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

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


  В 14.10.2017 в 18:33, agefremov сказав:

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

Expand  

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

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


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

 

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

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

  В 14.10.2017 в 19:30, Otvet сказав:

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

 

 

Expand  

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

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


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

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

  В 14.10.2017 в 19:49, chukcha сказав:

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

Expand  

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

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


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

 

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

 

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

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

  В 14.10.2017 в 20:05, chukcha сказав:

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

 

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

 

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

Expand  

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

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


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

  В 14.10.2017 в 19:22, WebDevYV сказав:

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

Expand  

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

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

  В 14.10.2017 в 20:26, chukcha сказав:

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

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

Expand  

"но при установке его на сервер в файл 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-клиент?

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

  В 14.10.2017 в 21:59, chukcha сказав:

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

$price = $product_info['price']

Expand  

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

$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, то есть здесь вы были правы.

  В 15.10.2017 в 07:11, chukcha сказав:

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

Expand  

 

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

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


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

 

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

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

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

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

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

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

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

Вхід

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

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

Important Information

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