Bug Tracker

Ticket #4350: files.php

File files.php, 6.8 KB (added by why not, 14 years ago)
Line 
1<?PHP 
2// THIS PHP CODE IS MY CONTACTUS FORM
3$SMTP    = new SMTP($Info->option['smtp_host'], $Info->option['smtp_username'], $Info->option['smtp_password']); 
4
5$Contact    = new Contact; 
6
7class Contact 
8{ 
9    var $data        = array(); 
10
11    function Contact(){ 
12        global $Func; 
13
14        $act    = $Func->get_vars('act', 1); 
15
16        switch ($act){ 
17            case "send": 
18                $this->do_send_email(); 
19                break; 
20            default: 
21                $this->pre_send_email(); 
22        } 
23    } 
24    function pre_send_email($msg = ""){ 
25        global $Info, $Template, $Lang, $Func, $HomeGlobal; 
26
27        $Info->tpl_main    = "mailto"; 
28        $Func->make_image_number(); 
29
30        $Template->set_vars(array( 
31            'ERROR_MSG'                => $msg, 
32            'S_CONTACT_ACTION'        => $Func->compile_url(array('mod' => 'mailto', 'act' => 'send')), 
33            'BROWSER_NAVIGATOR'        => ' - '. $Lang->data['general_contact'], 
34            "L_CONTACT_US"            => $Lang->data["contact"], 
35            "L_NAME"                => $Lang->data["contact_name"], 
36            "L_EMAIL"                => $Lang->data["contact_email"], 
37            "L_ADDRESS"                => $Lang->data["contact_address"], 
38            "L_TEL"                    => $Lang->data["contact_tel"], 
39            "L_SUBJECT"                => $Lang->data["contact_subject"], 
40            "L_MESSAGE"                => $Lang->data["contact_message"], 
41            "L_BUTTON_SEND"            => $Lang->data["contact_button_send"], 
42            "L_ERROR_NOT_FULL"        => $Lang->data["general_error_not_full"], 
43            "L_ERROR_EMAIL"            => $Lang->data["general_error_email"], 
44            'VISITOR_NAME'            => isset($this->data['name']) ? stripslashes($this->data['name']) : '', 
45            'VISITOR_EMAIL'            => isset($this->data['email']) ? stripslashes($this->data['email']) : '', 
46            'VISITOR_ADDRESS'        => isset($this->data['address']) ? stripslashes($this->data['address']) : '', 
47            'VISITOR_TEL'            => isset($this->data['tel']) ? stripslashes($this->data['tel']) : '', 
48            'SUBJECT'                => isset($this->data['subject']) ? stripslashes($this->data['subject']) : '', 
49            'MESSAGE'                => isset($this->data['message']) ? stripslashes($this->data['message']) : '', 
50        )); 
51    } 
52function check_ip(){ 
53        global $Info, $Template, $Lang, $DB, $Func; 
54
55        $DB->query("SELECT client_ip FROM ". $DB->prefix ."contact_ip WHERE client_ip='". $Info->client_ip ."' AND contact_time>=". (CURRENT_TIME - $Info->option['time_recontact'])); 
56        if ( $DB->num_rows() ){ 
57            $Template->page_transfer($Lang->data['contact_error_flood'], $Func->compile_url(array('mod' => 'mailto'))); 
58            return false; 
59        } 
60
61        return true; 
62    } 
63function do_send_email(){ 
64        global $Func, $DB, $Template, $Lang, $Info, $SMTP; 
65
66        $this->data['name']            = isset($_POST["visitor_name"]) ? htmlspecialchars($_POST["visitor_name"]) : ''; 
67        $this->data['email']        = isset($_POST["visitor_email"]) ? htmlspecialchars($_POST["visitor_email"]) : ''; 
68        $this->data['address']        = isset($_POST["visitor_address"]) ? htmlspecialchars($_POST["visitor_address"]) : ''; 
69        $this->data['tel']            = isset($_POST["visitor_tel"]) ? htmlspecialchars($_POST["visitor_tel"]) : ''; 
70        $this->data['subject']        = isset($_POST["subject"]) ? htmlspecialchars($_POST["subject"]) : ''; 
71        $this->data['message']        = isset($_POST["message"]) ? htmlspecialchars($_POST["message"]) : ''; 
72        $number_id            = isset($_POST["number_id"]) ? htmlspecialchars($_POST["number_id"]) : ''; 
73        $number_value        = isset($_POST["number_value"]) ? intval($_POST["number_value"]) : 0; 
74
75        if ( empty($this->data['name']) || empty($this->data['email']) || empty($this->data['subject']) || empty($this->data['message']) ){ 
76            $this->pre_send_email($Lang->data["general_error_not_full"]); 
77            return false; 
78        } 
79
80        if ( !$Func->check_email($this->data['email']) ){ 
81            $this->pre_send_email($Lang->data["general_error_email"]); 
82            return false; 
83        } 
84
85        $this->check_ip(); 
86if ( empty($number_id) || !$number_value ){ 
87            $this->pre_send_email($Lang->data['general_error_login_number']); 
88            return false; 
89        } 
90
91        $DB->query("SELECT * FROM ". $DB->prefix ."number WHERE num_id='". $number_id ."'"); 
92        if ( !$DB->num_rows() ){ 
93            $this->pre_send_email($Lang->data["general_error_login_number"]); 
94            return false; 
95        } 
96        $number_info    = $DB->fetch_array(); 
97        if ( $number_value != $number_info['num_value'] ){ 
98            $this->pre_send_email($Lang->data["general_error_login_number"]); 
99            return false; 
100        } 
101$DB->query("DELETE FROM ". $DB->prefix ."number WHERE num_id='". $number_id ."'"); 
102
103$content    = $Lang->data['contact_name'] .": ". stripslashes($this->data['name']) ."\n"; 
104        $content    .= $Lang->data['contact_email'] .": ". stripslashes($this->data['email']) ."\n"; 
105        $content    .= $Lang->data['contact_address'] .": ". stripslashes($this->data['address']) ."\n"; 
106        $content    .= $Lang->data['contact_tel'] .": ". stripslashes($this->data['tel']) ."\n"; 
107        $content    .= $Lang->data['contact_message'] .": \n\n". stripslashes($this->data['message']); 
108        $content    = nl2br($content); 
109//SMTP -------------------------------
110        $SMTP->message_charset($Lang->charset); 
111        $SMTP->message_subject('['. $Info->option['site_name'] .'] - '. $this->data['subject']); 
112        $SMTP->message_content($content); 
113        $SMTP->email_from($this->data['email']); 
114
115        //Admin emails
116        $Info->option['admin_email']    = str_replace(',', ';', $Info->option['admin_email']); 
117        $admin_emails    = explode(';', $Info->option['admin_email']); 
118        $i    = 0; 
119        reset($admin_emails); 
120        while (list(, $admin_email) = each($admin_emails)){ 
121            $admin_email    = trim($admin_email); 
122            if ( !empty($admin_email) ){ 
123                if ( $i == 0 ){ 
124                    $SMTP->email_to($admin_email); 
125                } 
126                else{ 
127                    $SMTP->email_cc($admin_email); 
128                } 
129                $i++; 
130            } 
131        } 
132        $SMTP->send(); 
133        //------------------------------------
134
135        $Template->page_transfer($Lang->data["contact_success_send"], $Info->option['site_url'] . $Func->compile_url('')); 
136        return true; 
137    } 
138} 
139?>