Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wysyłanie zamówienia na maila
Forum PHP.pl > Forum > Przedszkole
kedar
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
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
nie chce być nie miły ale fukcja do wysylania maila jest wbudowana w php tongue.gif wystarczy wygenerować tresc http://php.net/manual/en/function.mail.php

a co do generowanie tresci to juz raczej nie ma problemu wyswietlić araya
kedar
Przepraszam za "krzyk". Taki głupi nawyk pisania tytułów drukowanymi.

Oto cały kod podstrony:

  1.  
  2. <?php include $_SERVER['DOCUMENT_ROOT'].'//menu.php'; ?>
  3.  
  4.  
  5. <h2>ZAMÓWIENIE</h2>
  6.  
  7. <?php
  8. if (count($_POST))
  9. {
  10. ////////// USTAWIENIA //////////
  11. $email = 'XXXXXXXXXXX@XXX.XX';
  12. $subject = 'ZAMÓWIENIE';
  13. $error = 'Wystąpił błąd podczas wysyłania zamówienia';
  14. $charset = 'iso-8859-2';
  15. //////////////////////////////
  16.  
  17. $head =
  18. "MIME-Version: 1.0\r\n" .
  19. "Content-Type: text/plain; charset=$charset\r\n" .
  20. "Content-Transfer-Encoding: 8bit";
  21. $body = '';
  22. foreach ($_POST as $name => $value)
  23. {
  24. if (is_array($value))
  25. {
  26. for ($i = 0; $i < count($value); $i++)
  27. {
  28. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  29. }
  30. }
  31. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  32. }
  33. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  34. }
  35. else
  36. {
  37. ?>
  38. <form action="?" method="post">
  39. <div style=" vertical-align: top;">
  40.  
  41.  
  42. <?
  43. $koszyk=$_COOKIE["koszyk"];
  44. $id=$_GET["id"];
  45. $ile=$_GET["ile"];
  46. if ($ile<0) unset($ile);
  47.  
  48. function dodaj($koszyk,$id,$ile) {
  49. $zakupy = explode("|",$koszyk);
  50. for ($i=0;$i<count($zakupy)-1;$i++) {
  51. $p = explode("#",$zakupy[$i]);
  52. if ($p[0]==$id) {
  53. if (isset($ile)) $p[1]=$ile;
  54. else $p[1]++;
  55. $jest=true;
  56. }
  57. if ($p[1]>0) $nowy .= "$p[0]#$p[1]|";
  58. }
  59. if (!$jest) $nowy .= "$id#1|";
  60. return $nowy;
  61. }
  62.  
  63. if ($id<>"") {
  64. $koszyk = dodaj($koszyk,$id,$ile);
  65. setcookie("koszyk", $koszyk, 0, "/");
  66. header("Location: koszyk.php");
  67. }
  68. ?>
  69.  
  70. <?php
  71. include("//PRODUKT/baza danych.html");
  72. ?>
  73.  
  74.  
  75.  
  76. <div style=" text-align: right;">
  77. <?php
  78. echo ''.date('d.m.Y').'<br/>';
  79. ?>
  80. </div>
  81.  
  82.  
  83.  
  84. <br /><br />
  85. <center>
  86. <b>ZAMÓWIENIE</b>
  87. </center>
  88. <br />
  89.  
  90. <?
  91. echo "<table border=1>";
  92. echo "<tr align=center>
  93. <td width=500px>NAZWA</td>
  94. <td width=50px>OPAK.</td>
  95. <td width=100px>CENA/SZT</td>
  96. <td width=100px>ILOŚĆ</td>
  97. <td width=50px>&nbsp;</td>";
  98.  
  99. $zakupy = explode("|",$koszyk);
  100. for ($i=0;$i<count($zakupy)-1;$i++) {
  101. $p = explode("#",$zakupy[$i]);
  102.  
  103. echo"<tr><td>";
  104. $result = mysql_query("SELECT * FROM CENNIK WHERE ID = '
  105. $p[0]
  106. ';")
  107. while($row = mysql_fetch_array( $result )) { echo $row['PRODUCENT']; echo ' - '; echo $row['NAZWA'];echo ' ';echo $row['NAZWA_CD']; }mysql_close ;
  108. echo"</td>";
  109.  
  110. echo"<td align=center>";
  111. $result = mysql_query("SELECT * FROM CENNIK WHERE ID = '
  112. $p[0]
  113. ';")
  114. while($row = mysql_fetch_array( $result )) { echo $row['OPAK.']; }
  115. echo"</td>";
  116.  
  117.  
  118. echo"<td align=right>";
  119. $result = mysql_query("SELECT * FROM CENNIK WHERE ID = '
  120. $p[0]
  121. ';")
  122. while($row = mysql_fetch_array( $result )) { echo $row['CENA BRUTTO NA WWW']; }
  123. echo"</td>";
  124.  
  125. echo "<td><form action=\"koszyk.php\" action=\"get\" style=\"display:inline;\">
  126. <input type=\"hidden\" name=\"id\" value=\"$p[0]\">
  127. <input type=\"text\" name=\"ile\" value=\"$p[1]\" style=\"width:30px;\">
  128. <input type=\"submit\" value=\" zmień \" style=\"70px;\"></form></td>";
  129.  
  130. echo "<td><form action=\"koszyk.php\" action=\"get\" style=\"display:inline;\">
  131. <input type=\"hidden\" name=\"id\" value=\"$p[0]\">
  132. <input type=\"hidden\" name=\"ile\" value=\"0\">
  133. <input type=\"submit\" value=\" skasuj \" style=\"80px;\"></form></td>";
  134. echo "</tr>";
  135. }
  136. echo "</table><p>";
  137. ?>
  138.  
  139.  
  140.  
  141. <br />
  142. <br /><input type="submit" value="WYŚLIJ ZAMÓWIENIE" />
  143. <br />Wysłanie zamówienia jest równoznaczne z akceptacją <a href="regulamin.php"><b><u>regulaminu</u></b></a>.
  144. <br />
  145. <br />
  146. <br />
  147. <br />
  148. </div>
  149. </form>
  150. <?php
  151. }
  152. ?>
  153.  
  154.  
  155. <br />
  156. <br />
  157.  
  158.  
  159. <?php include $_SERVER['DOCUMENT_ROOT'].'//stopka.php'; ?>
  160.  
xavierek
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
Część jest w ciasteczkach tzn "id" i "ilość". Reszta (nazwa, opkaowanie, cena) pobierana jest z bazy.
xavierek
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
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
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-
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 smile.gif dlatego zwróciłem się o pomoc do Was.
Turson
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
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
Jak koszyk ma się wyzerować przy przejściu na inną podstronę?

Masz tak
  1. //pętla wyświetlająca produkty z bazy
  2. <form action="" method="post">
  3. Produkt 1 <input type="hidden" name="id" value="$row['id']"> <input type="submit" value="Dodaj do koszyka" name="sent"> //każde id jest inne
  4. Produkt 2 <input type="hidden" name="id" value="$row['id']"> <input type="submit" value="Dodaj do koszyka" name="sent">
  5. Produkt 3 <input type="hidden" name="id" value="$row['id']"> <input type="submit" value="Dodaj do koszyka" name="sent">
  6.  
  7. //dodawanie do koszyka
  8. if(isset($_POST["sent"])){
  9. //dodaj do koszyka produkt $_POST["id"]
  10. }
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.