|
|
|
|
if (ACCOUNT_STATE == 'true') {
$zone_id = 0;
$check_query = tep_db_query("select count(*) as total from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "'");
$check = tep_db_fetch_array($check_query);
$entry_state_has_zones = ($check['total'] > 0);
if ($entry_state_has_zones == true) {
$zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and (zone_name = '" . tep_db_input($state) . "' or zone_code = '" . tep_db_input($state) . "')");
if (tep_db_num_rows($zone_query) == 1) {
$zone = tep_db_fetch_array($zone_query);
$zone_id = $zone['zone_id'];
} else {
$error = true;
$messageStack->add('checkout_address', ENTRY_STATE_ERROR_SELECT);
}
} else {
if (strlen($state) < ENTRY_STATE_MIN_LENGTH) {
$error = true;
$messageStack->add('checkout_address', ENTRY_STATE_ERROR);
}
}
}
|
Есть такой код,чего-то не хватает ,а чего не пойму,
не работает. | |
|
|
|
|
автор: .exp (09.03.2010 в 17:05) |
|
|
для: kaya
(09.03.2010 в 15:03)
| | программа внутри этого блоа вообще начинает выполняться ?
сделайте в самом начале блока вывод какошо-нибудь сообщения
if (ACCOUNT_STATE == 'true') {
exit("Сработало условие ACCOUNT_STATE == 'true'");
|
| |
|
|
|
|
|
|
|
для: .exp
(09.03.2010 в 17:05)
| | Ona voobshe ne vipolnyaetsya.Ya dumayu, chto ne xvataet esho odnogo"if...else", a vot chto pisat ne znayu.Pishu sleduyushee:
if(tep_not_null(if ($entry_state_has_zones) == true){
$zone = tep_db_fetch_array($zone_query);
$zone_id = $zone['zone_id'];
} else {
$error = true;
$messageStack->add('checkout_address', ENTRY_STATE_ERROR_SELECT);
}
|
No dumayu chto ne pravilno,ne rabotaet:(
Chto delat ne znayu:( | |
|
|
|
|
|
|
|
для: kaya
(09.03.2010 в 17:22)
| | Это поможет :
| |
|
|
|
|
|
|
|
для: oliss
(09.03.2010 в 17:28)
| | Eto ne pomoglo:):(
Chto proisxodit- kogda user vibiraet shtat(npr: Arizona),country: usa--to kogda delayu submit, to pochemu-to "Arizona" menyaetsya na grugoi shtat, i daeyot oshibku "Please entry your state"
Ne znayu chto delat:(:( | |
|
|
|
|
|
|
|
для: kaya
(09.03.2010 в 17:44)
| | происходит то что данные отправляемые формой или ещё как-то передаются скрипту (на сервер).
В скрипте они должны приниматься, например как $shtate = $_GET['shtate']; или $shtate = $_POST['shtate']; или $shtate = $_COOKIE['shtate'];
// upd
в запросе есть (int)$country
,откуда раньше этого появляется $country ? | |
|
|
|
|
|
|
|
для: heed
(09.03.2010 в 17:50)
| |
$state = tep_db_prepare_input($HTTP_POST_VARS['billto_state']);
$city = tep_db_prepare_input($HTTP_POST_VARS['billto_city']);
|
Dumayu otsyuda
Kod pisala ne ya, a ya novaya v etom, i voobshe na etoi rabote.Dali vot zadanie razobratsya
A ya na grani sriva, potomushto, to chto uchila, to chto est na samom dele----sovershenno raznie veshi:(
Izvinite za sumbur,prosto ne znayu s chego nachat voobshe i v chastnosti:(
Spasibo zaranee:) | |
|
|
|
|
автор: .heed (09.03.2010 в 19:03) |
|
|
для: kaya
(09.03.2010 в 18:26)
| | хотябы так :)
а то бывают вообще скрипты написанные под включенный register_globals, и там даже нет этих $HTTP_POST_VARS.
заменяйте сразу все такие надписи на $_POST.
массив $HTTP_POST_VARS это устаревшее название
обьявилен как [deprecated] и скоро его вообще не станет совсем.
функция tep_db_prepare_input() объявлена где-то во включеных файлах.
Можно пока просто проверить поступают ли данные после того как отправлена форма
Например посмотреть сразу после этих двух строк например так.
///*
echo '<pre>';
var_dump($state, $city);
//exit;
//*/
|
Но тот блок совсем не выполняется потому-что константа ACCOUNT_STATE оказывается не равна 'true'
где-то ещё должно быть присвоение ей значения функцией define()
, Вы же проверяли уже что содержится в ACCOUNT_STATE ? :) | |
|
|
|
|
|
|
|
для: kaya
(09.03.2010 в 18:26)
| | Я вообще-то вспомнил один момент связаный с php5.3,( у Вас-же 5.3 ?) и с некоторыми операционными системами.
Бывали случаи когда php вообще не подключалось к mysql, а просто зависало.
И никаких сообщений о ошибках. У Вас установлен phpMyAdmin ? он нормально работает ? | |
|
|
|
|
|
|
|
для: heed
(09.03.2010 в 19:21)
| | Da u nas php5.3
PhpAdmin funkcaniruet
no ya ne proverila ACCOUNT_STATE, esli on pustoi
Poidu proveryat
Spasibo vam za potderjku:) | |
|
|
|
|
|
|
|
для: kaya
(09.03.2010 в 19:25)
| | Zdraste vsem:)
funcciya ACCOUNT_STATE voobshe ne nashla nigde define
Znayu chto vetom kode ne xvataet fubnccii if , prichom s primeneniem funccii tep_not_null(), pravda kak pict i guda, i glavnoe chto proveryat etoi funkciei , ya ne znayu:(:( | |
|
|
|
|
|
|
|
для: kaya
(10.03.2010 в 10:50)
| | Или просто плохо искали ,) в начале этого php-файла наверное куча всяких include() и require()
или всё-таки нужно что-то делать с выводом Notice
Если ACCOUNT_STATE нигде не определена должна быть показано сообщение
Notice: Use of undefined constant ................
у меня Выводятся такие Notice даже просто если поставить
в начале скрипта error_reporting(E_ALL);
( тоже xampp только начал пробовать :))
у Вас в файле php.ini есть такая строчка
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
измените её хотя-бы так
error_reporting = E_ALL & ~E_DEPRECATED
остановите и снова запустите apache.
напишите какое-нибудь
echo RRRRXXX;
если не будет Notice , и будет просто выведено RRRRXXX , значит где-то что-то ещё переопределено.
начиная с того что в файлах .htaccess можно задавать например такое чтобы включить
php_value error_reporting 2047
php_flag display_errors On
|
или в скриптах бывает чего только не задают каким-нибудь ini_set(). | |
|
|
|
|
|
|
|
для: heed
(10.03.2010 в 12:08)
| | Sbasibo poprobuyu | |
|
|
|
|
|
|
|
для: kaya
(10.03.2010 в 14:04)
| | Zdraste vsem:)
if (ACCOUNT_STATE == 'true'&&!tep_not_nul($zone_id)) {
$zone_id = 0;
$check_query = tep_db_query("select count(*) as total from " . TABLE_ZONES . " where zone_country_id = '" . (int)$shipping_country . "'");
$check = tep_db_fetch_array($check_query);
$shipping_entry_state_has_zones = ($check['total'] > 0);
if ($shipping_entry_state_has_zones == true) {
$zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$shipping_country . "' and (zone_name = '" . tep_db_input($shipping_state) . "' or zone_code = '" . tep_db_input($shipping_state) . "')");
if (tep_db_num_rows($zone_query) == 1) {
$zone = tep_db_fetch_array($zone_query);
$shipping_zone_id = $zone['zone_id'];
} else {
$error = true;
$messageStack->add('checkout_address', ENTRY_STATE_ERROR_SELECT);
}
} else {
if (strlen($shipping_state) < ENTRY_STATE_MIN_LENGTH) {
$error = true;
$messageStack->add('checkout_address', ENTRY_STATE_ERROR);
}
}
}
if ( (is_numeric($shipping_country) == false) || ($shipping_country < 1) ) {
$error = true;
$messageStack->add('checkout_address', ENTRY_COUNTRY_ERROR);
}
}
|
Pojaluista pomogite,ne rabotaet, sdelala tak kak vi skazali,vsyo ravno ne rabotaet:(:( | |
|
|
|
|
автор: .exp (09.03.2010 в 17:45) |
|
|
для: kaya
(09.03.2010 в 17:22)
| | значит не выполняется, если кроме как внутри этого блока всё остальное работает.
, можно было-бы ,как Вам здесь подсказывали ,) проедположить что в константе ACCOUNT_STATE не строка 'true' а просто true типа boolean
, но всётаки надёжнее сделать что-нибудь перед условием
var_dump(ACCOUNT_STATE);
if (ACCOUNT_STATE == 'true') {
|
| |
|
|
|
|
|
|
|
для: kaya
(09.03.2010 в 15:03)
| | что Вам можно сказать , не пользовавшись таким-же как у Вас скриптом
вы ещё усложнили условие при котором этот блок должен выполняться
если посмотреть большую такую простыню функций файла functions/general.php
http://www.oscdox.com/crossx/includes/functions/general.php.source.html#l1066
, и если предположить что у Вас там то-же самое
<?
function tep_not_null($value) {
if (is_array($value)) {
if (sizeof($value) > 0) {
return true;
} else {
return false;
}
} else {
if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) {
return true;
} else {
return false;
}
}
}
|
то Вы просто сделали так что
, кроме того что ACCOUNT_STATE должно быть равно 'true'
ещё и $zone_id должно быть 'NULL', пустой строкой или пустым массивом
, Что это за скрипт ? у них там не раздают новых версий ? :)
//ups
у вас другое название tep_not_nul ,без одной буквы | |
|
|
|