HI all.
I have a script which contains a FUNCTION and I need to access the content of a SESSION var which is outside of the FUNCTION. At the start of the script I have set the SESSION var with data from a $_POST.
Can anyone please advise how I can do this.
This is my script: I have removed most of the code to make it shorter
<?php session_start();
$_SESSION['ecn'] = $_POST['coupon'];
lots more code here
if (($vars['do_payment'] && check_payment_form())){
#I NEED TO BE ABLE TO REFERENCE THE SESSION VAR HERE
//check for agreement
$display_agreement = 0;
foreach ((array)$vars['product_id'] as $pid){
$product = $db->get_product($pid);
if ($product['need_agreement'])
$display_agreement++;
}
if ($display_agreement && !$vars['i_agree']){
display_agreement(serialize($vars)); // defined in the product.inc.php
exit();
}
// do payment !
$product_id = $vars['product_id'];
$login = $vars['login'];
$paysys_id = $vars['paysys_id'];
do { // to easy exit using break()
foreach ((array)$vars['product_id'] as $pid){
$product = $db->get_product($pid);
if (!in_array($product['scope'], $signup_scope_allowed)){
$error = _SIGNUP_INCORRECT_PRODID;
break;
}
////////////// check products scope
}
if ($error = check_product_requirements((array)$vars['product_id']))
break;
$member_id = $db->check_uniq_login($vars['login'], $vars['email'], $vars['pass0'], 1);
$member_id_exists = 0;
if ($config['verify_email'])
$vars['email_verified'] = -1;
if ($GLOBALS['_LANG_SELECTED'] != get_default_lang()){
$vars['selected_lang'] = $GLOBALS['_LANG_SELECTED'];
}
if ($member_id < 0) {
$member_id = $db->add_pending_user($vars);
/* No unsubscribe new members!
if (!$vars['to_subscribe']){
$member = $db->get_user($member_id);
$member['unsubscribed']='1';
$db->update_user($member_id, $member);
}
*/
$is_affiliate = '0'; //only member
if ($db->get_signup_threads_c($is_affiliate) && $vars['to_subscribe'])
$db->subscribe_member ($member_id, $is_affiliate);
}
elseif (!$member_id)
die(_SIGNUP_LOGIN_EXISTS);
else {
$member_id_exists++; //we found existing user with the same params
// then will clean CC parameters if any
if ($config['allow_second_signup'] && $db->get_user_payments($member_id,1)) {
} else {
$member = $db->get_user($member_id);
$member['data']['cc-hidden']='';
$member['data']['cc-expire']='';
$member['data']['cc']='';
$member['data']['cc_street']='';
$member['data']['cc_city']='';
$member['data']['cc_state']='';
$member['data']['cc_zip']='';
$member['data']['cc_country']='';
foreach ($vars as $k=>$v) $member[$k] = $v;
$db->update_user($member_id, $member);
}
}
if ($error) {
break;
}
$price = calculate_price($product_id, $member_id, $vars, $prices);
if ($GLOBALS['COUPON_CODE'])
$vars['COUPON_CODE'] = $_SESSION['coupon'] = $vars['coupon'];
# $vars['COUPON_CODE'] = $GLOBALS['COUPON_CODE'];
$additional_values = array();
foreach ($payment_additional_fields as $f){
$fname = $f['name'];
if (isset($vars[$fname]))
$additional_values[$fname] = $vars[$fname];
}
$additional_values['COUPON_DISCOUNT'] = $GLOBALS['COUPON_DISCOUNT'];
$_SESSION['member'] = $member_id;
$additional_values['TAX_AMOUNT'] = $GLOBALS['TAX_AMOUNT'];
$additional_values['TAXES'] = $GLOBALS['TAXES'];
if (is_array($product_id)) {
$product = & get_product($product_id[0]);
if (preg_match('/^\d\d\d\d-\d\d-\d\d$/', $product->config['start_date']))
$begin_date = $product->config['start_date']; /// fixed start date
else
$begin_date = date('Y-m-d');
$expire_date = $product->get_expire($begin_date); //yyyy-mm-dd
$payment_id = $db->add_waiting_payments($member_id, $product_id,
$paysys_id, $price, $prices, $begin_date, $expire_date, $vars,
$additional_values);
} else {
$product = & get_product($product_id);
if (preg_match('/^\d\d\d\d-\d\d-\d\d$/', $product->config['start_date']))
$begin_date = $product->config['start_date']; /// fixed start date
else
$begin_date = date('Y-m-d');
$expire_date = $product->get_expire($begin_date); //yyyy-mm-dd
$payment_id = $db->add_waiting_payment($member_id, $product_id,
$paysys_id, $price, $begin_date, $expire_date, $vars,
$additional_values);
}
if ($error) {
$db->delete_user($member_id);
break;
}
if ($config['verify_email']){
global $db;
$u = $db->get_user($member_id);
$payment = $db->get_payment($payment_id);
$code = substr(uniqid(rand(), true), 0, 12);
$payment['data']['email_confirm'] = array('code' => $code, 'member_id_exists' => $member_id_exists, 'time' => time());
$db->update_payment($payment_id, $payment);
mail_verification_email($u, $config['root_url'] . "/signup.php?cs=" . $payment_id . "-" . $code);
//$md5 = md5($u['login'].$u['pass'].$member_id.$payment_id);
//mail_verification_email($u, $config['root_url']."/signup.php?continue_signup=1&member_id=$member_id&member_id_exists=$member_id_exists&payment_id=$payment_id&md5=$md5");
$t->assign('user', $u);
$t->display("email_verify.html");
exit();
}
$u = $db->get_user($member_id);
if ($config['auto_login_after_signup']){
$_SESSION['_pin_login'] = $u['login'];
$_SESSION['_pin_pass'] = $u['pass'];
}
proceed_to_payment($payment_id, $member_id_exists);
exit();
} while (0);
}
show_payment_form();
?>