PDA

Pogčedajte punu verziju : Slanje liste proizvoda na mail - potrebna pomoć


trollhorn
26. 03. 2007., 10:53
Guten Tag svima! Radim na faxu projekat iz php-a i to computer shop (online) i sve mi radi ok osim slanja mail-a korisniku. Nemam pojma kako da korisniku nakon kupovine posaljem LISTU komponenata tj. onog sto je kupio. Imam kod za automatsko generisanje password-a i slanje na mail. Kontam da mi treba session koji vec imam (pamti vec izabrane komponente), ali ne znam kako da ih ubacim u kod za slanje mail-a... Molim za pomoc i unapred hvala!

BrainDamage
26. 03. 2007., 11:45
pa, provuci kroz foreach() proizvode (ako ih cuvas kao array u sesiji)

$emailText = "Lista proizvoda:\n\n";
$productsTotalPrice = 0;

foreach ($_SESSION['products'] as $product) {
$emailText .= $product['name']." - ".$product['price']."EUR\n";
$productsTotalPrice += $product['price'];
}
$emailText .= "\nUKUPNO:".round($productsTotalPrice,2);


...i dobijes nesto tipa:

Lista proizvoda:

Proizvod 1 - 100EUR
Proizvod 2 - 200EUR

UKUPNO: 300,00EUR

Eniac
26. 03. 2007., 19:14
ma jok... verovatno radis sa necim tipa OSCommerce, koji ne salje na mail, ali sacuva u bazi podatke iz forme, tako da opusteno mozes da pristupis... A kad postavis na server sve radi kako treba (posto pretpostavljam da radis u lokalu)

trollhorn
27. 03. 2007., 09:48
da, radim u localhostu. inace, pocetnik sa na neki nacin pa imam problema malo sa ovim... probao sam ubaciti kod za mail samo za jednu promenljivu, mislim da je bila samo ukupna cena da se salje na mail... imao sam gresku u config file-u, nesto sa portovima. tu sam trokirao. e,da! skontao sa da zone alarm blokira rad sesion-a, sta ga sve jos moze blokirati?

oliver78
27. 03. 2007., 12:53
da, radim u localhostu.

Verovatno je ovo problem. Kako da posaljes mail, sa localhosta na kome (najverovatnije) nemas mail server.

trollhorn
27. 03. 2007., 14:37
da, ali sam probao i na serveru!

Ilija Studen
27. 03. 2007., 14:40
1. Kako pozivaš mail() funkciju? Postuj parče koda koje generiše poruku i sam poziv.
2. Koje poruke o grešci dobijaš?
3. Sad ću da budem malo zao ali nadam se da ćete mi oprostiti. To što si početnik nije uopšte opravdanje da postavljaš pitanja koja jednostavno ne mogu biti odgovorena bez umeća gledanja u pasulj i pileće iznutrice (drevne veštine koje se koriste kod telepatskog debugovanja kada pokušavaš da pomogneš nekom, a o samom problemu ne znaš gotovo ništa). Takođe nije opravdanje da ne znaš da imenuješ temu kako treba. "Potrebna pomoć" ili "Upomoććććććć" ništa ne govori.

Što više detalja o problemu pošalješ (problematično parče koda, poruka o grešci koju dobiješ itd) to će nam lakše biti da pomognemo. Ovako i pored najbolje volje ne može puno da se uradi...

trollhorn
27. 03. 2007., 22:11
Ha!!! Sredio sam! Mislim da je red da se izvinim jer sam komplikovao dzabe, nasao sam gresku a ne smem Vam reci sta je... Sramota me. :-) U svakom slucaju hvala za trud. Inace, treba jos da ubacim slike za komponente.
Naime, ubacio sam ih malopre u bazu i mislim da je to ok. Da li treba u php kodu da ubacim nekakvu petlju sa, ubacivanjem img tag-a ili samo da je pozivam iz baze?

Ilija Studen
27. 03. 2007., 22:51
Pogledaj kako se prosleđuju slike u PHP-u (jedan od načina).

http://www.php.net/manual/en/function.fpassthru.php

Moj savet bi bio da slike čuvaš na disku, ne u bazi. 10x je jednostavnije. U bazi samo čuvaš ime fajla...

trollhorn
28. 03. 2007., 10:46
thanx man! Da, imam ih na disku a u bazu sam naveo samo putanju do slike, tako da je to ok.

trollhorn
28. 03. 2007., 12:02
$pic = $line['image'];
$size = getimagesize("images/${pic}.jpeg");

$fp=fopen("images/${pic}.jpeg", "rb");
if ($size && $fp) {
//header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// error
}

poludecu, dobijem klinasto pismo...:mad:

Ilija Studen
28. 03. 2007., 13:15
Ako ne čuvaš slike u bazi onda ih samo linkuješ. Ne treba ti fpassthru(). On se koristi ako želiš da direktno serviraš binarne podatke browseru (kao u slučaju kada slike ili bilo koje druge binarne formate čuvaš u bazi podataka).

ivanhoe
28. 03. 2007., 13:24
kao u slučaju kada slike ili bilo koje druge binarne formate čuvaš u bazi podataka

takodje cest slucaj je kad zelis da sprecis direktan pristup slikama, recimo pornjava i slicno, gde samo ulogovani korisnici mogu da vide sliku, onda takodje koristis php da posaljes sliku. Tebi to naravno ne treba za ovaj tvoj projekat, znaci kao sto rece Ilija, samo printaj <img> tagove sa odgovarajucim putanjama do slika...

BTW, klinasto pismo dobijes zato sto:
a) ne posaljes dobar header za Content-type
b) printas nesto pre nego sto posaljes sliku pa se zato ili ne posalje header uopste ili se posalje header, ali bude visak karaktera na pocetku slike..

trollhorn
29. 03. 2007., 10:46
Vidite, imam bazu komponenata i svaka komponenta ima svoju sliku. Prilikom iscitavanja (recimo samo jedne vrste komponenata) treba da dobijem njihovu listu sa slikama. U bazi svaki model treba da ima odgovarajucu sliku pa stoga na osnovu id-a modela izvlaci se i prikazuje njegova slika.
Kontam da mogu ubaciti switch i za svaki model navoditi putanju u zavisnosti od id-a... A to nije optimalno resenje za ogromne baze kao sto je moja...
Ako u bazi navedem samo naziv slike da li moze sad ovako napamet i da li ste ovako mislili:

$pic = $line['image'];
echo "<img src=images/$pic.jpeg />";

trollhorn
29. 03. 2007., 11:19
E radi! Svaka cast momci!!! Uz Vas covek moze svasta da nauci!
A je l' moze sesija delimicno da se brise?
Da ubacim checkbox-ove ispred modela u "korpi" i da obrisem samo odredjene modele. Cini mi se malo komplikovano, s obzirom da mi ne pada nista na pamet...:1049:

Ilija Studen
29. 03. 2007., 12:06
Pošto podatke najverovatnije čuvaš kao niz u sesiji polja koja ti više ne trebaju možeš jednostavno da unsetuješ (http://www.php.net/function.unset).

Btw, zar ne misliš da je dosta offtopica? Ovo je već treća tema unutar ove teme ;)

trollhorn
29. 03. 2007., 13:41
E ta ti je dobra...tj. obe! unset mi uopste nije ni pao na pamet a sto se tice tema... Vazi! :)