HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/chatbot-elan/inc/functions.php
<?php
// require_once('class.translation.php');
 
function form_data()
{
    $convert_lang = get_lang();
    $get_country_code = ip_info("Visitor", "Country Code");
    if(strtoupper($get_country_code) == 'IN')
    {
        $convert_lang = 'en';
    }

    $frm = array();
    $frm['fullname'] = "Full Name";
    $frm['phone'] = "Phone";
    $frm['factory_name'] = "Factory Name";
    $frm['category'] = "Category";
    $frm['subcategory'] = "Sub Category";
    $frm['btnnext'] = "Next";
    //$frm['country_value'] = ip_info("Visitor", "Country");
    $frm['factory_address'] = "Factory address";
    $frm['position_at_factory'] = "Position at factory";
    $frm['supervisor_name'] = "Supervisor name";
    $frm['issue_you_are_facing'] = "Issue you are facing"; 
    $frm['submit_btn'] = "Send Message";  
    $frm['page_heading'] = "Chat with Us";
    $frm['page_description'] = "The LABS support team is ready to assist you.";   
    
       
    $trans_array = array();
    foreach ($frm as $key => $item) {                  
        if($convert_lang)
        {               
            if(strtolower($convert_lang) != 'en'){          
                $item = translate($item, "en", "$convert_lang");
                }
        }
        $trans_array[$key] = $item;
      }

    $trans_array['country_value'] = ip_info("Visitor", "Country");
    $trans_array['country_state_value'] = ip_info("Visitor", "State");
    $trans_array['language'] = get_lang();    
    return $trans_array;
}

function form_data_2()
{
    $convert_lang = get_lang();
    $get_country_code = ip_info("Visitor", "Country Code");
    if(strtoupper($get_country_code) == 'IN')
    {
        $convert_lang = 'en';
    }

    $frm = array();
    $frm['factory'] = "Factory";
    $frm['submit_btn'] = "Start";  
    $frm['page_heading'] = "Chat with Us";
    $frm['page_description'] = "The Lab Support Team is ready to assist you. You can fill out the form below to chat with our expert.";   
    
       
    $trans_array = array();
    foreach ($frm as $key => $item) {                  
        if($convert_lang)
        {               
            if(strtolower($convert_lang) != 'en'){          
                $item = translate($item, "en", "$convert_lang");
                }
        }
        $trans_array[$key] = $item;
      }

    $trans_array['country_value'] = ip_info("Visitor", "Country");
    $trans_array['country_state_value'] = ip_info("Visitor", "State");
    $trans_array['language'] = get_lang();    
    return $trans_array;
}


function category_data()
{
    $convert_lang = get_lang();
    $get_country_code = ip_info("Visitor", "Country Code");
    if(strtoupper($get_country_code) == 'IN')
    {
        $convert_lang = 'en';
    }
    $frm = array();
    $frm[''] = "Choose...";
    $frm['LABS'] = "LABS";
    $frm['Non LABS'] = "Non LABS";          
    $trans_array = array();
    foreach ($frm as $key => $item) {                  
        if($convert_lang)
        {     
            if(strtolower($convert_lang) != 'en'){          
            $item = translate($item, "en", "$convert_lang");
            }
        }
        $trans_array[$key] = $item;
      }
    return $trans_array;
}


function subcategory_data()
{
    $convert_lang = get_lang();
    $get_country_code = ip_info("Visitor", "Country Code");
    if(strtoupper($get_country_code) == 'IN')
    {
        $convert_lang = 'en';
    }
    $frm = array();
    $frm[''] = "Choose...";
    $frm['Critical'] = "Critical";
    $frm['Non-Critical'] = "Non-Critical";          
    $trans_array = array();
    foreach ($frm as $key => $item) {                  
        if($convert_lang)
        {     
            if(strtolower($convert_lang) != 'en'){          
            $item = translate($item, "en", "$convert_lang");
            }
        }
        $trans_array[$key] = $item;
      }
    return $trans_array;
}


function city_data()
{
    $convert_lang = get_lang();
    $get_country_code = ip_info("Visitor", "Country Code");
    if(strtoupper($get_country_code) == 'IN')
    {
        $convert_lang = 'en';
    }
    $frm = array();
    $frm['101'] = "Mehrauli";
    $frm['102'] = "Tughlakabad";
    $frm['103'] = "New Delhi";
    $frm['104'] = "Aya Nagar";
    $frm['105'] = "Ghitorni";
    $frm['106'] = "Kondli";
     
    $trans_array = array();
    foreach ($frm as $key => $item) {                  
        if($convert_lang)
        {     
            if(strtolower($convert_lang) != 'en'){          
            $item = translate($item, "en", "$convert_lang");
            }
        }
        $trans_array[$key] = $item;
      }
    return $trans_array;
}

function state_data()
{
    $convert_lang = get_lang();
    $get_country_code = ip_info("Visitor", "Country Code");
    if(strtoupper($get_country_code) == 'IN')
    {
        $convert_lang = 'en';
    }
    $frm = array();
    $frm['1101'] = "Assam";
    $frm['1102'] = "Tughlakabad";
    $frm['1103'] = "Arunachal Pradesh";
    $frm['1104'] = "Delhi";
    $frm['1105'] = "Kerala";
    $frm['1106'] = "Nagaland";
     
    $trans_array = array();
    foreach ($frm as $key => $item) {   
        if($convert_lang)
        {               
            if(strtolower($convert_lang) != 'en'){          
                $item = translate($item, "en", "$convert_lang");
                }
        }
        $trans_array[$key] = $item;
      }
    return $trans_array;
}

 
function translate($q, $sl, $tl){    
    $res= file_get_contents("https://translate.googleapis.com/translate_a/single?client=gtx&ie=UTF-8&oe=UTF-8&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&sl=".$sl."&tl=".$tl."&hl=hl&q=".urlencode($q), $_SERVER['DOCUMENT_ROOT']."/transes.html");
    $res=json_decode($res);
    return $res[0][0][0];
}

function get_lang()
{
    $country_code = ip_info("Visitor", "Country Code"); 
    $lang = country_code_to_locale($country_code, $language_code = '');
    $selected_lang = str_replace("-".$country_code,"",$lang);
    $selected_lang = str_replace("_".$country_code,"",$selected_lang);
    return $selected_lang;
}
 

//example-- 
// echo translate("اسمي منتصر الصاوي", "ar", "en");

// echo "<br/>";

// echo translate("how are you", "en", "km");


//echo translate("اسمي منتصر الصاوي", "ar", "en");

 
 
// echo "Country = ".ip_info("Visitor", "Country"); // India
// echo "<br/>";
// echo "Country code = ".ip_info("Visitor", "Country Code"); // IN
// echo "<br/>";
// echo "State = ".ip_info("Visitor", "State"); // Andhra Pradesh
// echo "<br/>";
// echo "City = ".ip_info("Visitor", "City"); // Proddatur
// echo "<br/>";
// echo "Address = ".ip_info("Visitor", "Address"); // Proddatur, Andhra Pradesh, India




function country_code_to_locale($country_code, $language_code = '')
{
    // Locale list taken from:
    // http://stackoverflow.com/questions/3191664/
    // list-of-all-locales-and-their-short-codes
    $locales = array('af-ZA',
                    'am-ET',
                    'ar-AE',
                    'ar-BH',
                    'ar-DZ',
                    'ar-EG',
                    'ar-IQ',
                    'ar-JO',
                    'ar-KW',
                    'ar-LB',
                    'ar-LY',
                    'ar-MA',
                    'arn-CL',
                    'ar-OM',
                    'ar-QA',
                    'ar-SA',
                    'ar-SY',
                    'ar-TN',
                    'ar-YE',
                    'as-IN',
                    'az-Cyrl-AZ',
                    'az-Latn-AZ',
                    'ba-RU',
                    'be-BY',
                    'bg-BG',
                    'bn-BD',
                    'bn-IN',
                    'bo-CN',
                    'br-FR',
                    'bs-Cyrl-BA',
                    'bs-Latn-BA',
                    'ca-ES',
                    'co-FR',
                    'cs-CZ',
                    'cy-GB',
                    'da-DK',
                    'de-AT',
                    'de-CH',
                    'de-DE',
                    'de-LI',
                    'de-LU',
                    'dsb-DE',
                    'dv-MV',
                    'el-GR',
                    'en-029',
                    'en-AU',
                    'en-BZ',
                    'en-CA',
                    'en-GB',
                    'en-IE',
                    'en-IN',
                    'en-JM',
                    'en-MY',
                    'en-NZ',
                    'en-PH',
                    'en-SG',
                    'en-TT',
                    'en-US',
                    'en-ZA',
                    'en-ZW',
                    'es-AR',
                    'es-BO',
                    'es-CL',
                    'es-CO',
                    'es-CR',
                    'es-DO',
                    'es-EC',
                    'es-ES',
                    'es-GT',
                    'es-HN',
                    'es-MX',
                    'es-NI',
                    'es-PA',
                    'es-PE',
                    'es-PR',
                    'es-PY',
                    'es-SV',
                    'es-US',
                    'es-UY',
                    'es-VE',
                    'et-EE',
                    'eu-ES',
                    'fa-IR',
                    'fi-FI',
                    'fil-PH',
                    'fo-FO',
                    'fr-BE',
                    'fr-CA',
                    'fr-CH',
                    'fr-FR',
                    'fr-LU',
                    'fr-MC',
                    'fy-NL',
                    'ga-IE',
                    'gd-GB',
                    'gl-ES',
                    'gsw-FR',
                    'gu-IN',
                    'ha-Latn-NG',
                    'he-IL',
                    'hi-IN',
                    'hr-BA',
                    'hr-HR',
                    'hsb-DE',
                    'hu-HU',
                    'hy-AM',
                    'id-ID',
                    'ig-NG',
                    'ii-CN',
                    'is-IS',
                    'it-CH',
                    'it-IT',
                    'iu-Cans-CA',
                    'iu-Latn-CA',
                    'ja-JP',
                    'ka-GE',
                    'kk-KZ',
                    'kl-GL',
                    'km-KH',
                    'kn-IN',
                    'kok-IN',
                    'ko-KR',
                    'ky-KG',
                    'lb-LU',
                    'lo-LA',
                    'lt-LT',
                    'lv-LV',
                    'mi-NZ',
                    'mk-MK',
                    'ml-IN',
                    'mn-MN',
                    'mn-Mong-CN',
                    'moh-CA',
                    'mr-IN',
                    'ms-BN',
                    'ms-MY',
                    'mt-MT',
                    'nb-NO',
                    'ne-NP',
                    'nl-BE',
                    'nl-NL',
                    'nn-NO',
                    'nso-ZA',
                    'oc-FR',
                    'or-IN',
                    'pa-IN',
                    'pl-PL',
                    'prs-AF',
                    'ps-AF',
                    'pt-BR',
                    'pt-PT',
                    'qut-GT',
                    'quz-BO',
                    'quz-EC',
                    'quz-PE',
                    'rm-CH',
                    'ro-RO',
                    'ru-RU',
                    'rw-RW',
                    'sah-RU',
                    'sa-IN',
                    'se-FI',
                    'se-NO',
                    'se-SE',
                    'si-LK',
                    'sk-SK',
                    'sl-SI',
                    'sma-NO',
                    'sma-SE',
                    'smj-NO',
                    'smj-SE',
                    'smn-FI',
                    'sms-FI',
                    'sq-AL',
                    'sr-Cyrl-BA',
                    'sr-Cyrl-CS',
                    'sr-Cyrl-ME',
                    'sr-Cyrl-RS',
                    'sr-Latn-BA',
                    'sr-Latn-CS',
                    'sr-Latn-ME',
                    'sr-Latn-RS',
                    'sv-FI',
                    'sv-SE',
                    'sw-KE',
                    'syr-SY',
                    'ta-IN',
                    'te-IN',
                    'tg-Cyrl-TJ',
                    'th-TH',
                    'tk-TM',
                    'tn-ZA',
                    'tr-TR',
                    'tt-RU',
                    'tzm-Latn-DZ',
                    'ug-CN',
                    'uk-UA',
                    'ur-PK',
                    'uz-Cyrl-UZ',
                    'uz-Latn-UZ',
                    'vi-VN',
                    'wo-SN',
                    'xh-ZA',
                    'yo-NG',
                    'zh-CN',
                    'zh-HK',
                    'zh-MO',
                    'zh-SG',
                    'zh-TW',
                    'zu-ZA',);

    foreach ($locales as $locale)
    {
        $locale_region = locale_get_region($locale);
        $locale_language = locale_get_primary_language($locale);
        $locale_array = array('language' => $locale_language,
                             'region' => $locale_region);

        if (strtoupper($country_code) == $locale_region &&
            $language_code == '')
        {
            return locale_compose($locale_array);
        }
        elseif (strtoupper($country_code) == $locale_region &&
                strtolower($language_code) == $locale_language)
        {
            return locale_compose($locale_array);
        }
    }

    return null;
}



function ip_info($ip = NULL, $purpose = "location", $deep_detect = TRUE) {
    $output = NULL;
    
    if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) {
        $ip = $_SERVER["REMOTE_ADDR"];
        if ($deep_detect) {
            if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
            if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
                $ip = $_SERVER['HTTP_CLIENT_IP'];
        }
    }
    $purpose    = str_replace(array("name", "\n", "\t", " ", "-", "_"), NULL, strtolower(trim($purpose)));
    $support    = array("country", "countrycode", "state", "region", "city", "location", "address");
    $continents = array(
        "AF" => "Africa",
        "AN" => "Antarctica",
        "AS" => "Asia",
        "EU" => "Europe",
        "OC" => "Australia (Oceania)",
        "NA" => "North America",
        "SA" => "South America"
    );
 
    if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) {
        $ipdat = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $ip));
        if (@strlen(trim($ipdat->geoplugin_countryCode)) == 2) {
            switch ($purpose) {
                case "location":
                    $output = array(
                        "city"           => @$ipdat->geoplugin_city,
                        "state"          => @$ipdat->geoplugin_regionName,
                        "country"        => @$ipdat->geoplugin_countryName,
                        "country_code"   => @$ipdat->geoplugin_countryCode,
                        "continent"      => @$continents[strtoupper($ipdat->geoplugin_continentCode)],
                        "continent_code" => @$ipdat->geoplugin_continentCode
                    );
                    break;
                case "address":
                    $address = array($ipdat->geoplugin_countryName);
                    if (@strlen($ipdat->geoplugin_regionName) >= 1)
                        $address[] = $ipdat->geoplugin_regionName;
                    if (@strlen($ipdat->geoplugin_city) >= 1)
                        $address[] = $ipdat->geoplugin_city;
                    $output = implode(", ", array_reverse($address));
                    break;
                case "city":
                    $output = @$ipdat->geoplugin_city;
                    break;
                case "state":
                    $output = @$ipdat->geoplugin_regionName;
                    break;
                case "region":
                    $output = @$ipdat->geoplugin_regionName;
                    break;
                case "country":
                    $output = @$ipdat->geoplugin_countryName;
                    break;
                case "countrycode":
                    $output = @$ipdat->geoplugin_countryCode;
                    break;
            }
        }
    }
    return $output;
}