Перейти к публикации

Coocies сесия или помогите подправить код


Рекомендованные сообщения

Начал исправлять ошибки в модуле "Реферальная программа".

С первой ошибкой столкнулся такой . Когда переходишь на сайт по реф ссылке

http://************.com/index.php?do=referral&action=go&reffer=SISADMIN

Далее в модуле есть куссок кода который должен записывать логин рефера в куки. Вот он... Но он почему то не записывает. В чем может быть причина???

if($action == 'go'){

if (!isset($_SESSION["reffer_id"])){

$reffer =  trim($_POST['reffer']);

@session_register('reffer');

  $_SESSION["reffer"]=$reffer;


}
А вот собственно и весь код модуля
<?php

/*

=====================================================

DataLife Engine - by SoftNews Media Group 

-----------------------------------------------------

http://dle-news.ru/

-----------------------------------------------------

Copyright (c) 2004,2008 SoftNews Media Group

Данный код защищен авторскими правами

=====================================================

Файл: referral.php

-----------------------------------------------------

Назначение: Реферальная программа

=====================================================

*/

if(!defined('DATALIFEENGINE'))

{

  die("Hacking attempt!");

}

if($action == 'go'){

if (!isset($_SESSION["reffer_id"])){

$reffer =  trim($_POST['reffer']);

@session_register('reffer');

$_SESSION["reffer"]=$reffer;


}

  header("Location:/");

}

    $tpl->load_template('referral.tpl');


if($action=='pay'){


   @include (ENGINE_DIR.'/data/ref_config.php');


   if ($member_id[ref_balans]>$ref_config[min_out]) {


        $add_time=date("Y-m-d");


       $db->query("INSERT INTO " . USERPREFIX . "_ref (user_id, out_summ, date_order) VALUES ('".$member_id['user_id']."', '".$member_id['ref_balans']."','". $add_time."')");


        $db->query("UPDATE " . USERPREFIX . "_users set ref_balans=0 WHERE user_id='".$member_id['user_id']."'");

        $member_id[ref_balans]=0;

   }

   else  msgbox ($lang['all_info'], "У вас недостаточно средств для совершения выплаты");

}    

if ($action=='list') {


  if($member_id[referral]=='')$member_id[referral]='0';


  $list_ref_user=explode(",",$member_id[referral]);

  $list='<table border="0" cellspacing="0" cellpadding="0">';


  foreach($list_ref_user as $ref_id){

  $row=$db->super_query("SELECT name FROM " . USERPREFIX . "_users WHERE user_id=".$ref_id); 

  if ($row[name])

   $list.=<<<HTML

    <tr>

    <td>

    {$row[name]}

    </td>

    </tr>

HTML;

  }

$list.='</table>';

        $tpl->set('{list}',$list);

        $tpl->set('[list]','');

        $tpl->set('[/list]','');

        $tpl->set_block("'\\[main\\](.*?)\\[/main\\]'si","");

}else

{       $tpl->set('[main]','');

        $tpl->set('[/main]','');

        $tpl->set('{balans}',$member_id[ref_balans]);

        if ($member_id[referral]=='') 

           $tpl->set('{count_user}',0);

        else

        $tpl->set('{count_user}',count(explode(",",$member_id[referral])));

    $tpl->set_block("'\\[list\\](.*?)\\[/list\\]'si","");

   $ref_link=$config[http_home_url]."index.php?do=referral&action=go&reffer=".$member_id[name];

   $tpl->set('{ref_link}',$ref_link);

}

   $tpl->compile('content');

      $tpl->clear();

?>

Как вообще можно код этого модуля привести в рабочий вид?

Изменено пользователем artoym_radin
Ссылка на сообщение
Поделиться на других сайтах
Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вы вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован.
Ссылка на сообщение
Поделиться на других сайтах

Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вы вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован.

У меня сайт стоит на локалке на денвере. Пока только тестирую...

Ссылка на сообщение
Поделиться на других сайтах

Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вы вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован.

У меня сайт стоит на локалке на денвере. Пока только тестирую...

Ну Вы же потом его все равно будете куда-нибудь ставить? :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вы вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован.

У меня сайт стоит на локалке на денвере. Пока только тестирую...

Ну Вы же потом его все равно будете куда-нибудь ставить? :rolleyes:

Конечно. Но пока у меня нет ни домена ни хостинга.

Первую проблему решил так

$action = $_REQUEST['action'];

	if($action == 'go')

	{


$reffer = $_REQUEST['reffer'];

$row = $db->super_query("SELECT user_id from " . PREFIX . "_users WHERE name='$reffer'");

$reffer_id = $row['user_id'];

  		set_cookie( "reffer_id", "$reffer_id", 0 );

  header("Location:/");

}
Теперь данные записываються в куки. Записываеться шв пользователя который дал ссылку. Далее в register.php вставляю код который будет делать запись в БД о том что у него есть реффералы.
//refferal begin

include (ENGINE_DIR.'/data/ref_config.php');

$reffer_id = $_SESSION[reffer_id];

$row=$db->super_query("SELECT ref_balans, referral FROM " . USERPREFIX . "_users WHERE user_id='$reffer_id'");

$row2=$db->super_query("SELECT user_id FROM " . USERPREFIX . "_users WHERE name='$name'");

$name=$row2['iser_id'];

$ref_last_array=explode(",",$row[referral]);


$reffers=$row['referral'];

$reffers_list="$reffers, $name";

$ref_balans=$row['ref_balans'];

$ref_con=$ref_config['summ'];

$ref_balans_out=$ref_balans + $ref_con;



$db->query("UPDATE dle_users SET referral='$reffers_list', ref_balans='$ref_balans_out' WHERE user_id='$reffer_id'");

//refferal end
Этот кода после
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );

Все равно не записывает данный в бд. Как можно подправить. Отблагодарю денюжкой.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...