kedar
26.11.2013, 13:40:44
Witam.
Zrobiłem "koszyk" na stronie. Produkty ładnie się dodają i wyświetla mi się lista zakupionych produktów, ilość, cena itd.
Jednak mam problem jak wysłać teraz ten "koszyk" na maila? Próbowałem przez formularz kontaktowy ale wysyła jakieś bzdury - dokłądnie ID i ILOŚĆ ale tylko jednego produktu. "Koszyk" opiera się na ciasteczkach. Pragnę dodać, że jestem samoukiem jeśli chodzi o php.
Z góry dziękuję za pomoc.
nospor
26.11.2013, 13:47:10
Cytat
WYSŁANIE ZAMÓWIENIA NA MAIL
Nie krzycz..... nikt tu gluchy nie jest.
Cytat
Próbowałem przez formularz kontaktowy ale wysyła jakieś bzdury - dokłądnie ID i ILOŚĆ ale tylko jednego produktu.
No to moze bys nas uraczyl swoim kodem?? Skad niby mamy wiedziec co zrobiles źle? Wrozek u nas rowniez nie ma.
xavierek
26.11.2013, 13:53:01
nie chce być nie miły ale fukcja do wysylania maila jest wbudowana w php

wystarczy wygenerować tresc
http://php.net/manual/en/function.mail.phpa co do generowanie tresci to juz raczej nie ma problemu wyswietlić araya
kedar
26.11.2013, 13:56:53
Przepraszam za "krzyk". Taki głupi nawyk pisania tytułów drukowanymi.
Oto cały kod podstrony:
<?php include $_SERVER['DOCUMENT_ROOT'].'//menu.php'; ?>
<h2>ZAMÓWIENIE</h2>
<?php
{
////////// USTAWIENIA //////////
$email = 'XXXXXXXXXXX@XXX.XX';
$subject = 'ZAMÓWIENIE';
$error = 'Wystąpił błąd podczas wysyłania zamówienia';
$charset = 'iso-8859-2';
//////////////////////////////
$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
$body = '';
foreach ($_POST as $name => $value)
{
{
for ($i = 0; $i < count($value); $i++) {
}
}
}
}
else
{
?>
<form action="?" method="post">
<div style=" vertical-align: top;">
<?
$koszyk=$_COOKIE["koszyk"];
$id=$_GET["id"];
$ile=$_GET["ile"];
function dodaj($koszyk,$id,$ile) {
for ($i=0;$i<count($zakupy)-1;$i++) {
if ($p[0]==$id) {
if (isset($ile)) $p[1
]=$ile; else $p[1]++;
$jest=true;
}
if ($p[1]>0) $nowy .= "$p[0]#$p[1]|";
}
if (!$jest) $nowy .= "$id#1|";
return $nowy;
}
if ($id<>"") {
$koszyk = dodaj($koszyk,$id,$ile);
header("Location: koszyk.php"); }
?>
<?php
include("//PRODUKT/baza danych.html");
?>
<div style=" text-align: right;">
<?php
?>
</div>
<br /><br />
<center>
<b>ZAMÓWIENIE</b>
</center>
<br />
<?
<td width=500px>NAZWA</td>
<td width=50px>OPAK.</td>
<td width=100px>CENA/SZT</td>
<td width=100px>ILOŚĆ</td>
<td width=50px> </td>";
for ($i=0;$i<count($zakupy)-1;$i++) {
$result = mysql_query("SELECT * FROM CENNIK WHERE ID = ' $p[0]
';")
$result = mysql_query("SELECT * FROM CENNIK WHERE ID = ' $p[0]
';")
$result = mysql_query("SELECT * FROM CENNIK WHERE ID = ' $p[0]
';")
echo "<td><form action=\"koszyk.php\" action=\"get\" style=\"display:inline;\"> <input type=\"hidden\" name=\"id\" value=\"$p[0]\">
<input type=\"text\" name=\"ile\" value=\"$p[1]\" style=\"width:30px;\">
<input type=\"submit\" value=\" zmień \" style=\"70px;\"></form></td>";
echo "<td><form action=\"koszyk.php\" action=\"get\" style=\"display:inline;\"> <input type=\"hidden\" name=\"id\" value=\"$p[0]\">
<input type=\"hidden\" name=\"ile\" value=\"0\">
<input type=\"submit\" value=\" skasuj \" style=\"80px;\"></form></td>";
}
?>
<br />
<br /><input type="submit" value="WYŚLIJ ZAMÓWIENIE" />
<br />Wysłanie zamówienia jest równoznaczne z akceptacją <a href="regulamin.php"><b><u>regulaminu</u></b></a>.
<br />
<br />
<br />
<br />
</div>
</form>
<?php
}
?>
<br />
<br />
<?php include $_SERVER['DOCUMENT_ROOT'].'//stopka.php'; ?>
xavierek
26.11.2013, 14:04:54
daj to w tagach [php]
jak zamówienie przechowujesz w ciasteczkach to czemu szukasz tego w poscie ? czy ja cos zle rozumiem z tego kodu
kedar
26.11.2013, 14:06:53
Część jest w ciasteczkach tzn "id" i "ilość". Reszta (nazwa, opkaowanie, cena) pobierana jest z bazy.
xavierek
26.11.2013, 14:11:25
napisz najpierw fukcje co z ciasteczek wygeneruje tablice array(array(id,ilosc)) potem na whilu dla kazdego z arraya wyciagnij sobie opakowanie itp najlepiej tworzyć array(array(id,ilosc,opakowamnie,bla bla) potem to mozesz ladnie wyswietlic
nie wiem czy rozwiazanie koszyka na ciasteczkach jest dobre osobiscie użył bym tablicy mysql typu MEMORY i przechowywal przy zamowieniu odrazu wszystko tam zeby sie potem nie meczyc
kedar
26.11.2013, 14:17:16
Trochę się męczyłem żeby w ogóle zrobić ten koszyk. Poradziłem sobie tylko z "ciasteczkami". Nie znam innego sposobu. Masz na pewno rację, że lepiej wszystko trzymać w mysql. Ale nie mam pojęcia jak to zrobić. Zaraz poczytam więcej o MEMORY. Dzięki za podpowiedź.
xavierek
26.11.2013, 14:21:49
memory to baza oparta na ramie ale jak serwer czesto pada to zostaje ci myisam
sklep to pozadna sprawa musi być bezpieczny zacznij sobie od poczytania o classach i zrob klase obsluga koszyka czy cos w tym rodzaju
bo obawiam się ze to co teraz masz trafi na jednego cwanika i ci to rozwali
najlepiej pobaw sie kogotwym magento polecam sam stawialem kilka sklepow na tym jest wszystko co potrzeba
-kedar-
26.11.2013, 17:52:28
Nie znalazłem nic co mogłoby mi pomóc.
Może inaczej sformułuję pytanie.
Po wyświetleniu wyniku z mysql (czyli np lista produktów) jak mogę wybrać interesujące mnie produkty do osobnego formularza, strony czy innego pliku żeby powstało "zamówienie"?
Tu nie chodzi o jakiś sklep na dużą skalę. Tu chodzi bardziej o satysfakcję ze swojej pracy. Staram się jak najwięcej sam zrobić ale nieraz napotykam problem, z którym nie daję sobie rady

dlatego zwróciłem się o pomoc do Was.
Turson
26.11.2013, 18:04:09
Cytat(-kedar- @ 26.11.2013, 17:52:28 )

Po wyświetleniu wyniku z mysql (czyli np lista produktów) jak mogę wybrać interesujące mnie produkty do osobnego formularza, strony czy innego pliku żeby powstało "zamówienie"?
Nie wiem czy dobrze rozumiem, ale chodzi o to, żeby dodanie do koszyka dodało ten konkretny produkt, gdzie kliknęliśmy? W takim razie ukryty input z np. id przedmiotu.
kedar
26.11.2013, 18:17:27
Tak, dokładnie.
Ok. Ukryty Input z ID porzedmiotu ale gdzie on "się zapisze"?
To chyba byłoby dobre rozwiązanie przy wyborze z jednej podstrony. Jak przejdziemy do np. innej kategorii wynik się "wyzeruje".
Najlepiej byłoby "nasz wybór" żeby zapisał się np. w pliku koszyk.php a my kolejne pozycje z kolejnych podstron dodawali do wybranych wcześniej.
Turson
26.11.2013, 20:21:39
Jak koszyk ma się wyzerować przy przejściu na inną podstronę?
Masz tak
//pętla wyświetlająca produkty z bazy
<form action="" method="post">
Produkt 1 <input type="hidden" name="id" value="$row['id']"> <input type="submit" value="Dodaj do koszyka" name="sent"> //każde id jest inne
Produkt 2 <input type="hidden" name="id" value="$row['id']"> <input type="submit" value="Dodaj do koszyka" name="sent">
Produkt 3 <input type="hidden" name="id" value="$row['id']"> <input type="submit" value="Dodaj do koszyka" name="sent">
//dodawanie do koszyka
if(isset($_POST["sent"])){ //dodaj do koszyka produkt $_POST["id"]
}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.