<?php
session_start();
$_SESSION['cart'][$_POST['code']] = $_POST['qty'];
foreach ($_SESSION['cart'] as $code => $qty) {
echo "Артикул: $code Количество: $qty";
}
?>
<form action="<? echo $PHP_SELF?>" method="POST">
Товар 1<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="001" />
<input name="submit" type="submit" value="Добавить" />
</form>
<form action="<? echo $PHP_SELF?>" method="POST">
Товар 2<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="002" />
<input name="submit" type="submit" value="Добавить" />
</form>
Дело вот в чем:
1) Добавляю сколько-нибудь штук товара 1 - Все замечательно: видно артикул товара и добавленное количество.
2) Добавляю сколько-нибудь штук товара 2 - И вот тут то начинается бяка: видно только артикул и добавленное количество товара 2, но исчезли данные по товару 1.
Как сделать так что бы при добавлении товара 2, данные о нем добавлялись ниже, а не заменяли уже имеющиеся?
Спустя 27 минут, 56 секунд (18.01.2009 - 22:28) sergeiss написал(а):
Я сначала написал ответ, потом его переделываю
У тебя же 2 формы!!! Поэтому, когда ты выбираешь данные в форме 2, то данные из формы 1 никуда не передаются. И наоборот.
В случае одной формы (наиболее разумный тут вариант), должны быть разные имена. А у тебя для разных товаров используются одни и те же имена: code, submit (это в случае, если ты объединишь их в одну форму). Последнее из введенных с одинаковым именем "перебивает" все ранее введенные. Т.е., если бы у тебя было 10 input с именем code, и во все были бы введены данные, то только последний реально работал бы.
Вывод:
1. Делай одну форму.
2. Делай уникальные имена и анализируй, что же было выбрано.

В случае одной формы (наиболее разумный тут вариант), должны быть разные имена. А у тебя для разных товаров используются одни и те же имена: code, submit (это в случае, если ты объединишь их в одну форму). Последнее из введенных с одинаковым именем "перебивает" все ранее введенные. Т.е., если бы у тебя было 10 input с именем code, и во все были бы введены данные, то только последний реально работал бы.
Вывод:
1. Делай одну форму.
2. Делай уникальные имена и анализируй, что же было выбрано.
Спустя 11 минут, 50 секунд (18.01.2009 - 22:40) Adamant написал(а):
sergeiss а вот и нет. Когда данные приходят из первой формы создается $_SESSION['cart']['001']. Когда из второй создается $_SESSION['cart']['002']. И Данные ($_SESSION['cart']['001'] и $_SESSION['cart']['002']) друг друга никак не затирают и не исчезают. У меня все прекрасно работает (ради интереса проверил на локалке и у себя на сайте):
PHP |
<?php |
Спустя 2 часа, 9 минут, 56 секунд (19.01.2009 - 00:50) freed-master написал(а):
Adamant, огромнейшая благодарность. Наконец-то можно двигаться дальше.
Пока вроде бы все отлично, кроме одной, даже не знаю как назвать, короче вот:
При просмотре корзины отображается следующее:
Артикул: Количество:
Артикул: 001 Количество: 12
Артикул: 002 Количество: 25
Артикул: 003 Количество: 34
Как можно избавиться от первой строки с пустыми значаниями?
Пока вроде бы все отлично, кроме одной, даже не знаю как назвать, короче вот:
При просмотре корзины отображается следующее:
Артикул: Количество:
Артикул: 001 Количество: 12
Артикул: 002 Количество: 25
Артикул: 003 Количество: 34
Как можно избавиться от первой строки с пустыми значаниями?
Спустя 10 минут, 36 секунд (19.01.2009 - 01:01) freed-master написал(а):
Немного подумал, решение само пришло, аж сам удивился как все просто:
<?php
session_start();
$_SESSION['cart'][$_POST['code']] = $_POST['qty'];
?>
<table>
<tr><td>Артикул</td><td>Количество</td></tr>
<?php
foreach ($_SESSION['cart'] as $code => $qty) {
echo "<tr><td>$code</td><td>$qty</td></tr>\n";
}
?>
</table>
<form method="POST">Товар 1
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="001" />
<input name="submit" type="submit" value="Добавить" />
</form>
<form method="POST">Товар 2
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="002" />
<input name="submit" type="submit" value="Добавить" />
</form>
<?php
session_start();
$_SESSION['cart'][$_POST['code']] = $_POST['qty'];
?>
<table>
<tr><td>Артикул</td><td>Количество</td></tr>
<?php
foreach ($_SESSION['cart'] as $code => $qty) {
echo "<tr><td>$code</td><td>$qty</td></tr>\n";
}
?>
</table>
<form method="POST">Товар 1
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="001" />
<input name="submit" type="submit" value="Добавить" />
</form>
<form method="POST">Товар 2
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="002" />
<input name="submit" type="submit" value="Добавить" />
</form>
Спустя 38 минут, 47 секунд (19.01.2009 - 01:39) freed-master написал(а):
Вот какой вопросик:
Как вывести сумму всех товаров корзины в нужном месте?
Как вывести сумму всех товаров корзины в нужном месте?
Спустя 6 часов, 56 минут, 9 секунд (19.01.2009 - 08:36) Sephiroth_Lukaw написал(а):
Спустя 5 часов, 10 минут, 25 секунд (19.01.2009 - 13:46) freed-master написал(а):
Sephiroth_Lukaw, пасиб огромное! Все получилось:
<?php
session_start();
$_SESSION['cart'][$_POST['code']] = $_POST['qty'];
$a = $_SESSION['cart'];
?>
<table>
<tr><td>Артикул</td><td>Количество</td></tr>
<?php
foreach ($_SESSION['cart'] as $code => $qty) {
echo "<tr><td>$code</td><td>$qty</td></tr>\n";
}
?>
<tr><td colspan="2"><?php echo "товаров на сумму: " .array_sum($a); ?></td></tr>
</table>
<form method="POST">Товар 1
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="001" />
<input name="submit" type="submit" value="Добавить" />
</form>
<form method="POST">Товар 2
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="002" />
<input name="submit" type="submit" value="Добавить" />
</form>
Тема на этом не закрывается. Вопросы еще возможно будут.
Если нет, то скоро выложу код готового скрипта, с возможностью настойки под любой дизайн. Быть может кому то еще пригодится!
<?php
session_start();
$_SESSION['cart'][$_POST['code']] = $_POST['qty'];
$a = $_SESSION['cart'];
?>
<table>
<tr><td>Артикул</td><td>Количество</td></tr>
<?php
foreach ($_SESSION['cart'] as $code => $qty) {
echo "<tr><td>$code</td><td>$qty</td></tr>\n";
}
?>
<tr><td colspan="2"><?php echo "товаров на сумму: " .array_sum($a); ?></td></tr>
</table>
<form method="POST">Товар 1
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="001" />
<input name="submit" type="submit" value="Добавить" />
</form>
<form method="POST">Товар 2
<input type="text" name="qty" />шт.
<input type="hidden" name="code" value="002" />
<input name="submit" type="submit" value="Добавить" />
</form>
Тема на этом не закрывается. Вопросы еще возможно будут.
Если нет, то скоро выложу код готового скрипта, с возможностью настойки под любой дизайн. Быть может кому то еще пригодится!
Спустя 4 часа, 58 минут, 43 секунды (19.01.2009 - 18:45) freed-master написал(а):
Как и предполагалось вопросы не закончились. Столкнулся вот с чем:
Нужно передавать в $_SESSION не только Артикул, но и Название товара.
Т.е. получается такая форма:
Нужно передавать в $_SESSION не только Артикул, но и Название товара.
Т.е. получается такая форма:
HTML |
<form method="POST"> <input type="text" name="qty" /> <input type="hidden" name="code" value="001" /> <!-- Артикул --> <input type="hidden" name="ware" value="Ручка" /> <!-- Название --> <input name="submit" type="submit" value="Добавить" /> </form> |
Но вот никак не разбирусь как дополнить строку:
PHP |
$_SESSION['cart'][$_POST['code']] = $_POST['qty']; |
Спустя 36 минут, 25 секунд (19.01.2009 - 19:21) Adamant написал(а):
PHP |
<?php |
Не пойму, почему вы так упорно избегаете проверки существования переменных? У вас либо отключено в php.ini вывод ошибок, или вас устраивают сообщения в браузере например такие
Notice: Undefined variable: a in C:\wamp\www\temp\test.php on line 25
Для отладки советую в php.ini включить все ошибки. error_reporting = E_ALL
Или же в начале каждого скрипта писать - error_reporting(E_ALL);, что на мой взгляд не очень удобно.
В противном случаю вы не будете знать в чем же причина когда скрипт будет неправильно работать или вообще отказываться работать.
Спустя 58 минут, 34 секунды (19.01.2009 - 20:20) freed-master написал(а):
У меня в пхп.ини строка: "error_reporting = E_ALL & ~E_NOTICE" и при этом никаких ошибок не вылазело.
Не меняя эту строку, использовал приведенный выше код и теперь вылазиет это:
Warning: array_sum() [function.array-sum]: The argument should be an array in Z:\home\localhost\www\000.php on line 34
на сколько я понял не определена $a или я плохо понял?
Не меняя эту строку, использовал приведенный выше код и теперь вылазиет это:
Warning: array_sum() [function.array-sum]: The argument should be an array in Z:\home\localhost\www\000.php on line 34
на сколько я понял не определена $a или я плохо понял?
Спустя 48 минут, 53 секунды (19.01.2009 - 21:09) Adamant написал(а):
Пардон, не заметил в вашем скрипте этой строчки
$a = $_SESSION['cart'];
И в предыдущем своем посте исправил код.
Но в таком случае, вам следовало бы написать не "товаров на сумму: ", а общее количество товаров: , потому как у вас подсчитывается их общее число, а не цена, о которой в скрипте просто нигде не упоминается!
Если же вы все таки хотите выводить именно сумму, тогда вопрос, а откуда будут браться цены на товар, нужно его будет суммировать и тогда только выводить на печать. Давайте подумаем и постараемся все это реализовать, сначала сами попытайтесь это сделать, а если будут вопросы, с удовольствие вам здесь помогут.
$a = $_SESSION['cart'];
И в предыдущем своем посте исправил код.
Но в таком случае, вам следовало бы написать не "товаров на сумму: ", а общее количество товаров: , потому как у вас подсчитывается их общее число, а не цена, о которой в скрипте просто нигде не упоминается!
Если же вы все таки хотите выводить именно сумму, тогда вопрос, а откуда будут браться цены на товар, нужно его будет суммировать и тогда только выводить на печать. Давайте подумаем и постараемся все это реализовать, сначала сами попытайтесь это сделать, а если будут вопросы, с удовольствие вам здесь помогут.

Спустя 1 час, 35 минут, 19 секунд (19.01.2009 - 22:44) freed-master написал(а):
Нет все правильно, просто опечатка. Мне нужно именно общее количество товаров.
Но почему то мой браузер все равно выдает ту же ошибку.
А после добавления товара она исчезает.
Но почему то мой браузер все равно выдает ту же ошибку.
А после добавления товара она исчезает.
Спустя 7 часов, 40 минут, 55 секунд (20.01.2009 - 06:25) Sephiroth_Lukaw написал(а):
Цитата ("Adamant") |
if (isset($_POST['qty'])) { $_SESSION['cart'][$_POST['code']] = $_POST['qty']; $_SESSION['ware'][$_POST['code']] = $_POST['ware']; $a = $_SESSION['cart']; } |
PHP |
if (isset($_POST['qty'])) { |
Спустя 2 часа, 59 минут, 5 секунд (20.01.2009 - 09:24) freed-master написал(а):
Sephiroth_Lukaw, Благодарю - все супер!
Спустя 9 часов, 15 минут, 6 секунд (20.01.2009 - 18:39) freed-master написал(а):
А можно ли в скрипт добавить какой-то счетчик для генерации номера заказа?
Спустя 1 час, 44 минуты, 44 секунды (20.01.2009 - 20:24) Adamant написал(а):
Цитата (freed-master @ 20.01.2009 - 22:39) |
А можно ли в скрипт добавить какой-то счетчик для генерации номера заказа? |
Что должен счетчик считать?
Каким образом генератор должен генерировать номера заказа.
Номер заказа - порядковый или...?
Вы бы лучше более конкретно объяснили что хотите получить в результате. Лично я вашу мысль не уловил.

Спустя 1 час, 22 минуты, 38 секунд (20.01.2009 - 21:46) freed-master написал(а):
Ну, корзина уже есть. Данные из неё выводятся на страницу оформления заказа в виде таблицы. Теперь нужно присвоить этому заказу порядковый номер.
Попутно ещё вопросик: ниже этой таблицы есть форма обратной связи, данные с её полей отправляются на мыло. Как прикрепить к этой форме данные таблицы, что б они тоже высылались на мыло?
Попутно ещё вопросик: ниже этой таблицы есть форма обратной связи, данные с её полей отправляются на мыло. Как прикрепить к этой форме данные таблицы, что б они тоже высылались на мыло?
Спустя 2 часа, 33 минуты, 36 секунд (21.01.2009 - 00:20) Adamant написал(а):
PHP |
<?php |
Спустя 1 день, 20 часов, 50 минут, 12 секунд (22.01.2009 - 21:10) Guest написал(а):
Adamant, спасибочки. Щас чуток занят, на днях обязательно гляну код и напишу по этому оводу.
Спустя 14 часов, 42 минуты, 14 секунд (23.01.2009 - 11:52) Guest написал(а):
Почему то мой браузер выдает ошибку:
Parse error: syntax error, unexpected ';' in Z:\home\localhost\www\cart2.php on line 81
Странно...
Parse error: syntax error, unexpected ';' in Z:\home\localhost\www\cart2.php on line 81
Странно...
Спустя 9 часов, 33 минуты, 23 секунды (23.01.2009 - 21:26) Adamant написал(а):
Все правильно, я же вам не полный код выложил! Вот здесь вы должны прописать сами, я же не знаю какие данные у вас в форме:
Цитата (freed-master @ 21.01.2009 - 01:46) |
форма обратной связи, данные с её полей отправляются на мыло |
Вот эти самые данные плюс данные сессии вам и нужно проверить.
PHP |
if (//делаем проверку входящих данных) { |
И еще я писал:
HTML |
<h4>Форма обратной связи, данные с её полей отправляются на мыло</h4> <!-- Желательно сделать проверку данных формы с помощью jаvаscript --> |
Тоже нужно сделать. Попытайтесь сами. Это намного проще сделать чем вы думаете. Поищите в инете на эту тему. Конечно для вас намного проще будет выложить сюда полную форму обратной связи и вам уже выложат готовый код, но так у вас не останется в голове почти ничего, нужно учиться самому решать возникающие сложности, т.к. поверьте в будущем будут возникать ситуации намного сложнее.
Спустя 26 минут, 58 секунд (23.01.2009 - 21:53) freed-master написал(а):
Форма обратной связи у меня есть, я ее уже настроил. А вот насчет вышеупомянутой ошибки - моя вина, просто я еще не разбирал код (со временем напряг) а просто скопировал, вставил и посмотрел. Надеюсь ни сегодня - завтра разберусь.
Спустя 19 часов, 13 минут, 51 секунда (24.01.2009 - 17:07) freed-master написал(а):
Что-то я запутался.
1)
1)
PHP |
$order_number_file = 'Файл с числом произведенных регистраций'; |
- что это за файл? Ведь запись ведется в сессии?
2)
2)
PHP |
<h4>Форма обратной связи, данные с её полей отправляются на мыло</h4> |
Т.е. здесь скрипт формы без полей для заполнения? У меня используется скрипт с полями такого типа:
PHP |
<?php |
Спустя 4 часа, 44 минуты, 25 секунд (24.01.2009 - 21:51) Adamant написал(а):
Вам нужно создать "секретную" директорию и в ней файл в который нужно сразу в начале записать цифру 0 - это количество ваших принятых заказов, в скрипте я написал
Код |
// файл для записи количества произведенных заказов $order_number_file = 'secret/order_number_file'; |
Название папки и файла можете обозвать и по другому. И нужно в эту "секретную" директорию вставить следующий файл (чтобы запретить доступ к папке из браузера)
.htaccess
Код |
Order Deny, Allow Deny from all |
Хочу обратить внимание на вашу главную ошибку, вы по привычке "принимаете" данные в скрипт не через суперглобальные массивы ($_POST), а просто как например $email. Избавляйтесь от этой привычки.
http://phpfaq.ru/globals
В директорию (где находится директория secret) вставьте этот скрипт
PHP |
<?php |
Спустя 16 часов, 43 минуты, 53 секунды (25.01.2009 - 14:35) freed-master написал(а):
Создаю "секретную" директорию в ней .htaccess с кодом и файл orders.txt со строчкой 0
А браузер пишет ошибка в строке
А браузер пишет ошибка в строке
PHP |
// считываем число произведенных заказов из файла |
Спустя 1 час, 24 минуты, 20 секунд (25.01.2009 - 15:59) twin написал(а):
Вот тут исправьте
PHP |
// файл для записи количества произведенных заказов |
Спустя 1 минута, 43 секунды (25.01.2009 - 16:01) Adamant написал(а):
freed-master Если вы переобозвали сам файл в секретной папке который я в скрипте назвал:
PHP |
// файл для записи количества произведенных заказов |
, вы его в коде скрипта тоже переименовали?
PHP |
// файл для записи количества произведенных заказов |
Спустя 27 минут, 55 секунд (25.01.2009 - 16:29) freed-master написал(а):
Конечно, в коде я тоже исправил. Но в ответ:
Fatal error: Call to undefined function: file_put_contents() in ....../cart.php on line 159
Fatal error: Call to undefined function: file_put_contents() in ....../cart.php on line 159
Спустя 43 минуты, 31 секунда (25.01.2009 - 17:12) Adamant написал(а):
freed-master У вас PHP 4. Поэтому эта функция не объявлена (не существует) в 4-ке придется вам ее определить самому
PHP |
if (!function_exists('file_put_contents')) { |
Спустя 4 минуты, 21 секунда (25.01.2009 - 17:17) lawbreaker написал(а):
Зарегись тут и тебе тут скажут
Спустя 8 минут, 46 секунд (25.01.2009 - 17:26) modobaks написал(а):
ты что ли подскажешь?

Спустя 5 минут, 57 секунд (25.01.2009 - 17:31) Adamant написал(а):
Караул!
Дети перешли в спам атаку!!
Уважаемые модераторы у вас "банька" еще случаем не растоплена? Наша "форумная" лялька туда уже просится!


Спустя 12 минут, 48 секунд (25.01.2009 - 17:44) twin написал(а):
А мож батогами?
Да пусть, кому он мешает то, вот если много таких, а этот парень уже за талисман может проканать

Да пусть, кому он мешает то, вот если много таких, а этот парень уже за талисман может проканать

Спустя 10 минут, 19 секунд (25.01.2009 - 17:55) lawbreaker написал(а):
ой сори! забыл! зарегитесь на форуме а не судите его





Спустя 2 часа, 30 минут, 27 секунд (25.01.2009 - 20:25) freed-master написал(а):
Adamant, просто нет слов. Надеюсь я так тоже когда-нибудь буду шарить!
Но попутный вопрос остается в силе, более того выходит на первое место: Как же все-таки добавить в текст письма сам заказ (кто и куда заказал понятно а вот что было заказано)?
Но попутный вопрос остается в силе, более того выходит на первое место: Как же все-таки добавить в текст письма сам заказ (кто и куда заказал понятно а вот что было заказано)?
Спустя 3 часа, 11 минут, 27 секунд (25.01.2009 - 23:36) Adamant написал(а):
freed-master:
PHP |
<?php |
Спустя 12 часов, 47 минут, 5 секунд (26.01.2009 - 12:24) freed-master написал(а):
Кажется все работает и не просто работает а так как надо!
Спустя 39 минут, 35 секунд (26.01.2009 - 13:03) twin написал(а):
Подскажите пожалуйста, никак не могу уловить смысл вот этого:
HTML |
<meta http-equiv="refresh" content="5" url="<?=$_SERVER['PHP_SELF']?>'"> . . . Подождите, сейчас Вы будете перемещены...<br /><br /> |
Для чего так делается?
Спустя 43 минуты, 3 секунды (26.01.2009 - 13:46) freed-master написал(а):
А действительно, зачем это?
Спустя 3 часа, 45 минут, 56 секунд (26.01.2009 - 17:32) freed-master написал(а):
Что-то я запутал свой код теперь сам никак не разберусь. Вот есть страничка оформления заказа (не пугайтесь, там много инклюдов):
PHP |
<?php |
Товары в корзину заносятся с других страниц сайта и здесь выводятся в таблицу. Все вроде хорошо, но после нажатия кнопки "Отправить заявку" он выводит: "Не выбраны товары". Чего я тут напортачил не того?
Спустя 22 часа, 45 минут, 16 секунд (27.01.2009 - 16:17) freed-master написал(а):
Неужели нет шансов?
Спустя 23 часа, 32 минуты, 43 секунды (28.01.2009 - 15:50) freed-master написал(а):
Adamant, куда же вы пропали?
Спустя 20 минут, 59 секунд (28.01.2009 - 16:11) twin написал(а):
Ну подумайте маленько сами, почему такое может произойти? Поставьте себя на место скрипта, наконец. И прикиньте, по какой причине Вы могли бы такое заявить - "Не выбраны товары". Станет ясно, что только по одной причине:
PHP |
if (!$_SESSION['ammount_com']) { |
Перeвести?
if (Если) ! (нет, отрицание) $_SESSION['ammount_com'] (элемент массива $_SESSION) (то) $_SESSION['error'] = (вносим в массив с ошибками фразу "Вы не выбрали ни одного товара")
Что это значит? Значит сессионная переменная $_SESSION['ammount_com'] пуста или не существует. Сделайте так вначале скрипта:
if (Если) ! (нет, отрицание) $_SESSION['ammount_com'] (элемент массива $_SESSION) (то) $_SESSION['error'] = (вносим в массив с ошибками фразу "Вы не выбрали ни одного товара")
Что это значит? Значит сессионная переменная $_SESSION['ammount_com'] пуста или не существует. Сделайте так вначале скрипта:
PHP |
<? |
И посмотрите, есть ли такой элемент и что в нем. Рискну предположить, что на остальных страницах нет session_start();
Спустя 1 час, 53 минуты, 5 секунд (28.01.2009 - 18:04) freed-master написал(а):
Что-то до меня туго доходит. Получается в $_SESSION['ammount_com'] не заносятся товары, хотя они у меня отображаются как занесенные.
В начало каждой страницы инклюдится:
В начало каждой страницы инклюдится:
PHP |
<?php |
Наверно надо в этом коде что-то подправить чтоб товары попадали в $_SESSION['ammount_com']? Но как это сделать?
Спустя 1 день, 25 минут, 28 секунд (29.01.2009 - 18:30) freed-master написал(а):
Да, действительно все не так уж сложно. Всего навсего заменил $_SESSION['ammount_com'] на $_SESSION[cart]!
Но все-таки можно ли обойтись без:
Но все-таки можно ли обойтись без:
HTML |
<meta http-equiv="refresh" content="5" url="<?=$_SERVER['PHP_SELF']?>'"> . . . Подождите, сейчас Вы будете перемещены...<br /><br /> |
Или куда вписать чтоб редиректился на главную страницу?
Спустя 11 минут, 16 секунд (29.01.2009 - 18:41) twin написал(а):
<meta http-equiv="refresh" content="0" url="<?=$_SERVER['PHP_SELF']?>'"> Зачем ждать у моря погоды?
Спустя 1 час, 10 минут, 14 секунд (29.01.2009 - 19:51) freed-master написал(а):
Это понятно, а можно так что бы редирект был после отправки заказа или после выполнения какой нибудь финкции, например отчистка сессий?
Или для этого и предназначено то о чем я спросил в предыдущем вопросе?
Или для этого и предназначено то о чем я спросил в предыдущем вопросе?
Спустя 1 час, 23 минуты, 25 секунд (29.01.2009 - 21:15) twin написал(а):
Спустя 1 час, 21 минута, 24 секунды (29.01.2009 - 22:36) freed-master написал(а):
Отлично, именно то что нужно!
Спустя 1 день, 11 часов, 48 минут, 48 секунд (31.01.2009 - 10:25) Adamant написал(а):
Цитата (twin @ 26.01.2009 - 16:03) | ||
Подскажите пожалуйста, никак не могу уловить смысл вот этого:
Для чего так делается? |
Юзер отправляет заявку заказа и если все прошло успешно (проверка данных пройдена и письмо отправлено) ему выдается информационное окошко об этом + (при желании программиста) номер его заказа.
Конечно вам, уважаемые профи виднее будет, но я, чайник, все таки считаю что юзер должен получить отчет об успешном завершении (оформлении) своего заказа, а не просто редиректить его на страницу заказа без извещения о результате всех манипуляций юзера, который может и не понять, отправил ли он заявку на заказ или нет.
Спустя 4 часа, 23 минуты, 27 секунд (31.01.2009 - 14:48) twin написал(а):
Цитата |
считаю что юзер должен получить отчет об успешном завершении (оформлении) своего заказа, а не просто редиректить его на страницу заказа без извещения о результате всех манипуляций юзера, который может и не понять, отправил ли он заявку на заказ или нет. |
Это правильно, юзер должен получить отчет о проделанной работе. Но зачем его заставлять ждать пять секунд, глядя на непонятную надпись -
Цитата |
Подождите, сейчас Вы будете перемещены... |
Ну устройте ему праздник с салютом и цыганами на странице, куда редерикт, если все удачно... Меня эти "Подождите..." ужасно раздражают к примеру. Это наверное для того, что бы юзер подумал: Оооооо! Работает техника! Только сейчас этим никого не купишь. И без этого нормально все работает, и все это знают...
Спустя 48 минут, 43 секунды (31.01.2009 - 15:37) Adamant написал(а):
Уважаемый twin, вас не раздражает такое же окно (его то я и взял для примера) которое вы уже видели примерно 250 раз после нажатия на кнопку "Отправить" - оставляя сообщение на форуме? И причем заметьте нет:
Цитата ("twin") |
праздник с салютом и цыганами на странице, куда редирект, если все удачно |

Спустя 35 минут, 20 секунд (31.01.2009 - 16:12) twin написал(а):
Очень раздражжает, я и написал в тайне надеясь, что гостеприимные хозяева форума обратят внимание и как то пересмотрят этот момент

Спустя 26 минут, 45 секунд (31.01.2009 - 16:39) Sylex написал(а):

header("Location: $url") конечно
Спустя -1 лет, 11 месяцев, 27 дней, 11 минут, 17 секунд (2.02.2009 - 16:50) freed-master написал(а):
А можно ли сделать так, что б заказ отправлялся в другой кодировке?
У меня на сайте все страницы: windows-1251, а сервер на utf. И когда письмо приходит на сервер отображаются иероглифы.
У меня на сайте все страницы: windows-1251, а сервер на utf. И когда письмо приходит на сервер отображаются иероглифы.
Спустя 1 час, 15 минут, 35 секунд (2.02.2009 - 18:06) twin написал(а):
Сервер не может быть на утф, просто такие настройки. Сделайте файл без названия, одно расширение .htaccess , напишите в него
HTML |
AddDefaultCharset windows-1251 |
и положите в корень. Но это не поможет. Вам нужно отправить заголовок в функции mail
PHP |
$header = "Content-Type: text/html; charset=windows-1251 \r\n"; |
Только это тоже полумера, потому что далеко не все почтовые сервера принимают виндовскую кодировку. И даже кирилицу под utf-8. П этому мой Вам совет - перекодируйте скрипт на utf и почитайте о правилах работы с почтовыми отправлениями. Допустим здесь.
Спустя 2 часа, 58 минут, 55 секунд (2.02.2009 - 21:05) freed-master написал(а):
А вот еще момент. У меня стоит Denwer3_Base_2008-01-13. Все работает хорошо, а в реалии что то не то:
PHP |
if (isset($_SESSION['cart'])) { |
Не выводится название товара из $_SESSION['ware'][$code].
Спустя 13 минут, 38 секунд (2.02.2009 - 21:18) twin написал(а):
А напрямую выводится? Вот так:
PHP |
<? |
Спустя 23 дня, 23 часа, 55 минут, 54 секунды (26.02.2009 - 21:14) freed-master написал(а):
Возникла потребность функции "товаров на сумму", вот что получается:
Код |
<?php session_start(); if (isset($_POST['qty'])) { $_SESSION['cart'][$_POST['code']] = $_POST['qty']; $_SESSION['ware'][$_POST['code']] = $_POST['ware']; $_SESSION['price'][$_POST['code']] = $_POST['price']; } $sum = is_array($_SESSION['cart']) ? $_SESSION['cart'] : array(); $sum_p = is_array($_SESSION['price']) ? $_SESSION['price'] : array(); ... |
Но при таком раскладе, при выводе результата:
Код |
<?php echo "На сумму: " . array_sum($sum_p); ?> |
<?php echo "На сумму: " . array_sum($sum_p); ?>
Подсчитываются только цены разных товаров, без учета их количества. В чем ошибка?
Подсчитываются только цены разных товаров, без учета их количества. В чем ошибка?
Спустя 25 дней, 17 часов, 30 минут, 24 секунды (22.03.2009 - 14:45) freed-master написал(а):
Как можно дословно перевести строку:
Код |
foreach ($_SESSION['cart'] as $code => $qty) |
А именно, что означает "=>" ? - соответствие?
Спустя 24 минуты, 35 секунд (22.03.2009 - 15:09) sergeiss написал(а):
Цитата (freed-master @ 22.03.2009 - 14:45) | ||
Как можно дословно перевести строку:
А именно, что означает "=>" ? - соответствие? |
Из хэлпа, который у меня в подписи:
Цитата |
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement |
Или, говоря по-русски, выбираем последовательно все элементы массива, записывая на каждом шаге текущий ключ в переменную $key, а соответствующую величину в $value.
Причем, если изначально array-expression двумерный массив, то в $value будет записан одномерный массив.
То есть, $value может быть любого типа, а вовсе не обязательно простой переменной.
Спустя 6 минут, 33 секунды (22.03.2009 - 15:16) freed-master написал(а):
Очень Спасибо!!!
_____________
Всем, кто заинтересован, могу помочь начать зарабатывать на forex.
Пишите в личку или на e-mail: flash-dirt@yandex.ru