• Почему не срабатывает onclick?

    @viktorross Автор вопроса
    Петр Мухуров, Сослан Хлоев, Консоль пустая, ошибок нет вообще. Сначала идёт баннер, потом сразу скрипт, пробовал наоборот, не работает, точнее через раз, некоторые клики все-таки записываются, из 100 около 30 это касается только сторонней рекламы, свои баннеры 100 из 100 запишутся, jquery в head подключён
  • Как можно отправить данные формы из шаблона smarty на сервер?

    @viktorross Автор вопроса
    Pavel Omelchenko, нет к сожалению, не понятно как передать данные из обработчика в файл где происходит сам запрос в базу данных, т.е сначала данные формы отправляются в php файл обработчик формы, допустим это сработало, но пока что не работает, потом из обработчика полученные данные нужно отправить в файл с классами, т.к именно там будет подставляться id пользователя и соответствующие поля

    Т.е вот сюда подставлять полученные данные

    function trasactionSend($id='') {
        global $db;
    
        $transaction_to_account=$db->query("update `class_users` set `paramtr` = `$parametr` and `paramtr2` = `$parametr2` where `id`='$id'");
        }
  • Как можно отправить данные формы из шаблона smarty на сервер?

    @viktorross Автор вопроса
    Pavel Omelchenko, подскажите как? дело в том что php у меня отключено, якобы это не безопасно, и перенесено в отдельные файлы, в которых происходит только связывание с уже классами php они вообще в других файлах, принцип такой что есть классы, есть php обработчик этих классов который выводит уже информацию в шаблон, путем вызова классов, не совсем понятно что делать нужно, получить то из бд какие-то данные проблем нет, а вот передать их в бд это уже проблема
  • Как заменить null в implode на 0?

    @viktorross Автор вопроса
    Дмитрий, оо, наконец-то заработало, спасибо вам огромное еще раз, сидел ковырялся, сто раз возвращал просто return $ get_tr , и с условиями, по-разному, буду теперь знать))
  • Как заменить null в implode на 0?

    @viktorross Автор вопроса
    Дмитрий, не совсем понял что нужно сделать, посмотрите пожалуйста еще раз, вот весь запрос

    $get_pay_transactions=$link->query("select count(*) from `class_get_credits` where `user_id`='$id' and `email`='$email_get' and `active`=1 order by id desc limit 1");
    		$get_pay_tr = mysqli_fetch_row($get_pay_transactions);
    		$imp_st = implode($get_pay_tr);
    
    		return $imp_st;
  • Почему не срабатывает fetchRow?

    @viktorross Автор вопроса
    Дмитрий , все разобрался

    $string = implode(", ", $get_pay_tr);
    return $string;


    спасибо большое за помощь)
  • Почему не срабатывает fetchRow?

    @viktorross Автор вопроса
    Дмитрий подскажие пожалуйста, я сделал так

    $get_pay_transactions=$link->query("select count(*) from...
    $get_pay_tr = mysqli_fetch_row($get_pay_transactions);
    		return $get_pay_tr;


    как мне подставить в то что возвращается return количество найденных строк в get_pay_tr ?

    т.е не массивом а строкой выводить

    нужно получить в return цифру чтобы в шаблон выводить потом
  • Как подключить 2 разные бд?

    @viktorross Автор вопроса
    zorca, вообще задача взять 2 значения из одной базы данных

    $get_balance=users::getUsdderCreditsForMenu($id);
    $email_get=users::getEmail($id);
    
    //эти 2 функции работают 100% корректно


    из них берем email и баланс

    затем подключаемся к совершенно другой базе данных

    $host = 'localhost';
        $database = 'test_one';
        $user = 'root';
        $password = '';
        $link = mysqli_connect($host, $user, $password, $database) or die("Ошибка: ".mysqli_error($link));


    и формируем запрос

    $transaction_to_account=$link->query("update `class_users` set `credits` = 'credits'+$get_balance where `email`='$email_get'");
    
    if(!$transaction_to_account)return 0;
      return $transaction_to_account;


    он должен обновить баланс во второй базе данных приплюсовав значение полученное здесь, если значение email полученное в $email_get совпадает

    $email_get=users::getEmail($id);

    $get_balance=users::getUsdderCreditsForMenu($id);

    вызываю функцию так

    case 'sjsfa':
    				require_once $config_abs_path."/classes/users.php";
    				$id = get_numeric_only("id");
    				$click_ra=new users();
    				$click_ra->trasactionCredits($id);
    			break;


    <input onclick="clickTransAction({if $get_id_usr}{$get_id_usr}{/if},'{$live_site}');" class="buttton" value="отправить"/>
    
      <script>
      	function clickTransAction(c, b) {
      	  url_str = b + "/include/get_info.php";
      	  $.ajax({
      	    method: "GET",
      			cache		: false,
      	    url: url_str,
      	    data: { 'type': "sjsfa", 'id': c },
      	    success: function(d) {
      				location.reload(true);
      			}
      	  })
      	}
      	</script>


    проблема в том что скрипт не работает , и лог пустой, по этому поводу ошибок нет
  • Как подключить 2 разные бд?

    @viktorross Автор вопроса
    Антон, да, $db лишний случайно не убрал , но без него тоже не работает
  • Как подключить 2 разные бд?

    @viktorross Автор вопроса
    zorca, что значит хотя бы одну базу ? $db и есть первое подключение, работает по всем функциям в этом файле корректно, второе подключение проверял на другом скрипте , работало, в этом нет
  • Ошибка в коде php?

    @viktorross Автор вопроса
    DevMan, не знаю почему, но откуда-то он все равно берет ##currency##, при этом я их удалил
  • Ошибка в коде php?

    @viktorross Автор вопроса
    DevMan, сейчас попробовал по-другому сделать, проблема в шаблоне, а именно в генерации ссылки

    {if !isset($post_array) || !$post_array}{$post_array=array()}{/if}
    
    {if $seo_settings.enable_mod_rewrite}
    	{capture name=sfield assign=sfield}##currency##/{/capture}
    	{seo->makeSearchLink p1=$post_array p2=$page p3="page|category" p4='currency' assign='constructed_url'}
    {else}
    	{assign var="separator" value="&amp;"}
    	{capture name=some_content assign=constructed_url}{$live_site}/listings.php?page=1{foreach from=$post_array key=k item=x name=construct_url}{if $x!='' && $k!="currency" && $k!="page" && $k!="show" && (!$settings.enable_locations || (!in_array($k, $location_fields) && $k!="crt_city"))}{$separator}{$k}={$x|replace:'/':'_'}{/if}{/foreach}{/capture}
    {/if}
    
    {$lng.listings.currency}:&nbsp;
    {foreach from=$currencies item=v}
    
    {capture name=field_string assign=field_string}currency-{$v.currency}/{/capture}
    
    {if ((!isset($post_array.currency) || !$post_array.currency) && $mc_default_currency!=$v.currency) || (isset($post_array.currency) && $post_array.currency && $v.currency!=$post_array.currency)}<a href="{if $seo_settings.enable_mod_rewrite}{$constructed_url|replace:$sfield:$field_string}{else}{$constructed_url}{$separator}currency={$v.currency}{/if}" class="special">{else}<span>{/if}{$v.currency}{if ((!isset($post_array.currency) || !$post_array.currency) && $mc_default_currency!=$v.currency) || (isset($post_array.currency) && $post_array.currency && $v.currency!=$post_array.currency)}</a>{else}</span>{/if}&nbsp;&nbsp;
    {/foreach}


     вот так работает

    http://localhost/test/q.php?page=1&search_id=2&currency=$

    а вот так нет
    https://site.org/search/##currency##&search_id=81
    при этом сейчас возможно только использовать 2 формат ссылок, а как сделать так чтобы работал первый вариант пока что понятия не имею
  • Ошибка в коде php?

    @viktorross Автор вопроса
    Artem Ivanov , попробовал, не хочет так, куча ошибок вылазит
  • Не правильно работает код php?

    @viktorross Автор вопроса
    AUser0, сейчас посмотрел, действительно подставляется id баннера а не пользователя, как исправить понятия не имею, и там(users) и там(banners) все по id идентифицируется..
  • Не правильно работает код php?

    @viktorross Автор вопроса
    AUser0, вот вызов функции addHit

    case 'banner':
    		require_once $config_abs_path."/classes/banners.php";
    		$id = get_numeric_only("id");
    		$banner=new banners();
    		$banner->addHit($id);
    	break;
  • Не правильно работает код php?

    @viktorross Автор вопроса
    AUser0, кстати, если вот сюда поставить соответствующий id в бд например 2, то в таблицу class_click запишется email из id 2, т.е все будет работать корректно

    require_once $config_abs_path."/classes/users.php";
    $email=users::getEmail($id='2');
  • Не правильно работает код php?

    @viktorross Автор вопроса
    AUser0, и все-таки вероятно нет авторизации в файле banners, также как и в файле users, авторизация идет при передаче в шаблон, получается у меня в классах идут запросы в базу, а для какого именно пользователя уже передается из других файлов перед выводом в шаблон, я нашел такой код

    class banners {
    
    // used in files which don't run the common() function from util.php but need auth information
    function checkAuth() {
    
    require_once $config_abs_path."/classes/auth.php");
    
    	global $is_admin, $logged_in, $crt_usr;
    	$auth=new auth();
    	$logged_in = $auth->loggedIn();
    	$is_admin = $auth->adminLoggedIn();
    	if(!$logged_in && !$is_admin)
    		$logged_in = $auth->checkCookieLogin();
    
    	// vars for user account navbar
    	if($logged_in) $crt_usr = $auth->crtUserId();
    
    }


    и весь код переложил в один класс banners

    function addHit($id=0) {
    		global $db,$config_abs_path;
    		if(!$id) $id=$this->id;
    		$res_del=$db->query('update '.TABLE_BANNERS.' set `clicks` = `clicks`+1 where `id`="'.$id.'"');
    
    		require_once $config_abs_path."/classes/users.php";
    		$email=users::getEmail($id);
    
    		$email=$db->query("insert into `class_click` set `email` = '$email'");
    
    		return 1;
    	}
    
    }


    результат тот же самый, первый email из базы записывает, не подскажете как в addHit подключить авторизацию через функцию checkAuth?

    если подключить ее, то должно все заработать, потому что в самом классе banners нет авторизации, так как он предназначен только для вывода баннеров, которым без разницы есть авторизация или нет
  • Не правильно работает код php?

    @viktorross Автор вопроса
    AUser0, вот тут присваивается внутри класса banners

    public function __construct($id=0)
    	{
    
    		global $db;
    		$this->path="../images/baners/";
    		if($id) {
    			$this->id=$id;
    			$this->array=array();
    			$this->array=$db->fetchAssoc('select * from '.TABLE_BANNERS.' where `id`='.$id);
    		}
    	}
    
    	function getId() {
    		return $this->id;
    	}


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

    require_once $config_abs_path."/classes/users.php";
        $email=users::getNEmail($id);
        return 1;


    хотя в самом /classes/users.php уже есть авторизация, вероятно она не работает когда вызов идет из другого файла, хотя фактически внутри класса banners идет только вызов, а обработка и запись уже внутри класса users.

    Хотя обычно у меня авторизация идет перед тем, как выводить данные в шаблон, вот так

    global $logged_in, $crt_usr;
    
    $usr = new users();
    $user = $usr->getUser($crt_usr);
    $smarty->assign("user",$user);
    
    ну или вот так
    
    $auth = new auth();
    $last_login=$auth->getLoginBefore($logged_in);
    $total_views = listings::getViewed($crt_usr);


    я пробовал сделать тоже самое в нужных файлах внутри классов, просто без вывода в шаблон, но не работает..
  • Не правильно работает код php?

    @viktorross Автор вопроса
    AUser0 , вы имеете ввиду там где id=0? А как можно дописать , как вообще это можно оформить по-другому?