
Jde celý obsah webové stránky přeposlat na email?
Ahoj, konstruuji eshop, jádro(košík, produkty) už mám hotové(no, hotové, spíše stažené), ale potýkám se s jedním problémem. PHP skript mi vygeneruje hotovou www stránku, kterou bych potřeboval přeposlat na email(potvrzení objednávky). Ono by stačilo "vyexportovat" jednu tabulku, tu dát do souboru, který by byl jako příloha k emailu.
Moje představa:
Zákazník si nakliká všechno zboží, dá nákupní košík. Dále si překontroluje objednávku, dá potvrzení objednávky, vygeneruje se soubor s náhodným názvem(aby nebyly 2 stejné, o to se postará databáze jako u košíků), vyplní jméno, adresu, typ poslání atd. a email se odešle s přílohou.
Ten email s přílohou udělám, mě jde o to vyexportovat tu tabulku do souboru.
Tohle třeba vyleze z toho skriptu:
<html>
<head>
<title> Nákupní koík </title>
<script language="JavaScript">
function updatepocet(polozka)
{
id = polozka.name;
pocet = polozka.options[polozka.selectedIndex].text;
document.location.href = 'kosik.php?action=update&id='+id+'&pocet='+pocet;
}
</script>
</head>
<body bgcolor="#ffffff">
<h1>Nákupní koík</h1>
<form name="frmCart" method="get">
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="15%">
<b>Počet</b>
</td>
<td width="55%">
<b>Produkt</b>
</td>
<td width="20%">
<b>Cena</b>
</td>
<td width="10%">
<b>Odstranit</b>
</td>
</tr>
<tr>
<td width="15%">
<select name="2" onChange="updatepocet(this)">
<option selected <option >2</option><option >3</option><option >4</option><option >5</option><option >6</option><option >7</option><option >8</option><option >9</option><option >10</option><option >11</option><option >12</option><option >13</option><option >14</option><option >15</option><option >16</option><option >17</option><option >18</option><option >19</option><option >20</option>
</select>
</td>
<td width="55%">
Fyzika </td>
<td width="20%">
80 Kč
</td>
<td width="10%">
<a href="kosik.php?action=remove&id=2">Odstranit</a>
</td>
</tr>
</table>
<b>Celková cena: 80.00 Kč</b>
</form>
<a href="index.php">Návrat na výběr zboí</a>
</body>
</html>
Část, kterou bych si potřeboval uložit do souboru, je vyhraněna obrovskou mezerou, cenu si překontroluji kvůli nějakým šikulům, kteří by dokázali pozměnit to. Díky moc.
Ahoj. Všechno možné je, ale není to jednoduché.
Dej si do Google něco jako "HTML PHP mailer"
v php nedelam, nicmene muj odhad je, ze to nemusis ukladat do soubory /a je to nezadouci imho/ a udelas to cele
jako string, ktery pak odesles jako soubor se spravnou hlavickou a inspiroval bych se timhle:
(tamm nejprve nactou soubor do stringu, coz uz mas ... a pak pokracujes s nima)
http://www.webcheatsheet.com/PHP/send_email_text_ht ml_attachment.php#attachment
P.S je jasne, ze je to jasne, jen hint:userovi poslat odkaz na kosik.php. ale celej odkaz.
Až přijdu ze školy(dneska máme kino o občanu Havlovi, tak o tom budu moct přemýšlet
), zkusím poslat tu část stránky na email společně i s údaji, košík i doplnění údajů bude jedna stránka, stejnak pro to musím nakonec udělat nějaký css layout, obrázky atd. atd. Práce jak na kostele.
Tak, teď řeším problém s tímto. Generuje se mi 20-znakový náhodný řetězec znaků. A tohle mi nefunguje:
Pouze se vytvoří soubor "echo $retezec" a konec. Nevíte, jak to tam přes ty apostrofy dostat?
bez uzvozovek, bez echa, just:
$lucinka="file.love";
$t=fopen($lucinka,w+);
Díky, co s tou Lucinkou pořád máte?
Takže nakonec jsem si to upravil podle sebe, aby mi to vyhovovalo
:
ja si myslim, ze pokud chces odeslat přilohu jako html, ze by jsi ji nemel ukladat na disk. A pak posilat jako prilohu - potrebujes zbytecne navic prava pro zapis, povolenou fopen a zbytecnej pristup na disk...
Ne, vygeneruje se na serveru soubor s daty, ten se odešle jako příloha emailu a následně se smaže, takže místa bude dost. Aby byl snadný přístup k tomu, proto html, který jde otevřít dnes na jakémkoliv PC s Widlema.
Dobře, jen si myslím že na odeslání html jako přílohy neni nutné generovat fyzický soubor a pak ho zase mazat. Při nevytíženém shopu je to asi jedno...
A teď bych potřeboval poradit, jak tu část kódu, kterou bych chtěl dát do souboru nějak ohraničit a hodit do proměnné? V nejhorším celou www stránku. Jedná se o tento příklad
view.php
Načtená data z databáze jsou zobrazena ve formě tabulky a tu chci dát do toho souboru. Půjde to vůbec?
Obecné schema může vypadat následovně:
Yeah, už se mi to začíná rýsovat
. Ještě pár řádek, dodělat odesílací soubor a pak už to budou jenom sarampádičky typu rozdělení do kategorií. Zachvilku se možná ještě ozvu
A jak mám dát do stringu všechno tohle:
Nebo prostě po řádkách?
Jaký je důvod, nedávat do html přílohy hlavičku souboru? Těch pár B tě už snad nezabije.
O to ale vůbec nejde, nejsem až takový debil. Tady jde o uložení celého textu do stringu
Na řetězce pozor. PHP narozdíl od většiny jiných syntaxí má takovou specialitu.
Když počítáš sumu čísla , tak je v pořádku operátor +, následně:
Nicméně takto nelze postupovat při spojování řetězců:
Promiň že jsem Tě obtěžoval, ale rozhodl jsem se, že si to kompletně vycucám z databáze.
Jak jednoduché, že?
Zrovna jsem tu chtěl písnout, proč nepoužiješ
SELECT * FROM kosik;
...
mrkni sem, třeba tu objevíš něco šikovného
mm.gene.cz
(MySQL manuál)
To je brutus, Matko představená.
Aha, sorry špatné tlačítko ... Měla to být reakce na tuto větu "Část, kterou bych si potřeboval uložit do souboru, je vyhraněna obrovskou mezerou, cenu si překontroluji kvůli nějakým šikulům, kteří by dokázali pozměnit to."
Poslední problém před dokončením:
Zobrazí se mi v emailu pouze první řádek zboží (Objednané zboží : Číslo produktu: 3 - Počet kusů: 13,), ostatní bohužel ne, jak to udělat, aby to bylo takhle v tom emailu:
Číslo produktu: x - Počet kusů: x === Číslo produktu: x - Počet kusů: x
Jako x tam budou dosazena čísla z databáze
Pak je zdroj problému pouze v jednom z následujících bodů:
- Dané proměnné jsou prázdné - neobsahují nic, mimo proměnnou $zbozi.
- Do proměnné $message je nakonec nekde omylem zkopirovan obsah $zbozi a nebo je omylem pouzita proměnná $zbozi namísto $message.
Já to napsal blbě. Vše ostatní funguje, ale mám "objednáno" 3 druhy zboží a v emailu se zobrazuje pouze ten poslední druh, ostatní ne...
Takhle to vypadá ten email:
Jméno: a
Přijmení: a
Firma: a
IČO: a
DIČ: a
Telefon: a
Email: a
Jiný kontakt : a
Způsob dodání : Osobní vyzvednutí
Poznamka : a
Objednané zboží : a kde jsou ty ostatní výrobky??? Číslo produktu: 3 - Počet kusů: 9,
P.S. Ale ten samý kód na stránce udělá toto:
Číslo produktu: 2 - Počet kusů: 12, Číslo produktu: 1 - Počet kusů: 15, Číslo produktu: 3 - Počet kusů: 9,
No protože to máš navržené tak, že počítáš pouze s jedním objednaným výrobkem(zbožím).
Musíš si tam "dodělat" to, aby to fungovalo pro libovolný počet zboží.
Na toto se nejlépe hodí právě objektové programování(objekty), ale tady je možné to i vybírat přímo z databáze(možná) jako strukturu. To záleží jak jsou uskladněna a vybrána data ze zdroje (např. databáze to vrací přímo jako strukturu, což je něco jako bratranec objektu.
No jo, jenže mi vrtá hlavou, proč to v emailu nejede a na normální stránce ano
Protože to vypisuješ dobře:
RESPEKTIVE
p5ep93e3 na.....
Neco takoveho no.
Prostě si nějak v té smyčce jenom doplň to skladování (tady by bylo blbnutí s objektama nesmyslnost teda).
Napoveda: to co vypisujes na obrazovku jenom "naskladujes" do pole zaroven.
Takže jsem si to udělal takhle:
A ono mi to vyhodí na příkaz echo pouze "Array" a nic víc.
Hurá. Tak to tvoje funguje, akorát tam byla blbě udělaná ta poznámka. U PHP se to dělá /* poznámka */
já mám za to, že u PHP jsou dva druhy poznámek. Jedna nezalomitenlá (pouze na jeden řádek, druhá zalomitelná na několik řádků.
Já je píšu:
//poznámka
to /*poznámka*/ používám u CSS.
S tou poznámkou to nejde, jak má. Necháme to být. Prostě /* */ je funkční
Ještě jedno mi vrtá hlavou. Odeslal jsem z webovek asi 100 zpráv a pak se mi to seklo. Nemohli mi to webzdarmáci zablokovat?
Aha, chtěli reklamu
V tomto případě to znova vypíše tu poslední
V tomto případě to pošle megamail s počtem opakování, kolik je tam záznamů.
Jak to už do prkýnka zelenýho udělat?
Díky, konečně mám své 8kb jádro obchodu hotové. Jenom bych se chtěl zeptat, jestli se jde zbavit těch Notice hlášek:
Hlášky lze potlačit umístěním zavináče před proměnnou:
Ale není dobré si na to zvykat.