RSForm и MySQL

  • 12 Ответов
  • 584 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Aztwin

  • **
  • 14
  • 0
RSForm и MySQL
« : 16.05.2016, 11:27:00 »
Всем добра форумчане! Прошу помощи в решении проблемы со скриптом или настройкой RSForm для отправки данных формы в нужную мне таблицу в базе. Написал PHP скрипт

Код
<?php

// обработка полученных данных
$id = $_POST['id'];
$matchday_id = $_POST['matchday_id'];
$nember = $_POST['nember'];
$dete = $_POST['dete'];
$team1_id = $_POST['team1_id'];
$team2_id = $_POST['team2_id'];
$score1 = $_POST['score1'] ? $_POST['score1'] : 'null';
$score2 = $_POST['score2'] ? $_POST['score2'] : 'null';
$stadium_id = $_POST['stadium_id'] ? $_POST['stadium_id'] : 'null';
$viewers = $_POST['viewers'] ? $_POST['viewers'] : 'null';

// подключение к базе данных
require_once 'link.php';

// запрос
$result = mysqli_query($link, " INSERT INTO matches VALUES ('$id', '$matchday_id', $nember, '$dete', $team1_id, $team2_id, $score1, $score2, $stadium_id, $viewers) ");

// закрытие соединения
mysqli_close();

?>

 который собирает данные $_POST и делает INSERT в базу. Если открыть сам скрипт файл напрямую имя_сайта/insert_match.php то всё нормально работает. Но если подгрузить скрипт в форму или скопировать во второе поле ---$_POST form data can be modified here, before it is added to the database---  то ничего не работает. Что я не так делаю?

*

robert

  • ********
  • 4002
  • 371
Re: RSForm и MySQL
« Ответ #1 : 16.05.2016, 12:26:04 »
Код
<?php
// обработка полученных данных
$id = $_POST['id'];
---
$result = mysqli_query($link, " INSERT INTO matches VALUES ('$id', '$matchday_id', $nember, '$dete', $team1_id, $team2_id, $score1, $score2, $stadium_id, $viewers) ");
?>
Ооо, SQL-инъекция передает вам привет! А не работает, по-видимому, из-за неправильного указания пути, как я вам уже ответил в дрйгой теме.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Septdir

  • *******
  • 2143
  • 106
  • JoomlaZen
Re: RSForm и MySQL
« Ответ #2 : 16.05.2016, 12:29:24 »
Там же теперь отдельный функционал для добавления в базу. даже кода не надо.
Что же касается вашего кода, то можно сделать на api Joomla
Код
$item = new stdClass(); 
$item->id = $_POST['id']; // WHY NOT AUTO ?
$item->matchday_id = $_POST['matchday_id'];
$item->nember = $_POST['nember'];
$item->dete = $_POST['dete']; // WHY NOT AUTO ?
$item->team1_id = $_POST['team1_id'];
$item->team2_id = $_POST['team2_id'];
$item->core1 = $_POST['score1'] ? $_POST['score1'] : 'null'; // ?
$item->score2 = $_POST['score2'] ? $_POST['score2'] : 'null'; // ?
$item->stadium_id = $_POST['stadium_id'] ? $_POST['stadium_id'] : 'null'; //  ?
$item->viewers = $_POST['viewers'] ? $_POST['viewers'] : 'null'; // ?
$item_action = JFactory::getDbo()->insertObject('#__table_name', $item);

P.S на будущее пишиите задачу целиком. А если говорим о базе то не плохо бы глянуть на ее структуру. А то малолу вы в int text записать пытаетесь
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

Aztwin

  • **
  • 14
  • 0
Re: RSForm и MySQL
« Ответ #3 : 16.05.2016, 12:33:12 »
Там же теперь отдельный функционал для добавления в базу. даже кода не надо.
Что же касается вашего кода, то можно сделать на api Joomla

P.S на будущее пишиите задачу целиком. А если говорим о базе то не плохо бы глянуть на ее структуру. А то малолу вы в int text записать пытаетесь

А можете по подробнее расписать что и как сделать? Млин уже который день бьюсь... Плиз... и какие данные нужны?

*

Aztwin

  • **
  • 14
  • 0
Re: RSForm и MySQL
« Ответ #4 : 16.05.2016, 12:35:55 »
Ооо, SQL-инъекция передает вам привет! А не работает, по-видимому, из-за неправильного указания пути, как я вам уже ответил в дрйгой теме.
Я пока еще о безопасности не думал. Мне бы для начала в базу залить данные из формы...

*

Septdir

  • *******
  • 2143
  • 106
  • JoomlaZen
Re: RSForm и MySQL
« Ответ #5 : 16.05.2016, 12:41:32 »
А можете по подробнее расписать что и как сделать? Млин уже который день бьюсь... Плиз... и какие данные нужны?
Ну если просите помочь с базой всегда не плохо бы показывать структуру самой таблицы. А то всякое бывает. Помню как-то раз бился почти целый день над ошибкой, а оказалось что я parent написал paarent.
По существу вашего вопроса. На сайте RSJoomla есть куча роликов и документации. Если не помогает. То у них очень отзывчивый саппорт. Сегодня понедельник по UTC+2:00 сейчас 9:35, так что кат-раз.  
Ну а если у вас стоит варез. будьте любезны страдать сами. ИМХО
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

SDKiller

  • ******
  • 2734
  • 320
  • ...ergo sum
Re: RSForm и MySQL
« Ответ #6 : 16.05.2016, 12:44:31 »
...то можно сделать на api Joomla

Какое-то у вас однобокое использование API Joomla.

Почему у вас используется голый $_POST ?

*

Septdir

  • *******
  • 2143
  • 106
  • JoomlaZen
Re: RSForm и MySQL
« Ответ #7 : 16.05.2016, 12:47:20 »
Какое-то у вас однобокое использование API Joomla.

Почему у вас используется голый $_POST ?
Да лень было. я просто копирнул что под рукой было и посавил его значения. могу конечно переписать через JRequest::getVar();
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

SDKiller

  • ******
  • 2734
  • 320
  • ...ergo sum
Re: RSForm и MySQL
« Ответ #8 : 16.05.2016, 12:55:04 »
...могу конечно переписать через JRequest::getVar();

Если уж поучать новичка, да ещё в таком тоне, то хотя бы делать это правильно, тем более что вопрос безопасности уже был поднят несколькими постами ранее.

И, кстати, JRequest уже давно объявлен deprecated, так что если уж переписывать, то используя актуальный код.

*

Septdir

  • *******
  • 2143
  • 106
  • JoomlaZen
Re: RSForm и MySQL
« Ответ #9 : 16.05.2016, 13:13:39 »
Если уж поучать новичка, да ещё в таком тоне, то хотя бы делать это правильно, тем более что вопрос безопасности уже был поднят несколькими постами ранее.
А в каком тоне?. Вопрос безопасности. К отправлению человека читать документацию, отношения не имеет. Ибо в документации он найдет как сделать то что ему нужно, не написав ни сточки кода.
Код
И, кстати, JRequest уже давно объявлен deprecated, так что если уж переписывать, то используя актуальный код.
да флейм идет года c 2014. Вот только его как использовали так и используют. да и Jinput тоже со своими прибамбасами.
Так что новичку это знать абсолютно без надобности. хотя какой он новичок если уже дошел до того что ему нужна работа со своей базой.
« Последнее редактирование: 16.05.2016, 13:37:17 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

Aztwin

  • **
  • 14
  • 0
Re: RSForm и MySQL
« Ответ #10 : 16.05.2016, 14:08:09 »
Ну если просите помочь с базой всегда не плохо бы показывать структуру самой таблицы. А то всякое бывает. Помню как-то раз бился почти целый день над ошибкой, а оказалось что я parent написал paarent.
По существу вашего вопроса. На сайте RSJoomla есть куча роликов и документации. Если не помогает. То у них очень отзывчивый саппорт. Сегодня понедельник по UTC+2:00 сейчас 9:35, так что кат-раз.  
Ну а если у вас стоит варез. будьте любезны страдать сами. ИМХО

Поставил RSForm только из за того, что не смог найти решения своей проблемы. Наткнулся в инэте на статью, что в в компоненте RSForm можно указать своей php скрипт, вот и подумал что это может быть решением моей проблемы. Ведь сам скрипт удачно отрабатывал задачу и вносил данные в таблицу. Про структуры таблицы в которую нужно вносить данные (matches) или матчи. Вот структура таблицы:
Код
-- таблица матчи
CREATE TABLE `matches` (
`id` CHAR(15) NOT NULL PRIMARY KEY COMMENT 'код матча', -- пример TLC-2016-01-001 вносится вручную
`matchday_id` CHAR(11) NOT NULL COMMENT 'код турнира', -- пример TLC-2016-08 ссылка на таблицу туры
`nember` SMALLINT UNSIGNED NOT NULL COMMENT 'номер матча', -- пример 001
`dete` DATE COMMENT 'дата матча', -- пример 2016-05-01
`team1_id` TINYINT UNSIGNED COMMENT 'код команды 1', -- пример 1 ссылка на таблицу команды
`team2_id` TINYINT UNSIGNED COMMENT 'код команды 2', -- пример 2 ссылка на таблицу команды
`score1` TINYINT UNSIGNED COMMENT 'очки 1', -- пример 0
`score2` TINYINT UNSIGNED COMMENT 'очки 2', -- пример 0
`stadium_id` TINYINT UNSIGNED COMMENT 'код стадиона', -- пример 1 ссылка на таблицу стадионы
`viewers` SMALLINT UNSIGNED COMMENT 'зрители', -- пример 50000
UNIQUE (matchday_id, nember),
UNIQUE (team1_id, dete, team2_id),
FOREIGN KEY (matchday_id) REFERENCES matchdays (id) ON DELETE CASCADE,
FOREIGN KEY (team1_id) REFERENCES teams1 (id) ON DELETE CASCADE,
FOREIGN KEY (team2_id) REFERENCES teams2 (id) ON DELETE CASCADE,
FOREIGN KEY (stadium_id) REFERENCES stadiums (id) ON DELETE CASCADE
) COMMENT 'таблица матчи';
DESC matches;

*

Septdir

  • *******
  • 2143
  • 106
  • JoomlaZen
Re: RSForm и MySQL
« Ответ #11 : 16.05.2016, 14:12:27 »
Наткнулся в инэте на статью, что в в компоненте RSForm можно указать своей php скрипт, вот и подумал что это может быть
Статья старая.
Если лень искать самому.
Текст:
https://www.rsjoomla.com/support/documentation/rsform-pro/customizing-rsform-pro/mapping-submission-info-to-other-database-tables.html
Видео:
https://www.rsjoomla.com/video-tutorials/rsformpro/ep-67-how-to-transform-an-rsformpro-submission-into-a-joomla-article.html
Саппорт :
https://www.rsjoomla.com/support.html
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

Aztwin

  • **
  • 14
  • 0
Re: RSForm и MySQL
« Ответ #12 : 16.05.2016, 14:16:54 »
Статья старая. Если лень искать самому.
Нее, я про решение в самой Joomla без сторонних расширений. Чтобы можно было в самой статье сделать форму с отправкой данных в базу...