• 24-08-2022, 13:17:36
    #1
    Merhaba web sitemde e-fatura kesebilmek adına sipariş geçen kullanıcılardan tc kimlik, doğum yılı ve adres bilgilerini alamıyorum. Gerekli kodlar aşağıda sorunun nerede olduğunu veya nasıl yapılacağını anlayan bilen biri bakabilirmi.

    buy-product.php

    <div class="col-md-6">
                        <label><?= line('Name Surname') ?>:</label>
                        <input value="<?= isset($error) && isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '' ?>" type="text" name="name" required placeholder="<?= htmlspecialchars(line('Enter your name')) ?>.">
                    </div>
                    <div class="col-md-6">
                        <label><?= line('Phone Number') ?>:</label>
                        <input value="<?= isset($error) && isset($_POST['phone']) ? htmlspecialchars($_POST['phone']) : '' ?>" type="tel" name="phone" required placeholder="<?= htmlspecialchars(line('Enter your phone number')) ?>.">
                    </div>
                    <div class="col-md-6">
                        <label><?= line('Email Address') ?>:</label>
                        <input value="<?= isset($error) && isset($_POST['email']) ? htmlspecialchars($_POST['email']) : '' ?>" type="email" name="email" required placeholder="<?= htmlspecialchars(line('Enter your email address')) ?>.">
                    </div>
                    <div class="col-md-6">
                        <label><?= line('Billing Address') ?>:</label>
                        <input value="<?= isset($error) && isset($_POST['address']) ? htmlspecialchars($_POST['address']) : '' ?>" type="text" name="address" required placeholder="<?= htmlspecialchars(line('Enter your billing')) ?>.">
                    </div>
                    <div class="col-md-6">
                        <label><?= line('TR Identity') ?>:</label>
                        <input value="<?= isset($error) && isset($_POST['identity']) ? htmlspecialchars($_POST['identity']) : '' ?>" type="number" name="identity" required placeholder="<?= htmlspecialchars(line('Enter your tc')) ?>.">
                    </div>
                    <div class="col-md-6">
                        <label><?= line('Year Birth') ?>:</label>
                        <input value="<?= isset($error) && isset($_POST['birth']) ? htmlspecialchars($_POST['birth']) : '' ?>" type="number" name="birth" required placeholder="<?= htmlspecialchars(line('Enter your year')) ?>.">
                    </div>
    payment.php

    public function pay($token, $id)
        {
            $Order = $this->OrderModel->find($id);
            if(!isset($Order['id']) || md5($Order['name'].$Order['phone'].$Order['email'].$Order['address'].$Order['identity'].$Order['birth'].$this->request->getIPAddress()) !== $token) {
                header('Location:'.base_url(line('products', 'Route')));
                exit;
            }
            if($Order['status'] == 1) {
                header('Location:'.base_url(line('payment', 'Route').'/'.line('success', 'Route')));
                exit;
            }
            if($Order['payment'] == 'bank' && getConfig('bankPayment') == 'system') {
                $this->data['BankAccounts'] = model('BankAccountModel')->orderBy('id', 'desc')->findAll();
                if($this->request->getMethod() === 'post') {
                    if(!empty($this->request->getVar('bank')) && is_numeric($this->request->getVar('bank')) && strtotime($this->request->getVar('date')) !== false) {
                        $bank = intval($this->request->getVar('bank'));
                        foreach($this->data['BankAccounts'] as $BankAccount) {
                            if($BankAccount['id'] == $bank) {
                                $bank = $BankAccount['title'];
                                break;
                            }
                        }
                        $data = json_encode([
                            'bank' => $bank,
                            'name' => strip_tags($this->request->getVar('name')),
                            'date' => date('d/m/Y', strtotime($this->request->getVar('date'))),
                            'order' => $Order['id'],
                            'amount' => $Order['amount'],
                            'order' => $Order['address'],
                            'order' => $Order['identity'],
                            'order' => $Order['birth']
                        ]);
                        model('FormMessageModel')->insert([
                            'name' => $Order['name'],
                            'phone' => $Order['phone'],
                            'email' => $Order['email'],
                            'email' => $Order['address'],
                            'email' => $Order['identity'],
                            'email' => $Order['birth'],
                            'subject' => 'Payment Notification',
                            'message' => $data,
                            'seen' => 0,
                            'form' => 'payment-notification'
                        ]);
                        if(getConfig('formEmail') == 1) {
                            $EmailContent = view('email/admin', [
                                'title' => line('New Payment Notification').'!',
                                'message' => sprintf(line('Someone named "%s" sent a get payment notification<br/><br/>You can find details in the admin panel'), strip_tags($this->request->getVar('name'))).'.'
                            ]);
                            sendEmail(line('New Payment Notification').'!', $EmailContent, getConfig('adminEmail'));
                        }
                        $this->data['paid'] = true;
                    }
                }
            }
            $this->data['title'] = sprintf('%s - %s', line('Safe Payment'), getConfig('title'));
            $this->data['pageDetails'] = [];
            $this->data['UserIP'] = $this->request->getIPAddress();
            
            $Order['amount'] += ($Order['amount']/100)*floatval(getConfig($Order['payment'].'Commission'));
            $Order['amount'] = floatval(number_format(floatval($Order['amount']), 2, '.', ''));
    
            $this->data['Order'] = $Order;
            return $this->layout('payment');
        }
    home.php

    public function buy_product($id, $slug)
        {
            $PaymentMethods = ['card', 'crypto', 'mobile', 'bank'];
            $Page = model('ProductModel')->find($id);
            if (!isset($Page['id']) || !empty(trim($Page['buy_link']))) {
                $this->pageNotFound();
            }
            helper('text');
            $RealSlug = url_title(convert_accented_characters($Page['title']), '-', true);
            if($RealSlug != $slug) {
                header('Location: '.base_url(line('products', 'Route').'/'.$RealSlug.'-'.$Page['id']).'/'.line('buy', 'Route'));
                exit;
            }
            if ($this->request->getMethod() === 'post') {
                if (!empty($this->request->getVar('name')) && !empty($this->request->getVar('address')) && !empty($this->request->getVar('identity')) && !empty($this->request->getVar('birth')) &&  !empty($this->request->getVar('phone')) && is_numeric(str_replace(['+', ' '], '0', $this->request->getVar('phone'))) && filter_var($this->request->getVar('email'), FILTER_VALIDATE_EMAIL) && in_array($this->request->getVar('payment'), $PaymentMethods) && (($this->request->getVar('payment') == 'card' && getConfig('cardEnabled') == 1) || ($this->request->getVar('payment') == 'crypto' && getConfig('cryptoEnabled') == 1) || ($this->request->getVar('payment') == 'mobile' && getConfig('mobileEnabled') == 1) || ($this->request->getVar('payment') == 'bank' && getConfig('bankEnabled') == 1))) {
                    $OrderModel = model('OrderModel');
                    $fields = [];
                    $Page['fields'] = preg_split("/(\r\n|\n|\r)/", $Page['fields']);
                    foreach ($Page['fields'] as $field) {
                        if (!empty(trim($field))) {
                            if (is_array($this->request->getVar('fields')) && isset($this->request->getVar('fields')[md5($field)])) {
                                $fields[$field] = $this->request->getVar('fields')[md5($field)];
                            }
                        }
                    }
                    if($this->request->getVar('payment') == 'card' && getConfig('cardPayment') == 'weepay') {
                        $fields[line('City')] = $this->request->getVar('city');
                        $fields[line('Country')] = $this->request->getVar('country');
                        $fields[line('Address')] = $this->request->getVar('address');
                    }
                    $OrderModel->insert([
                        'name' => strip_tags($this->request->getVar('name')),
                        'phone' => strip_tags($this->request->getVar('phone')),
                        'email' => strip_tags($this->request->getVar('email')),
                        'ip' => $this->request->getIPAddress(),
                        'address' => $this->request->getVar('address'),
                        'identity' => $this->request->getVar('identity'),
                        'birth' => $this->request->getVar('birth'),
                        'fields' => json_encode($fields),
                        'amount' => $Page['price'],
                        'payment' => $this->request->getVar('payment'),
                        'product' => $Page['id'],
                        'status' => 0
                    ]);
                    header('Location:' . base_url(line('payment', 'Route') . '/' . md5($this->request->getVar('name') . $this->request->getVar('phone') . $this->request->getVar('email') . $this->request->getVar('address') . $this->request->getVar('identity') . $this->request->getVar('birth') . $this->request->getIPAddress()) . '/' . $OrderModel->insertId()));
                    exit;
                } else {
                    $this->data['error'] = line('Please fill the fields correctly');
                }
            }
            $this->data['title'] = sprintf('%s - %s', line('Buy Product'), getConfig('title'));
            $this->data['pageDetails'] = $Page;
            return $this->layout('buy-product');
        }
    Döngü boş olarak dönüyor
  • 24-08-2022, 14:53:39
    #2
    post metodundan gelen verileri almadan once ekrana print_r ile yazdirip gormeyi denediniz mi hocam?
  • 24-08-2022, 14:55:01
    #3
    x1881 adlı üyeden alıntı: mesajı görüntüle
    post metodundan gelen verileri almadan once ekrana print_r ile yazdirip gormeyi denediniz mi hocam?
    Hayır denemedim uzaktan bir bağlanıp size sorunu göstermek istiyorum.
  • 24-08-2022, 15:45:58
    #4
    sorun hakkinda yardimci olundu. tamamlandi.
  • 24-08-2022, 15:50:36
    #5
    @x1881; hocamın eline koluna sağlık en sonunda çözdük kendisine teşekkürler ederim.