Перейти к содержанию
Форум поддержки пользователей VamShop

Форма быстрого заказа


Евгений Битюцкий

Рекомендуемые сообщения

Евгений Битюцкий

Решил сделать на странице товара упрощенную форму быстрого заказа. Вот ее код (вставляю его в 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]<?php
if (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 данная форма функционирует отлично, почему не работает здесь? Подскажите новичку?

Ссылка на сообщение
Поделиться на другие сайты

Так нужно добавлять проверки все эти, заполнено поле или нет.

Если поле формы, то нужно писать не:


$name
[/code] А:
[code]
$_POST['name']

Такой фокус с необъявленной переменной $name будет работать только если у Вас в настройках php включена опция register_globals, а она везде практически выключена.

Используйте глобальный массив (или как там он правильно называется) $_POST, для получения информации о введённых данных в форму методом POST.

Ссылка на сообщение
Поделиться на другие сайты
Евгений Битюцкий

Спасибо за подсказку . Еще маленький вопросик, результат у меня выдается знаками вопроса, где нужно прописать кодировку?

Ссылка на сообщение
Поделиться на другие сайты
Евгений Битюцкий

С этим тоже спасибо, вот еще какая штука... Не передаются вот эти данные:

<input type="hidden" name="product" value="{$PRODUCTS_NAME}">
      <input type="hidden" name="cena" value="{$PRODUCTS_PRICE}">[/code]

Можно ли в этом случае использовать метки? Если нет, то каким образом можно  сделать чтобы эти значения (название и цена товара) передавались вместе со всеми данными?

Ссылка на сообщение
Поделиться на другие сайты

Метки в html шаблоне можно использовать, если в html шаблоне используются и на нужно странице, то метки работает.

Можно просто эти hidden поля вставлены после закрытой формы /form.

Ссылка на сообщение
Поделиться на другие сайты
Евгений Битюцкий

Еще вопрос по форме быстрого заказа:

В каком файле/файлах можно посмотреть код, для добавления данных в базу?

Мне необходимо данные формы добавлять в общую базу, чтобы в админке высвечивался заказ?

У формы следующие данные: ФИО, Телефон, Адрес необходимо чтобы они добавлялись в общую базу заказов. Подскажите где можно подсмотреть этот код? Спасибо

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...