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


Публикации Hamlo

16 публикаций создано Hamlo (учитываются публикации только с 30-Март 23)


#26339 Очередной вопрос по шаблонам печати

Отправлено от Hamlo в 15 Октябрь 2014 - 15:18 in Как это сделать

Спасибо, заработало...



#26337 Очередной вопрос по шаблонам печати

Отправлено от Hamlo в 15 Октябрь 2014 - 13:35 in Как это сделать

Добрый день, возникла проблема при создании шаблона печати, прошерстил форум, но судя по найденному материалу все должно работать.
Вот тело шаблона:
<tr>
	<td  align="center">{$* Номер строки *}</td>
	<td style="white-space: nowrap;">{$ФИО}</td>
	<td> {$Телефон}&nbsp;</td>
	<td> {$Агент}&nbsp;</td>
	<td style="font-size: 10px;"> {$Комментарий}&nbsp;</td>
	<td> {if $Подтверждение eq 'оплачено'} Оплачено {/if}</td>
</tr>
Ошибка таится в {if $Подтверждение eq 'оплачено'} Оплачено {/if}
если условие выпилить из шаблона все работает, возникает вопрос где же я накосячил, или как правильно написать данное условие?



#26139 Защита внешних форм от спама, остановка добавления данных

Отправлено от Hamlo в 15 Сентябрь 2014 - 14:01 in Как это сделать

Да, спасибки, уже сам вычитал (сами понимаете, читать некогда было когда база зарастала спамлистами)...



#26130 Где правильно настроить сортировку по договору

Отправлено от Hamlo в 14 Сентябрь 2014 - 15:05 in Как это сделать

Просмотр сообщенияkingston (28 Март 2013 - 11:18) писал:

1. Как сделать, чтоб велась по номеру?
А чем не устраивает сортировка выбираемая в настройках таблицы?
Конфигурация->Редактирование таблицы "Счет Исх"->Дополнительно...->Сортировка по умолчанию
(это по урлу https://XXXXXX.clien...e.php?table=XXX)
Ну и выбираете любое поле по которому нужно отсортировать и в каком порядке



#26128 Защита внешних форм от спама, остановка добавления данных

Отправлено от Hamlo в 13 Сентябрь 2014 - 14:48 in Как это сделать

Простейшей спамилкой можно считать форму вида (получена прямо из кода страницы с пошаговым выполнением JavaScript, кнопку сабмита добавил я сам):
<form enctype="multipart/form-data" action="http://XXXXXX.clientbase.ru/questionare.php?page_charset=UTF-8&ts1410535141608"  method="post">
<input type="text" name="k_input_field_11_3821" value="Фио">
<input type="text" name="k_input_field_11_3881" value="12.09.2014">
<input type="text" name="k_input_field_11_4151" value="+37529467964">
<input type="text" name="k_rand_11" value="0.2639837335708092_1410535131728">
<input type="submit" value="ok">
</form>
Как видим добавлять записи можно не только через форму созданную в админке clientbase, но и прямыми запросами к странице http://XXXXXX.client...questionare.php, посмотрев код формы и как она генерируется, прекрасно видно что защита числами типа 0.2639837335708092_1410535131728 вовсе не защита, а так, отмазка... В общем для терпимой защиты нужно передавать секретное число которое спамер в коде страницы ну никак не найдет. И проверять это число перед добавлением данных в базу.
Теперь реализация этого на PHP (основной каркас, без валидаций и чисток, можно сюда добавить и капчу и прочие защиты, ведь данные теперь можно добавлять только с удаленного сайта):
// собираем данные из формы присланные POST запросом
$fio=$_POST["k_input_field_11_3821";// Фио
$phone=$_POST["k_input_field_11_4151"];// Телефон
$date=$_POST["k_input_field_11_3881"]; // Дата

// формируем код "Защиты" clientbase
$hash=time();
$hash1=$hash.rand(0,9).rand(0,9).rand(0,9); // три рэндома для имитации микросекунд
$hash2=(rand(1000000000000000, 9999999999999999)/10000000000000000).'_'.($hash-1).rand(0,9).rand(0,9).rand(0,9);
$post="k_input_field_11_3821=$fio&k_input_field_11_4151=$phone&k_input_field_11_3881=$date&k_rand_11=$hash2";

//  Наш секретный код
$sekretkey=546897231546;

//отправка запроса
if( $curl = curl_init() ) {
	curl_setopt($curl, CURLOPT_URL, 'http://XXXXXX.clientbase.ru/questionare.php?page_charset=UTF-8&ts'.$hash1);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
	curl_setopt($curl, CURLOPT_REFERER,$sekretkey); // передача секретного кода в HTTP_REFERER
	curl_setopt($curl, CURLOPT_POST, true);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
	$out = curl_exec($curl);
	curl_close($curl);
}
Секретное число передаем всемто REFERER, его легко может подделать и спамер поэтому используем его в своих целях, REFERER отлично доходит до вычислений (как и другие серверные переменные).

Теперь вычисления в clientbase при добавлении данных в таблицу:
if($_SERVER['HTTP_REFERER']!==546897231546) data_delete($table, '`id`=', $line['ID']);

Вот и подошли в плотную к волнующему вопросу )
Пытался остановить добавление данных в вычислениях с помощью die(), редиректа, ну перепробывал все что в голову пришло и никак, помогло только удаление уже внесенных данных data_delete(), но это я бы сказал костыль.

Возможно есть системный флаг или еще какая тулза для остановки добавления данных?

Все что удалось найти на форуме это запреты добавления данных на JavaScript, но на мой взгляд это не запрет, а временное препятствие...



#25443 Проблемы с API

Отправлено от Hamlo в 28 Июль 2014 - 15:28 in Как это сделать

Ясно спасибо.
ЗЫ: Менеджеров ни в скайпе ни по мылу не дозваться, ну очень они у вас оперативные )



#25441 Проблемы с API

Отправлено от Hamlo в 28 Июль 2014 - 15:15 in Как это сделать

)))
Api было разработано на заказ через ТП clientbase за денюшку, залито в аккаунт ******.clientbase.ru
В принципе я уже написал обращение с авторизацией через CURL и проблема частично отпала, без авторизации было бы значительно быстрее.
Хочется узнать как забирать данные без авторизации, ведь выходит немного абсурдно, если необходима авторизация при обращении к API, то зачем такое API, я б и парсер таблицы написал бы, чтоб получать нужные значения.



#25436 Проблемы с API

Отправлено от Hamlo в 28 Июль 2014 - 14:02 in Как это сделать

Добрый день, было разработано API для базы, доступное по адресу https://****.clientb....php?period=...
Встала проблема с обращением к API, невозможно забрать данные без авторизации, возможно это делается как то иначе, по другому адресу? Данные необходимо подтягивать на сторонний ресурс.



#25206 Добавить две записи за один сабмит формы

Отправлено от Hamlo в 18 Июль 2014 - 15:01 in Как это сделать

Спасибо, как сам не додумался.

Просмотр сообщенияCbCoder (18 Июль 2014 - 14:52) писал:

Вариант конечно извращенский...
Но как говориться: "на безрыбье и рак рыба"



#25204 Добавить две записи за один сабмит формы

Отправлено от Hamlo в 18 Июль 2014 - 14:44 in Как это сделать

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



#25200 Добавить две записи за один сабмит формы

Отправлено от Hamlo в 18 Июль 2014 - 13:54 in Как это сделать

Добрый день, возможно ли реализовать добавление двух записей в таблицу за один сабмит внешней формы?



#25124 Вывод дня недели рядом с датой

Отправлено от Hamlo в 12 Июль 2014 - 12:10 in Как это сделать

Жаль, спасибо...



#25122 Вывод дня недели рядом с датой

Отправлено от Hamlo в 12 Июль 2014 - 00:48 in Как это сделать

Доброго времени суток, вопрос до ужаса банален: как вывести день недели рядом с датой?
Яваскрипт в режиме таблицы не работает =(
Пока в голову приходит только костыль в виде дополнительного поля рядом, куда писалось бы значение дня недели, при сохранении.



#25121 Количество строк, возвращаемых запросом

Отправлено от Hamlo в 12 Июль 2014 - 00:36 in Как это сделать

Сам наступил на эти грабли...
В дополнение:
при значении системной переменной $show_sql_request=1; используемой при отладке запросов
будут выводится сформированные запросы к базе только для sql_* функций.

Для стандартных mysql_* нет.



#25066 Подсчет количества заявок

Отправлено от Hamlo в 10 Июль 2014 - 12:47 in Как это сделать

Спасибо, да пример взял из "помощи" для версии 1.9.5 => сам налажал...



#25058 Подсчет количества заявок

Отправлено от Hamlo в 09 Июль 2014 - 16:30 in Как это сделать

Добрый день
Проблема в следующем:

в Adminer SQL запрос
SELECT SUM(`f4151`) AS sum FROM f_data271 WHERE `f3891`='Минск-Москва' and `f3881`='2014-08-04 00:00:00'
возвращает сумму 5

В вычислениях
$sqlQ = "SELECT SUM(`f4151`) AS sum FROM ".DATA_TABLE."271 WHERE `f3891`='Минск-Москва' and `f3881`='2014-08-04 00:00:00'";
$pre = sql_query($sqlQ) or die();
$row = mysql_fetch_assoc($pre);
$row['sum'] всегда содержит NULL

в чем может быть проблема и чтоделать?

Немного подробнее:
Вычисления ведуться при условии сохранения или изменении данных(Макс мест), данные о забронированных местах беруться из таблицы "Заявки"(f_data271), полученные значения пишутся в таблицу "Рейсы"
Весь код:
$sqlQ = "SELECT SUM(`f4151`) AS sum FROM ".DATA_TABLE."271 WHERE `f3891`='Минск-Москва' and `f3881`='2014-08-04 00:00:00'";
$pre = sql_query($sqlQ) or die();
$row = mysql_fetch_assoc($pre);
if ($row['sum']===NULL){
  $sumondate=0;
}
else{
  $sumondate=$row['sum'];
}
$line['Забронировано'] = $sumondate;
$line['Свободных мест'] = $line['Макс мест']-$sumondate;
$line['Список пассажиров'] = $row['sum']; // просмотр что нашлось