Я создаю веб-сайт доставки.
Если у вас есть учетная запись, для деталей доставки у вас есть 2 варианта:
- Используйте сведения о доставке учетной записи (вы заполняете их, когдаВы регистрируетесь),
- Используйте разные детали доставки (вы заполняете их в корзине)
Я делаю следующие проверки:
Пользователь вошел в систему?Если да, убедитесь, что он ввел какие-то новые детали доставки (я использую POST
для получения значений, и я создаю массив с ними - $data_pos
). Если он введен, то empty($data_pos)
будет false
, создайте новый массив с его именем (из учетной записи) и общей ценой и вставьте заказ в базу данных.
Если пользователь не вошел в систему, ему потребуется заполнить детали, чтобы продолжить.
Проблема в том, что, даже если $data_pos
(сведения о доставке, которые он может заполнить, чтобы перезаписать данные о доставке счета) пусто или нет, функция empty
всегда включается false
, так что даже если он вводитничего, он скажет, что он что-то ввел.
Примечание. Эту функцию я сделал для print_r
массива и матрицы. Просто цель отладки.
echo '<pre>';
print_r($data);
die();
Модель:
if($this->session->userdata('logged_in')){
$data_pos = array(
'telephone' => $this->input->post('phone_pos'),
'address' => $this->input->post('address_pos'),
'details' => $this->input->post('details'),
);
if(empty($data_pos) == false){
$data = array(
'client_name' => $this->session->userdata('email'),
'telephone' => $this->input->post('phone_pos'),
'address' => $this->input->post('address_pos'),
'details' => $this->input->post('details'),
'price' => $this->cart->total(),
);
echo '<pre>';
print_r($data_pos);
echo 'second array is not empty';
die("\n".'die in '. __FILE__ . ' at line '. __LINE__);
}else{
$data = array(
'client_name' => $this->session->userdata('email'),
'telephone' => $this->session->userdata('phone'),
'address' => $this->session->userdata('address'),
'details' => $this->input->post('details'),
'price' => $this->cart->total(),
);
echo '<pre>';
print_r($data);
echo 'i take informations from account beacuse the second array is empty';
die("\n".'die in '. __FILE__ . ' at line '. __LINE__);
}
}