Евгений Битюцкий 0 Опубликовано 24 февраля, 2010 Жалоба Share Опубликовано 24 февраля, 2010 Решил сделать на странице товара упрощенную форму быстрого заказа. Вот ее код (вставляю его в product_info_v1.html): <form action="fastbuy.php" method="post" target="_blank"> <input type="hidden" name="product" value="{$PRODUCTS_NAME}"> <input type="hidden" name="cena" value="{$PRODUCTS_PRICE}"> <table> <tr><td colspan="2"> <table border="0" cellspacing="2" cellpadding="2"> <tr> <td><h1><a name="fast"></a>{#text_buy#} {$PRODUCTS_NAME} - {#text_noreg#}</h1></td> </tr> </table> <div align="center"><strong>{#just_buy#}</strong></div></td> </tr> <tr><td><table border="0" cellspacing="2" cellpadding="2"> <tr><td><img src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME}" /></td> </tr> <tr> <td valign="top" class="infoboxContents"><strong>{$PRODUCTS_NAME}</strong></td> </tr> <tr> <td valign="top" class="infoboxContents">{$PRODUCTS_PRICE}</span></td> </tr> </table></td> <td align="right"> <table border="0" cellspacing="2" cellpadding="2"> <tr><td class="inputRequirement" colspan="2">{#obyaz#}</td></tr> <tr><td class="main" width="200">{#phone#}:</td> <td ><input type="text" name="phone" /></td> </tr> <tr> <td class="main">{#fio#}<span class="inputRequirement">*</span>:</td> <td><input type="text" name="name"></td></tr> <tr> <td class="main">Email<span class="inputRequirement">*</span>:</td> <td><input type="text" name="email"></td></tr> <tr> <tr> <td class="main">{#adres#}<span class="inputRequirement">*</span>:</td> <td class="main"><textarea name="addres"></textarea></td></tr> <tr> <td class="terms" colspan="2"><a href="shop_content.php?coID=1" onclick="window.open(this.href,this.target,'width=800,height=600,'+'location=no,toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=yes');return false;">{#opldost#}</a></td> </tr> <tr><td colspan="4" class="main" align="center"><input type="image" src="templates/vamshop/buttons/russian/button_buy_now.gif" border="0" alt="Купить немедлено!" title="{#buynow#} " align="middle"> <br> <strong>{#after#}</strong></td> </tr> </table> </td></tr> </table> </form>[/code] Отправка данных идет в файл fastbuy.php со след кодом: [code]<?phpif (isset ($name)){$name = substr($name,2,100); //Не может быть более 100 символовif (empty($name)){echo "<center><b>Не указаны ФИО!<p>";echo "Нажмите назад в Вашем браузере, чтобы вернуться и правильно заполнить форму.";exit;}}else{$name = "не указано";}if (isset ($email)){$email = substr($email,0,60); //Не может быть более 60 символовif (empty($email)){echo "<center><b>Не указан e-mail!<p>";echo "Нажмите назад в Вашем браузере, чтобы вернуться и правильно заполнить форму.";exit;}}else{$email = "не указано";}if (isset ($addres)){$addres = substr($addres,0,1000); //Не может быть более 1000 символовif (empty($addres)){echo "<center><b>Вы забыли указать адрес!<p>";echo "Нажмите назад в Вашем браузере, чтобы вернуться и правильно заполнить форму.";exit;}}else{$addres = "не указано";}$i = "не указано";if ($phone == $i AND $name == $i AND $email == $i AND $addres == $i){echo "Ошибка! Скрипту не были переданы параметры";exit;}$headers = "Content-type: text/html; charset=windows-1251 \r\n";$to = "tut@email.ru"; /*УКАЗАТЬ СВОЙ АДРЕС!*/$subject = "Быстрый заказ";$message = "Товар: $product, <br>Цена: $cena,<br><br> Телефон: $phone, <br>ФИО: $name, <br>E-Mail: $email, <br>Адрес доставки: $addres, <br>IP-адрес:$REMOTE_ADDR";mail ($to,$subject,$message,$headers) or print "Не могу отправить письмо!";echo "<center><b>Спасибо за заказ, мы свяжемся с Вами в ближайшее время<br><a href=index.php>Нажмите</a>, чтобы вернуться на главную страницу";exit;?> Так вот проблема следующая: Когда жму купить с незаполнеными полями, почему-то сразу выполняется вот это echo "<center><b>Спасибо за заказ, мы свяжемся с Вами в ближайшее время<br><a href=index.php>Нажмите</a>, чтобы вернуться на главную страницу"; Т.е. не работает проверка на заполнение полей! А так же не отсылаются данные, даже если поля заполнены! :( Возможно я где-то не так делаю, это вообще моя первая работа в программировании, но на oscommerse данная форма функционирует отлично, почему не работает здесь? Подскажите новичку? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 февраля, 2010 Жалоба Share Опубликовано 24 февраля, 2010 Так нужно добавлять проверки все эти, заполнено поле или нет. Если поле формы, то нужно писать не: $name[/code] А: [code]$_POST['name'] Такой фокус с необъявленной переменной $name будет работать только если у Вас в настройках php включена опция register_globals, а она везде практически выключена. Используйте глобальный массив (или как там он правильно называется) $_POST, для получения информации о введённых данных в форму методом POST. Ссылка на сообщение Поделиться на другие сайты
Евгений Битюцкий 0 Опубликовано 24 февраля, 2010 Автор Жалоба Share Опубликовано 24 февраля, 2010 Спасибо за подсказку . Еще маленький вопросик, результат у меня выдается знаками вопроса, где нужно прописать кодировку? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 февраля, 2010 Жалоба Share Опубликовано 24 февраля, 2010 Наверное сохранили файлы не в той кодировке. Нужно в utf8 сохранять. Ссылка на сообщение Поделиться на другие сайты
Евгений Битюцкий 0 Опубликовано 24 февраля, 2010 Автор Жалоба Share Опубликовано 24 февраля, 2010 С этим тоже спасибо, вот еще какая штука... Не передаются вот эти данные: <input type="hidden" name="product" value="{$PRODUCTS_NAME}"> <input type="hidden" name="cena" value="{$PRODUCTS_PRICE}">[/code]Можно ли в этом случае использовать метки? Если нет, то каким образом можно сделать чтобы эти значения (название и цена товара) передавались вместе со всеми данными? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 февраля, 2010 Жалоба Share Опубликовано 24 февраля, 2010 Метки в html шаблоне можно использовать, если в html шаблоне используются и на нужно странице, то метки работает. Можно просто эти hidden поля вставлены после закрытой формы /form. Ссылка на сообщение Поделиться на другие сайты
Евгений Битюцкий 0 Опубликовано 4 марта, 2010 Автор Жалоба Share Опубликовано 4 марта, 2010 Еще вопрос по форме быстрого заказа: В каком файле/файлах можно посмотреть код, для добавления данных в базу? Мне необходимо данные формы добавлять в общую базу, чтобы в админке высвечивался заказ? У формы следующие данные: ФИО, Телефон, Адрес необходимо чтобы они добавлялись в общую базу заказов. Подскажите где можно подсмотреть этот код? Спасибо Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 4 марта, 2010 Жалоба Share Опубликовано 4 марта, 2010 В /checkout_process.php файле происходит запись заказа в базу, смотреть наверное там нужно. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения