Всем привет. Подскажите пожалуйста, куда могло потеряться $product->data['products_id'] $product->data['products_name'] И как можно грамотно отследить такие вещи? PHP: <?php include ('includes/application_top.php'); $product_info_query = vam_db_query("select * FROM ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd where p.products_status = '1' and p.products_id = '".(int)$_GET['products_id']."' and pd.products_id = p.products_id and pd.language_id = '".(int)$_SESSION['languages_id']."'"); $product_info = vam_db_fetch_array($product_info_query); // include needed functions require_once(DIR_FS_INC.'vam_validate_email.inc.php'); require_once (DIR_FS_INC.'vam_image_button.inc.php'); // create smarty elements $vamTemplate = new vamTemplate; $vamTemplate->assign('language', $_SESSION['language']); if (isset ($_POST['action']) && ($_POST['action'] == 'process')) { $error = false; if (isset($_SESSION['customer_id'])) { $firstname = $_SESSION['customer_first_name']; $lastname = $_SESSION['customer_last_name']; $email_address =$_SESSION['customer_email_address']; $message = vam_db_input($_POST['message_body']); $to_email_address = $email_address; $to_name = $firstname .' '. $lastname; } else { $firstname = vam_db_input($_POST['firstname']); $lastname = vam_db_input($_POST['lastname']); $email_address = vam_db_input($_POST['email_address']); $message = vam_db_input($_POST['message_body']); $to_email_address = $email_address; $to_name = $firstname .' '. $lastname; } if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) { $error = true; $messageStack->add('ask_a_question', ENTRY_FIRST_NAME_ERROR); } if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) { $error = true; $messageStack->add('ask_a_question', ENTRY_LAST_NAME_ERROR); } if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) { $error = true; $messageStack->add('ask_a_question', ENTRY_EMAIL_ADDRESS_ERROR); } elseif (vam_validate_email($email_address) == false) { $error = true; $messageStack->add('ask_a_question', ENTRY_EMAIL_ADDRESS_ERROR); } if (($_POST['captcha'] != $_SESSION['captcha_keystring'])) { $error = true; $messageStack->add('ask_a_question', TEXT_WRONG_CODE); } if ($message == '') { $error = true; $messageStack->add('ask_a_question', TEXT_MESSAGE_ERROR); } if ($messageStack->size('ask_a_question') > 0) { $vamTemplate->assign('error', $messageStack->output('ask_a_question')); } if ($error == false) { $vamTemplate->assign('PRODUCTS_NAME', $product_info['products_name']); $vamTemplate->assign('PRODUCTS_MODEL', $product_info['products_model']); $vamTemplate->assign('TEXT_MESSAGE', $_POST['message_body']); $vamTemplate->assign('TEXT_FIRSTNAME', $firstname); $vamTemplate->assign('TEXT_LASTNAME', $lastname); $vamTemplate->assign('TEXT_EMAIL', $email_address); $vamTemplate->assign('TEXT_EMAIL_SUCCESSFUL', sprintf(TEXT_EMAIL_SUCCESSFUL_SENT, $product_info['products_name'])); $vamTemplate->assign('PRODUCT_LINK', vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($product->data['products_id'], $product->data['products_name']))); $vamTemplate->caching = 0; $html_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/ask_a_question.html'); $vamTemplate->caching = 0; $txt_mail = $vamTemplate->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/ask_a_question.txt'); // send mail to admin vam_php_mail($to_email_address, EMAIL_SUPPORT_NAME, EMAIL_SUPPORT_ADDRESS, STORE_NAME, EMAIL_SUPPORT_FORWARDING_STRING, $to_email_address, $to_name, '', '', NAVBAR_TITLE_ASK, $html_mail, $txt_mail, $product_info['products_name']); // send mail to customer vam_php_mail(EMAIL_SUPPORT_ADDRESS, EMAIL_SUPPORT_NAME, $to_email_address, $to_name, EMAIL_SUPPORT_FORWARDING_STRING, EMAIL_SUPPORT_REPLY_ADDRESS, EMAIL_SUPPORT_REPLY_ADDRESS_NAME, '', '', NAVBAR_TITLE_ASK, $html_mail, $txt_mail); if (!CacheCheck()) { $vamTemplate->caching = 0; $vamTemplate->display(CURRENT_TEMPLATE.'/module/ask_a_question_ok.html'); } else { $vamTemplate->caching = 1; $vamTemplate->cache_lifetime = CACHE_LIFETIME; $vamTemplate->cache_modified_check = CACHE_CHECK; $cache_id = $_SESSION['language']; $vamTemplate->display(CURRENT_TEMPLATE.'/module/ask_a_question_ok.html', $cache_id); } }else{ $vamTemplate->assign('PRODUCTS_NAME', $product_info['products_name']); $vamTemplate->assign('PRODUCTS_MODEL', $product_info['products_model']); $vamTemplate->assign('FORM_ACTION', vam_draw_form('ask_a_question', vam_href_link(FILENAME_ASK_PRODUCT_QUESTION)).vam_draw_hidden_field('action', 'process').vam_draw_hidden_field('products_id', $_GET['products_id'])); $vamTemplate->assign('CAPTCHA_IMG', vam_image(HTTP_SERVER . DIR_WS_CATALOG . FILENAME_DISPLAY_CAPTCHA, 'captcha')); $vamTemplate->assign('CAPTCHA_INPUT', vam_draw_input_field('captcha', '', 'size="6" maxlength="6"', 'text', false)); if (isset($_SESSION['customer_id'])) { //-> registered user******************************************************** $vamTemplate->assign('INPUT_FIRSTNAME', $_SESSION['customer_first_name']); $vamTemplate->assign('INPUT_LASTNAME', $_SESSION['customer_last_name']); $vamTemplate->assign('INPUT_EMAIL', $_SESSION['customer_email_address']); }else{ //-> guest ********************************************************* $vamTemplate->assign('INPUT_FIRSTNAME', vam_draw_input_fieldNote(array ('name' => 'firstname', 'text' => ' '. (vam_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_FIRST_NAME_TEXT.'</span>' : '')))); $vamTemplate->assign('INPUT_LASTNAME', vam_draw_input_fieldNote(array ('name' => 'lastname', 'text' => ' '. (vam_not_null(ENTRY_LAST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_LAST_NAME_TEXT.'</span>' : '')))); $vamTemplate->assign('INPUT_EMAIL', vam_draw_input_fieldNote(array ('name' => 'email_address', 'text' => ' '. (vam_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">'.ENTRY_EMAIL_ADDRESS_TEXT.'</span>' : '')))); } $vamTemplate->assign('INPUT_TEXT', vam_draw_textarea_field('message_body', 'soft', 50, 15, stripslashes($_POST['message_body']))); $vamTemplate->assign('FORM_END', '</form>'); $vamTemplate->assign('BUTTON_SUBMIT', vam_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE)); $vamTemplate->assign('BUTTON_CONTINUE', '<a href="javascript:window.close()">'.vam_image_button('button_back.gif', IMAGE_BUTTON_BACK).'</a>'); // set cache ID if (!CacheCheck()) { $vamTemplate->caching = 0; $vamTemplate->display(CURRENT_TEMPLATE.'/module/ask_a_question.html'); } else { $vamTemplate->caching = 1; $vamTemplate->cache_lifetime = CACHE_LIFETIME; $vamTemplate->cache_modified_check = CACHE_CHECK; $cache_id = $_SESSION['language']; $vamTemplate->display(CURRENT_TEMPLATE.'/module/ask_a_question.html', $cache_id); } } }else{ include ('includes/header.php'); $breadcrumb->add(NAVBAR_TITLE_ASK, vam_href_link(FILENAME_ASK_PRODUCT_QUESTION, 'products_id='.$product->data['products_id'], 'SSL')); $vamTemplate->assign('PRODUCTS_NAME', $product_info['products_name']); $vamTemplate->assign('PRODUCTS_MODEL', $product_info['products_model']); $vamTemplate->assign('CAPTCHA_IMG', vam_image(HTTP_SERVER . DIR_WS_CATALOG . FILENAME_DISPLAY_CAPTCHA, 'captcha')); $vamTemplate->assign('CAPTCHA_INPUT', vam_draw_input_field('captcha', '', 'size="6" maxlength="6"', 'text', false)); $vamTemplate->assign('FORM_ACTION', vam_draw_form('ask_a_question', vam_href_link(FILENAME_ASK_PRODUCT_QUESTION)).vam_draw_hidden_field('action', 'process').vam_draw_hidden_field('products_id', $_GET['products_id'])); if (isset($_SESSION['customer_id'])) { //-> registered user******************************************************** $vamTemplate->assign('INPUT_FIRSTNAME', $_SESSION['customer_first_name']); $vamTemplate->assign('INPUT_LASTNAME', $_SESSION['customer_last_name']); $vamTemplate->assign('INPUT_EMAIL', $_SESSION['customer_email_address']); }else{ //-> guest ********************************************************* $vamTemplate->assign('INPUT_FIRSTNAME', vam_draw_input_fieldNote(array ('name' => 'firstname', 'text' => ' '. (vam_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_FIRST_NAME_TEXT.'</span>' : '')))); $vamTemplate->assign('INPUT_LASTNAME', vam_draw_input_fieldNote(array ('name' => 'lastname', 'text' => ' '. (vam_not_null(ENTRY_LAST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_LAST_NAME_TEXT.'</span>' : '')))); $vamTemplate->assign('INPUT_EMAIL', vam_draw_input_fieldNote(array ('name' => 'email_address', 'text' => ' '. (vam_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">'.ENTRY_EMAIL_ADDRESS_TEXT.'</span>' : '')))); } $vamTemplate->assign('INPUT_TEXT', vam_draw_textarea_field('message_body', 'soft', 50, 15, stripslashes($_POST['message_body']))); $vamTemplate->assign('FORM_END', '</form>'); $vamTemplate->assign('BUTTON_SUBMIT', vam_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE)); $vamTemplate->assign('BUTTON_CONTINUE', '<a href="javascript:window.close()">'.vam_image_button('button_back.gif', IMAGE_BUTTON_BACK).'</a>'); $vamTemplate->caching = 0; $vamTemplate->display(CURRENT_TEMPLATE.'/module/ask_a_question.html'); } ?>
Шутку нашел похоже. $_GET['products_id'] должен содержать параметр, который отображается в url типа ask_a_question.php?products_id=10031 Но тут вступает ЧПУ и ссылка имеет вид /ask_a_question.php/products_id=10031 Скажите может ли это быть причиной? Не заблуждаюсь ли я в очередной раз? И как такое можно исправить наименьшими усилиями?
RewriteEngine on RewriteCond %{HTTP_HOST} ^handy-craft.ru$ [OR] RewriteCond %{HTTP_HOST} ^www.handy-craft.ru$ RewriteRule ^/?$ "http\:\/\/www\.handi\-craft\.ru" [R=301,L]
Вряд ли в ЧПУ проблема - крутите код, организуйте дебаггинг, отслеживайте. По Вашему коду ничего не понятно, да и разбираться лень. Может, кому-то и не лень. [/quote]
Во скажите пожалуйста... Get передает через url на сколько я знаю. Если стоит ЧПУ, то url меняется? Тоесть вместо index.php?id=1121 он выдает index.php/id/1121 , и соответсвенно параметр id = 1121 не передается... Может можно загнать id=1121 в переменную?
Если настроен ЧПУ - урл превращается в удобочитаемый, если он при этом настроен по-человечески, то и не гробит query. Можно и в переменную загнать - только зачем извращаться?
Ну вообщем то проблема в том что не передается параметр. В принципе я другого обьяснения не нахожу. В базу лезем выбирая то что находится под id товара, а id товара передается GET, точнее он не передается...
Пробовал выводить echo $_GET['products_id']; Пусто. Поэтому and p.products_id = '".(int)$_GET['products_id']. Не находит в базе данных.
Подскажите как сделать что бы ссылку не коверкал?! ask_a_question.php?products_id=10031 Как без ЧПУ ask_a_question.php/products_id=10031 ЧПУ А то не могу понять как это работает(( RewriteEngine On RewriteBase / RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L] RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L] RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L] RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L] RewriteRule ^(product_info|index|shop_content|news|faq|articles|article_info).php(.*)$ redirector.php [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.php|\.js$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*).html(.*)$ manager.php [L]