Перейти к содержимому


Внешние формы


Сообщений в теме: 22

#1 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 01 Сентябрь 2013 - 03:05

1. Можно ли через внешние формы собирать данные например, просить уже существующего контрагента добавлять реквизиты? Пример есть клиент но у него нужно спросить реквизиты, делаем рассылку и клиент через форму сам себе добавляет реквизиты. Есть такая возможность?

2. Можно ли с помощью каких ни будь не реальных действий собирать данные от транзакциях от платежных систем и банков у них же у всех есть result url post или get. Направьте пожалуйста в нужное русло, может что-то подобное уже есть на форуме?

3. У вас же то же Cбербанк бизнес онлайн, вы научились импортировать платежи оттуда? У них нет API это факт, но есть экспорт в 1С. txt.
Эти три проблемы мешают жить, тупо копировать реквизиты и заносить платежи круглосуточно просто убийственное занятие, вы наверняка решили эту проблему для своих нужд? Или люди пока прежнему преобладают перед роботами в этих трех вопросах?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Сентябрь 2013 - 11:00

1. Через внешнюю форму можно добавлять новую запись, но не обновлять существующую. Если только добавлять реквизиты в отдельную таблицу и затем по вычислению переносить в клиента.
2. Не совсем четко задана задача. Если речь о считывании данных по внешнему url, то почему и нет. Добавляете к примеру задание в крон, которое собирает данные по url и добавляет в программу.
3. Не совсем понял о чем вы. Я не в курсе про какой-либо импорт данных со Сбербанка.

#3 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 02 Сентябрь 2013 - 17:53

WebMoney http://soundfon.ru/p...oney.php?summ=2 200&id=2204
summ=2 200 с пробелом.
В шаблоне рассылки вот такое WebMoney http://soundfon.ru/payment/webmoney.php?summ={$Summa}&id={$ID}
Может как-то можно заставить поле сумма не дробить число по 3 знакам?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Сентябрь 2013 - 17:58

Используйте модификаторы: {$Summa|replace:' ':''}

#5 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 02 Сентябрь 2013 - 23:01

У меня на сайте есть result.php который выводит текст об успехе оплаты и заодно собирает данные о платеже в переменные
номер трансакции - $trans
Номер заказа - $zakaz
Сумма - $amount
Имя клиента - $user
Комментарий - $desc
База располагается на другом сервере на порте 8000 В базе есть таблица и анкета хххххххх:8000/questionare.php?id=9 Каким образом этой внешней форме передать все мои переменные?
Примерно что должно быть в result.php каким образом POST или GET? Пользователь не должен участвовать в процессе, никаких кнопок.

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 03 Сентябрь 2013 - 08:05

Цитата

Каким образом этой внешней форме передать все мои переменные?

Также как любому другому скрипту на PHP. POST или GET - особой разницы нет, зависит только от наличия/отсутствия формы на передающем скрипте (result.php, как я понял)

#7 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 04 Сентябрь 2013 - 23:15

Предположим я использую GET Какие минимальные параметры нужны для добавления записи в таблицу?
http://ххххххххххххх...ge_charset=utf8 или так? utf-8
&k_input_field_21_1421 - так понимаю это одно едиственное поле которое у меня есть в таблице.
Так понимаю дату и время нужно добавить, в каком формате?
Что еще нужно передать в запросе GET?

#8 Гость_Roman_*

  • Гости

Отправлено 05 Сентябрь 2013 - 09:13

Можно сделать проще, отправив, например, скрытую внешнюю форму с помощью вызова функции k_save_qst10(), где 10 - id Вашей формы. Т.е. Вы каким-либо образом через php или js заполняете необходимые поля формы, а затем вызываете k_save_qst10(), все запросы сделаются сами в данном случае.

#9 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 05 Сентябрь 2013 - 15:40

У меня есть переменные

$trans
$zakaz
$amount
$user
$desc

// Формирую хапрос вот именно в этой строке и не понимаю что написать.
$link = 'http://хххххххххххххххххх/questionare.php?id=21&page_charset=utf8&'.$trans.$zakaz.$amount.$user.$desc

// Отправляю через CURL
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

#10 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 05 Сентябрь 2013 - 17:22

Есть мысли что должно быть в строке? $link = 'http://хххххххххххххххххх/questionare.php?id=21&page_charset=utf8&'.$trans.$zakaz.$amount.$user.$desc

#11 Гость_Roman_*

  • Гости

Отправлено 06 Сентябрь 2013 - 07:33

$link = 'http://хххххххххххххххххх/questionare.php?id=21&page_charset=utf8&ts'.time().'&k_input_field_21_1700='.$trans.'&k_input_field_21_1710='.$zakaz.'&k_input_field_21_1720='.$amount.'&k_input_field_21_1730='.$user.'k_input_field_21_1740='.$desc.'&k_rand_21=0.'.rand(1000, 10000000)."_".time();
Где числа 1700-1740 - соответствующие id полей.

#12 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 11 Сентябрь 2013 - 01:25

http://xxxxx.ru:8888/questionare.php?id=21&page_charset=utf8&ts=1378851321&k_input_field_21_1431=564656&k_input_field_21_1441=6546546&k_input_field_21_1461=100&k_input_field_21_1451=1212&k_input_field_21_1471=5646546&k_rand_21=0.3673980_1378851321
Вставляю в браузер строку
И форма просто открывается, в таблице ничего не добавляется. То же самое через CURL POST GET не работает, в чем может быть ошибка? Может добиться того чтобы хотя бы одно поле добавлялось? Или все поля обязательны? (в форме и таблице все поля не отмечены как обязательные. они просто текстовые)

Сообщение отредактировал Андрей Гуляев: 11 Сентябрь 2013 - 01:27


#13 Гость_Roman_*

  • Гости

Отправлено 11 Сентябрь 2013 - 09:00

Извините, ввёл в заблуждение. Необходимо из строки запроса убрать id=21. Так как при указании id анкеты открывается форма и обработка полей не проходит.

#14 Андрей Гуляев

    Активный участник

  • Пользователи
  • PipPipPip
  • 94 сообщений
  • Пол:Мужчина

Отправлено 11 Сентябрь 2013 - 17:03

Да отлично всё работает великолепно! Спасибо!

#15 Eris

    Участник

  • Пользователи
  • PipPip
  • 10 сообщений

Отправлено 31 Май 2014 - 09:28

Пытаюсь отправить форму через внешние поля. Делаю вот так
$path = 'http://www.site.ru/crm/questionare.php?page_charset=utf8&ts'.time().'&k_input_field_2_66='.date("Y-m-d H:i:s").'&k_input_field_2_67='.date("Y-m-d H:i:s").'&k_input_field_2_70='.$data['city'].'&k_input_field_2_72='."1".'&k_input_field_2_74='.$data['summa'].'&k_input_field_2_75='.$data['name'].'&k_input_field_2_76='.$data['phone'].'&k_input_field_2_78='.$data['email'].'&k_input_field_2_79='.$data['age'].'&k_input_field_2_80='.$data['cityByPas'].'&k_input_field_2_82='.$data['income'].'&k_input_field_2_83='.$data['confirm'].'&k_input_field_2_85='.$data['company'].'&k_input_field_2_86='.$data['experience'].'&k_input_field_2_93='."На прозвоне (дог. не заключен)".'&k_rand_2=0.'.rand(1000, 10000000)."_".time();
// Отправляю через CURL
$ch = curl_init($path);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close ($ch) ;

Данные не передаются...Добавляется поле с нулевыми значениями... Может я что то делаю не так?

#16 Eris

    Участник

  • Пользователи
  • PipPip
  • 10 сообщений

Отправлено 02 Июнь 2014 - 09:52

Просмотр сообщенияRoman (11 Сентябрь 2013 - 09:00) писал:

Необходимо из строки запроса убрать id=21. Так как при указании id анкеты открывается форма и обработка полей не проходит.

Подскажите пожалуйста, как в чём может быть проблема?

#17 Гость_Roman_*

  • Гости

Отправлено 02 Июнь 2014 - 10:03

Предложения в параметрах (а конкретно вот этот момент - &k_input_field_2_93='."На прозвоне (дог. не заключен)".' ) необходимо прогонять через функцию urlencode().

&k_input_field_2_93='.urlencode("На прозвоне (дог. не заключен)").'

#18 Eris

    Участник

  • Пользователи
  • PipPip
  • 10 сообщений

Отправлено 02 Июнь 2014 - 10:41

Просмотр сообщенияRoman (02 Июнь 2014 - 10:03) писал:

Предложения в параметрах (а конкретно вот этот момент - &k_input_field_2_93='."На прозвоне (дог. не заключен)".' ) необходимо прогонять через функцию urlencode().

&k_input_field_2_93='.urlencode("На прозвоне (дог. не заключен)").'

Cделал, но вновь в срм вносятся все пустые значения полей

#19 Eris

    Участник

  • Пользователи
  • PipPip
  • 10 сообщений

Отправлено 02 Июнь 2014 - 10:43

вот весь код
$data = Array();
$data['summa']   = correct_summa(filter($_POST['summa']));
$data['income']   = filter($_POST['personalIncome']);
$data['confirm']  = filter($_POST['confirmFormSelect']);
$data['name']   = filter($_POST['fname']);
$data['age']   = filter($_POST['age']);
$data['company']  = filter($_POST['companyName']);
$data['experience']  = filter($_POST['experience']);
$data['cityByPas']  = filter($_POST['cityPasport']);
$data['city']   = filter($_POST['cityReal']);
$data['phone']   = filter($_POST['phone']);
$data['email']   = filter($_POST['email']);
$data['placement']  = filter($_POST['placement']);
$path = 'http://www.xxx.ru/crm/questionare.php?page_charset=utf8&ts'.time().'&k_input_field_2_66='.date("Y-m-d H:i:s").'&k_input_field_2_67='.date("Y-m-d H:i:s").'&k_input_field_2_70='.$data['city'].'&k_input_field_2_72='."1".'&k_input_field_2_74='.$data['summa'].'&k_input_field_2_75='.$data['name'].'&k_input_field_2_76='.$data['phone'].'&k_input_field_2_78='.$data['email'].'&k_input_field_2_79='.$data['age'].'&k_input_field_2_80='.$data['cityByPas'].'&k_input_field_2_82='.$data['income'].'&k_input_field_2_83='.$data['confirm'].'&k_input_field_2_85='.$data['company'].'&k_input_field_2_86='.$data['experience'].'&k_input_field_2_93='.urlencode("На прозвоне (дог. не заключен)").'&k_rand_2=0.'.rand(1000, 10000000)."_".time();
  // Отправляю через CURL
  $ch = curl_init($path);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_exec($ch);
  curl_close ($ch) ;

Сообщение отредактировал Eris: 02 Июнь 2014 - 10:44


#20 Гость_Roman_*

  • Гости

Отправлено 02 Июнь 2014 - 10:55

Проверьте переменныe $data, возможно там тоже есть некоррекный для адресной строки текст, можно в цикле обработать эту переменную перед формированием строки

foreach ($data AS $key => $value)
    $data[$key] = urlencode($value);






Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных