p_sheremet 0 Опубликовано 15 марта, 2013 Жалоба Share Опубликовано 15 марта, 2013 Доброй ночи! Помогите решить такую проблему. Вставил в код файла create_account.php код, который на этапе создания нового пользователя сайта выгружает информацию по нему в файл DBF в определенном каталоге на хостинге. Все четко работает практически в любом месте этого файла. Но стоит мне расскомментировать строку с vam_db_query("set names cp1251"), как у меня теряется сессия клиента при выходе обработчика из этого файла (он после регистрации не попадает в свою корзину как должно быть, ему нужно повторно будет входить на сайт под своим логином, чтобы увидеть содержимое корзины): (код привожу) $sql_text = " SELECT t1.customers_id as id, t1.customers_firstname as name1, t1.customers_secondname as name2, t1.customers_lastname as name3, ex.value as card, t1.customers_email_address as email, t1.customers_telephone as phone, t2.entry_street_address as address, t2.entry_suburb as suburb, t2.entry_postcode as postcode, t2.entry_city as city, t2.entry_state as state, t3.countries_name as country, t4.zone_name as state2 FROM customers as t1 LEFT JOIN address_book as t2 ON t2.address_book_id = t1.customers_default_address_id LEFT JOIN countries as t3 ON t3.countries_id = t2.entry_country_id LEFT JOIN zones as t4 ON t4.zone_id = t2.entry_zone_id LEFT JOIN customers_to_extra_fields as ex ON ex.customers_id = t1.customers_id WHERE ex.fields_id = 1 and t1.customers_id = ".(int) $_SESSION['customer_id']; $fields = array( array("id", "N", 8, 0), array("name1", "C", 32), array("name2", "C", 32), array("name3", "C", 32), array("card", "N", 8, 0), array("email", "C", 50), array("phone", "C", 15), array("address", "C", 100), array("suburb", "C", 32), array("postcode", "C", 6), array("city", "C", 32), array("state", "C", 32), array("country", "C", 32), array("state2", "C", 32)); $db = dbase_create("obmen/out/usr_".(int) $_SESSION['customer_id'].".dbf", $fields); dbase_close($db); //open connection to database $db = dbase_open("obmen/out/usr_".(int) $_SESSION['customer_id'].".dbf", 2); //$customer_query = vam_db_query("set names cp1251"); $customer_query = vam_db_query($sql_text); //$order_check = vam_db_fetch_array($customer_query); while ($listing = vam_db_fetch_array($customer_query, true)) { $newRecord = array($listing['id'], $listing['name1'], $listing['name2'], $listing['name3'], $listing['card'], $listing['email'], $listing['phone'], $listing['address'], $listing['suburb'], $listing['postcode'], $listing['city'], $listing['state'], $listing['country'], $listing['state2']); dbase_add_record($db, $newRecord); } //print_r($newRecord); dbase_close($db); Ссылка на сообщение Поделиться на другие сайты
p_sheremet 0 Опубликовано 15 марта, 2013 Автор Жалоба Share Опубликовано 15 марта, 2013 победил только таким образом, - вставил преобразование iconv('utf-8', 'cp1251', $listing['name1']) в конце кода. p.s. может кому пригодится. Я день на эту херь убил ... :( Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 16 марта, 2013 Жалоба Share Опубликовано 16 марта, 2013 Вообще всё логично, у Вас уже ведь есть подключение к базе, уже установлена кодировка, нельзя ведь set names ещё раз устанавливать, насколько я понимаю, да и это вроде логично, если так подумать. iconv действительно лучше использовать. Хорошо, что разобрались. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения