ipcheck(); } /* Some initialisation, get the country from the phonenumber and decide if double opt-in is mandatory... */ $co = substr($_REQUEST["SendTo"],0,2); $needConfirm = true; /* HANDLE SIGN-UP */ if ($_REQUEST["onoff"]=="on") { $sql = "SELECT tn,status FROM targetsms.sms_members ". "WHERE co='$co' AND shortcode='".$_REQUEST["ShortCode"]."' ". "AND tn='".$_REQUEST["SendTo"]."' AND keyword='".$_REQUEST["MO_ShortKey"]."'"; list ($test,$status) = mysql_fetch_array(mysql_query($sql)); // Check if a member record exists if (!$test) { $sql = "INSERT INTO sms_members (co,tn,shortcode,keyword,status,created,moid_on) VALUES ". "('$co','".$_REQUEST["SendTo"]."','".$_REQUEST["ShortCode"]."','".$_REQUEST["MO_ShortKey"]."',". "'on',now(),'".$_REQUEST["MO_MessageId"]."')"; mysql_query ($sql); } // Already approved as member? if ($status=="ok") { $sms->MTNonSubscription (25, $mess_alreadySignedUp); } // Is confirmation needed (KEYWORD OK) ? elseif ($needConfirm) { $sql = "UPDATE sms_members SET status='on',created=now(),moid_on='".$_REQUEST["MO_MessageId"]."' ". "WHERE co='$co' AND shortcode='".$_REQUEST["ShortCode"]."' AND tn='".$_REQUEST["SendTo"]."' ". "AND keyword='".$_REQUEST["MO_ShortKey"]."'"; mysql_query ($sql); $mess_ok = str_replace("[SHORTKEY]",$_REQUEST["MO_ShortKey"],$mess_ok); $mess_ok = str_replace("[SHORTCODE]",$_REQUEST["ShortCode"],$mess_ok); $sms->MTNonSubscription (25,$mess_ok); } // No, skip the confirmation step and set the member as 'ok' right away! else{ $sql = "UPDATE sms_members SET status='ok',created=now(),activated=now(),". "moid_on='".$_REQUEST["MO_MessageId"]."',moid_ok='".$_REQUEST["MO_MessageId"]."' ". "WHERE co='$co' AND shortcode='".$_REQUEST["ShortCode"]."' AND tn='".$_REQUEST["SendTo"]."' ". "AND keyword='".$_REQUEST["MO_ShortKey"]."'"; mysql_query ($sql); $mess_confirm = str_replace("[SHORTKEY]",$_REQUEST["MO_ShortKey"],$mess_confirm); $mess_confirm = str_replace("[SHORTCODE]",$_REQUEST["ShortCode"],$mess_confirm); $sms->MTNonSubscription (25,$mess_confirm); } } /* HANDLE CONFIRMATION */ if ($_REQUEST["onoff"]=="ok") { $sql = "SELECT tn,status FROM targetsms.sms_members WHERE co='$co' AND shortcode='".$_REQUEST["ShortCode"]."'". " AND tn='".$_REQUEST["SendTo"]."' AND keyword='".$_REQUEST["MO_ShortKey"]."'"; list ($test,$status) = mysql_fetch_array(mysql_query($sql)); // Is this member already confirmed? if ($status=="ok") { $sms->MTNonSubscription (25,$mess_alreadySignedUp); } // Is confirmation needed at all? elseif (!$needConfirm) { $sms->MTNonSubscription (25, $mess_okAgain); } // Was an ON message sent previously? elseif ((!$test) || ($status!="on")) { $mess_firstSendOn = str_replace("[SHORTKEY]",$_REQUEST["MO_ShortKey"],$mess_firstSendOn); $mess_firstSendOn = str_replace("[SHORTCODE]",$_REQUEST["ShortCode"],$mess_firstSendOn); $sms->MTNonSubscription (25, $mess_firstSendOn); } // All ok else{ $sql = "UPDATE sms_members SET status='ok',activated=now(),moid_ok='".$_REQUEST["MO_MessageId"]."' ". "WHERE co='$co' AND shortcode='".$_REQUEST["ShortCode"]."' AND tn='".$_REQUEST["SendTo"]."' AND ". "keyword='".$_REQUEST["MO_ShortKey"]."'"; mysql_query ($sql); $mess_confirm = str_replace("[SHORTKEY]",$_REQUEST["MO_ShortKey"],$mess_confirm); $mess_confirm = str_replace("[SHORTCODE]",$_REQUEST["ShortCode"],$mess_confirm); $sms->MTNonSubscription (25, $mess_confirm); } } /* HANDLE SIGN-OFF A sign off can be initiated by: - Sending KEYWORD OFF to the shortcode - Signing off on our end-user support website, www.3010sms.nl - Manually by TargetMedia customer support employees In the last 2 cases your MO handler will be called so you are able to process the signoff. Note that the MO_MessageId is empty, and it is not possible to reply with a paid MT message. */ if ($_REQUEST["onoff"]=="off") { $sql = "SELECT tn,status FROM targetsms.sms_members WHERE co='$co' AND shortcode='".$_REQUEST["ShortCode"]."' ". "AND tn='".$_REQUEST["SendTo"]."' AND keyword='".$_REQUEST["MO_ShortKey"]."'"; list ($test,$status) = mysql_fetch_array(mysql_query($sql)); // Is a member? if (!$test) { if($_REQUEST['MO_MessageId']){ $sms->MTNonSubscription (25, $mess_notSignedUp); } } // Was a member before? elseif ($status=="off") { if($_REQUEST['MO_MessageId']){ $sms->MTNonSubscription (25, $mess_alreadySingedOff); } } // Only ON was sent, so not an active member after all... elseif (($status=="on") && ($needConfirm)) { if($_REQUEST['MO_MessageId']){ $sms->MTNonSubscription (25, $mess_notActive); } } // All ok, action is needed now else{ $sql = "UPDATE sms_members SET status='off',deactivated=now(),moid_off='".$_REQUEST["MO_MessageId"]."' ". "WHERE co='$co' AND shortcode='".$_REQUEST["ShortCode"]."' AND tn='".$_REQUEST["SendTo"]."' AND ". "keyword='".$_REQUEST["MO_ShortKey"]."'"; mysql_query ($sql); $mess_signedOff = str_replace("[SHORTKEY]",$_REQUEST["MO_ShortKey"],$mess_signedOff); if($_REQUEST['MO_MessageId']){ $sms->MTNonSubscription (25, $mess_signedOff); } } } // Report back to TargetSMS that all is ok! $sms->bye(); ?>