why does a file run more then once
Moderator: General Moderators
why does a file run more then once
I have a file included and thing it it should only run one time if the variables are there if not then it should not run but what happeneing is
That its a file that gives commision and when its been given thats good but its calling it again if i refresh the page.
I have tried the require
require_once
include
and include_once but nothing stops it
so how do i have it call the file one time?
That its a file that gives commision and when its been given thats good but its calling it again if i refresh the page.
I have tried the require
require_once
include
and include_once but nothing stops it
so how do i have it call the file one time?
Re: why does a file run more then once
Are you storing the variables in sessions? Can you post your code?
Re: why does a file run more then once
do you want the code from the index page where it is ran or do you wanan see the code from the referral page that gives the commision?
Re: why does a file run more then once
Here is the php code in index.
here is the code from referral
Code: Select all
<?php
session_start();
require_once('../inc/db.php');
$dbc = db_connect();
require_once('../inc/check_login.php');
require_once('../inc/initialize.inc.php');
include('../inc/functions.php');
include('referral.php');
?>
Code: Select all
<?php
session_start();
require_once('../inc/db.php');
$dbc = db_connect();
require_once('../inc/check_login.php');
require_once('../inc/functions.php');
require_once('../inc/initialize.inc.php');
//Commision precentages for each referel level
$commis_lvl1_prc = $r_settings['top_level']; //0.08;
$commis_lvl2_prc = $r_settings['level_2'];//0.05;
$commis_lvl3_prc = $r_settings['level_3'];//0.04; //$5 * 0.04 = 0.20
$commis_lvl4_prc = $r_settings['level_4'];//0.03;
$commis_lvl5_prc = $r_settings['level_5'];//0.02;
$commis_lvl6_prc = $r_settings['level_6'];//0.01;
// Get referrals data
$reffs = mysql_query("SELECT * FROM referrals WHERE username='{$_SESSION['admin_user']}'")or die(mysql_error());
while($myinfo=mysql_fetch_array($reffs))
{
$username=$myinfo["username"];
$referral=$myinfo["referral"];
$level_2=$myinfo["level_2"];
$level_3=$myinfo["level_3"];
$level_4=$myinfo["level_4"];
$level_5=$myinfo["level_5"];
$level_6=$myinfo["level_6"];
$commis_lvl_1=$myinfo["commis_lvl_1"];
$commis_lvl_2=$myinfo["commis_lvl_2"];
$commis_lvl_3=$myinfo["commis_lvl_3"];
$commis_lvl_4=$myinfo["commis_lvl_4"];
$commis_lvl_5=$myinfo["commis_lvl_5"];
$commis_lvl_6=$myinfo["commis_lvl_6"];
// Get accounts data
$depos = mysql_query("SELECT * FROM accounts")or die(mysql_error());
while($mydeps=mysql_fetch_array($depos))
{
$dpuser=$mydeps["username"];
$deposit=$mydeps["total_deposit"];
if ($level_6 != NULL){
$commis_lvl_6=$commis_lvl6_prc * $deposit;
}
if ($level_5 != NULL){
$commis_lvl_5=$commis_lvl5_prc * $deposit;
}
if ($level_4 != NULL){
$commis_lvl_4=$commis_lvl4_prc * $deposit;
}
if ($level_3 != NULL){
$commis_lvl_3=$commis_lvl3_prc * $deposit;
}
if ($level_2 != NULL){
$commis_lvl_2=$commis_lvl2_prc * $deposit;
}
if ($referral != NULL){
$commis_lvl_1=$commis_lvl1_prc * $deposit;
}
$r=mysql_query("UPDATE referrals SET commis_lvl_1='$commis_lvl_1' WHERE username ='$username' AND '$dpuser' = '$referral'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_2='$commis_lvl_2' WHERE username ='$username' AND '$dpuser' = '$level_2'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_3='$commis_lvl_3' WHERE username ='$username' AND '$dpuser' = '$level_3'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_4='$commis_lvl_4' WHERE username ='$username' AND '$dpuser' = '$level_4'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_5='$commis_lvl_5' WHERE username ='$username' AND '$dpuser' = '$level_5'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_6='$commis_lvl_6' WHERE username ='$username' AND '$dpuser' = '$level_6'")or die(mysql_error());
}
}
// Update accounts
$reffs2 = mysql_query("SELECT * FROM referrals WHERE username='{$_SESSION['admin_user']}'")or die(mysql_error());
while($myinfo2=mysql_fetch_array($reffs2))
{
$earnuser=$myinfo2["username"];
$commis_ear_1=$myinfo2["commis_lvl_1"];
$commis_ear_2=$myinfo2["commis_lvl_2"];
$commis_ear_3=$myinfo2["commis_lvl_3"];
$commis_ear_4=$myinfo2["commis_lvl_4"];
$commis_ear_5=$myinfo2["commis_lvl_5"];
$commis_ear_6=$myinfo2["commis_lvl_6"];
$earned_total = $commis_ear_1 + $commis_ear_2 + $commis_ear_3 + $commis_ear_4 + $commis_ear_5 + $commis_ear_6;
[b]// I think its this code here
$r=mysql_query("UPDATE accounts SET acct_balance=acct_balance + '$earned_total' WHERE username ='$earnuser' LIMIT 1")or die(mysql_error());
$r=mysql_query("UPDATE accounts SET earned_total=earned_total + '$earned_total' WHERE username ='$earnuser' LIMIT 1")or die(mysql_error());[/b]}
?>
Re: why does a file run more then once
Okay so the problem is you're not checking if they've already had a commission. The solution is to:
1) Update your database so you keep record of whose earned a commission today and only let them earn commissions every X days. That means at the top of your commission script you'd have to check to see if this user has earned a commission already or not.
2) You can set a session variable once they've earned a commission and then prevent them from earning one again as long as that session variable is set.
I would recommend putting both of these practices into place to ensure they don't get multiple commissions. Your updated script would look something like this:
1) Update your database so you keep record of whose earned a commission today and only let them earn commissions every X days. That means at the top of your commission script you'd have to check to see if this user has earned a commission already or not.
2) You can set a session variable once they've earned a commission and then prevent them from earning one again as long as that session variable is set.
I would recommend putting both of these practices into place to ensure they don't get multiple commissions. Your updated script would look something like this:
Code: Select all
<?php
session_start();
require_once('../inc/db.php');
$dbc = db_connect();
require_once('../inc/check_login.php');
require_once('../inc/functions.php');
require_once('../inc/initialize.inc.php');
$days_per_commission = 30;
//check to see if they have a record in the database
$result = mysql_query("SELECT DATEDIFF(last_commission_date, CURDATE()) as days FROM referrals WHERE username='{$_SESSION['admin_user']}'")
or die ('cannot select last referral date');
$row = mysql_fetch_assoc($result);
if ($_SESSION['commission_today'])
{
echo "You've already earned your commission today.";
}
else if ($row['days'] < $days_per_commission)
{
echo "You can only earn commissions every $days_per_commission days";
}
else //give them the commission
{
//Commision precentages for each referel level
$commis_lvl1_prc = $r_settings['top_level']; //0.08;
$commis_lvl2_prc = $r_settings['level_2'];//0.05;
$commis_lvl3_prc = $r_settings['level_3'];//0.04; //$5 * 0.04 = 0.20
$commis_lvl4_prc = $r_settings['level_4'];//0.03;
$commis_lvl5_prc = $r_settings['level_5'];//0.02;
$commis_lvl6_prc = $r_settings['level_6'];//0.01;
// Get referrals data
$reffs = mysql_query("SELECT * FROM referrals WHERE username='{$_SESSION['admin_user']}'")or die(mysql_error());
while($myinfo=mysql_fetch_array($reffs))
{
$username=$myinfo["username"];
$referral=$myinfo["referral"];
$level_2=$myinfo["level_2"];
$level_3=$myinfo["level_3"];
$level_4=$myinfo["level_4"];
$level_5=$myinfo["level_5"];
$level_6=$myinfo["level_6"];
$commis_lvl_1=$myinfo["commis_lvl_1"];
$commis_lvl_2=$myinfo["commis_lvl_2"];
$commis_lvl_3=$myinfo["commis_lvl_3"];
$commis_lvl_4=$myinfo["commis_lvl_4"];
$commis_lvl_5=$myinfo["commis_lvl_5"];
$commis_lvl_6=$myinfo["commis_lvl_6"];
// Get accounts data
$depos = mysql_query("SELECT * FROM accounts")or die(mysql_error());
while($mydeps=mysql_fetch_array($depos))
{
$dpuser=$mydeps["username"];
$deposit=$mydeps["total_deposit"];
if ($level_6 != NULL){
$commis_lvl_6=$commis_lvl6_prc * $deposit;
}
if ($level_5 != NULL){
$commis_lvl_5=$commis_lvl5_prc * $deposit;
}
if ($level_4 != NULL){
$commis_lvl_4=$commis_lvl4_prc * $deposit;
}
if ($level_3 != NULL){
$commis_lvl_3=$commis_lvl3_prc * $deposit;
}
if ($level_2 != NULL){
$commis_lvl_2=$commis_lvl2_prc * $deposit;
}
if ($referral != NULL){
$commis_lvl_1=$commis_lvl1_prc * $deposit;
}
$r=mysql_query("UPDATE referrals SET commis_lvl_1='$commis_lvl_1' WHERE username ='$username' AND '$dpuser' = '$referral'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_2='$commis_lvl_2' WHERE username ='$username' AND '$dpuser' = '$level_2'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_3='$commis_lvl_3' WHERE username ='$username' AND '$dpuser' = '$level_3'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_4='$commis_lvl_4' WHERE username ='$username' AND '$dpuser' = '$level_4'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_5='$commis_lvl_5' WHERE username ='$username' AND '$dpuser' = '$level_5'")or die(mysql_error());
$r=mysql_query("UPDATE referrals SET commis_lvl_6='$commis_lvl_6' WHERE username ='$username' AND '$dpuser' = '$level_6'")or die(mysql_error());
}
}
// Update accounts
$reffs2 = mysql_query("SELECT * FROM referrals WHERE username='{$_SESSION['admin_user']}'")or die(mysql_error());
while($myinfo2=mysql_fetch_array($reffs2))
{
$earnuser=$myinfo2["username"];
$commis_ear_1=$myinfo2["commis_lvl_1"];
$commis_ear_2=$myinfo2["commis_lvl_2"];
$commis_ear_3=$myinfo2["commis_lvl_3"];
$commis_ear_4=$myinfo2["commis_lvl_4"];
$commis_ear_5=$myinfo2["commis_lvl_5"];
$commis_ear_6=$myinfo2["commis_lvl_6"];
$earned_total = $commis_ear_1 + $commis_ear_2 + $commis_ear_3 + $commis_ear_4 + $commis_ear_5 + $commis_ear_6;
<span style="font-weight: bold">// I think its this code here
$r=mysql_query("UPDATE accounts SET acct_balance=acct_balance + '$earned_total' WHERE username ='$earnuser' LIMIT 1")or die(mysql_error());
$r=mysql_query("UPDATE accounts SET earned_total=earned_total + '$earned_total' WHERE username ='$earnuser' LIMIT 1")or die(mysql_error());</span>}
//update their session
$_SESSION['commission_today'] = true;
//update their last commission
mysql_query("UPDATE referrals SET last_commission_date = CURDATE() WHERE username='{$_SESSION['admin_user']}'")
or die ('cannot update last commission date');
}//end else
?>
Re: why does a file run more then once
ok i will give it a show but will that work if they suppose to get commision when there downlink makes a deposit i mean if they have 4 downlinks and each make a deposit on the same day how is that days per commision gonna work?
Re: why does a file run more then once
So you're saying they can have multiple referrals in the same day? If that's the case add a date field to the referrals table called commission_collected (or something like that) and update it with CURDATE() when they get their commission. Then if they refresh the page you just have to check to see if there's a date in the commission_collected field. If there don't let them collect a commission again.
Re: why does a file run more then once
k sounds like a good idea. but i am still lost about one thing.. if user_b makes more then one deposit the same day then the user_a wont get commision but once right?
Re: why does a file run more then once
I'm not sure what you're talking about. If the referral is tied to a specific user and you're checking for that user when you update the commissions then it will only update commissions for that one user.
Re: why does a file run more then once
let me try to explain more..
lets say i add the date field and user A gets the commision from USER B thats fine... now what if USER B makes ANOTHER deposit that same day. then would user A still get that commision from that deposit as well?
lets say i add the date field and user A gets the commision from USER B thats fine... now what if USER B makes ANOTHER deposit that same day. then would user A still get that commision from that deposit as well?
Re: why does a file run more then once
I could really use some help on this guys. I have tried everything.
a user can get as much commision as they want via downlinks deposits I just need to stop the doubling of when they refresh the index page it wotn give it to them again til there referrals make another deposit
anyone?
a user can get as much commision as they want via downlinks deposits I just need to stop the doubling of when they refresh the index page it wotn give it to them again til there referrals make another deposit
anyone?
Re: why does a file run more then once
If you just want to prevent refreshing of the page then you need to use a session variable that sets to true once they've received a commission and then is reset back to false when they navigate away from file you're add the the commission to their record.