Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: z sesji do mail() - w miare pilne
Forum PHP.pl > Forum > Gotowe rozwiązania
Gligamesh
Witam, jaki jest sposob wysłania maila (mam na mysli funkcje mail()) wraz z danymi z sesji. :?:

sesja wyglada tak:

[php:1:aa82177155]<?php
session_start();
if(empty($_SESSION['id'])){
$_SESSION['id']= uniqid(0,rand(0,getrandmax())); //wygeneruj skomplikowane id sesji
$_SESSION['koszyk']="";
$_SESSION['produkty']="";
$_SESSION['ilosc']="";
$_SESSION['lego']="";
$_SESSION['seria']="";
}

$a1=explode("|",$_SESSION['koszyk']);
$a2=explode("|",$_SESSION['produkty']);
$a3=explode("|",$_SESSION['ilosc']);
$a4=explode("|",$_SESSION['seria']);
$a5=explode("|",$_SESSION['lego']);

switch($_GET['action']){
case stan:
for($c=1; $c<count($a1); $c++){
$kwota=$kwota+($a1[$c-1]*$a3[$c-1]);
$ile=$ile+$a3[$c-1];
}
print "<Center>Stan koszyka: do zaplaty: <b>$kwota</b> , Iloœ&aelig; zakupionych produktów: <b>$ile</b></center>";
break;


case dodaj:

$_SESSION['koszyk']=$_SESSION['koszyk']."$cena|";
$_SESSION['produkty']=$_SESSION['produkty']."$produkt|";
$_SESSION['ilosc']=$_SESSION['ilosc']."$ile|";
$_SESSION['seria']=$_SESSION['seria']."$ser|";
$_SESSION['lego']=$_SESSION['lego']."$leg|";
print "<center>Produkt <b>" .$produkt. " </b>w iloœci <b>" .$ile. "</b> zostal pomyslnie dodany do koszyka!";
print " <br><br><br><p><img border="0" src="io.gif" width="12" height="12"><a href="?gl=sklep&action=stan">Kontynuuj zakupy</a></p>";
print"<p><img border="0" src="io.gif" width="12" height="12"><a href="?gl=blank&action=koszyk">Finalizuj zakupy </a></p></center>";
break;


case koszyk:
for($c=1; $c<count($a1); $c++){
print "Zakupiono produkt(y) $c ".$a2[$c-1]." Cena: ".$a1[$c-1]." Seria: ".$a4[$c-1]." Iloœ&aelig;: ".$a3[$c-1]." Lego: ".$a5[$c-1]."<BR>";
$kwota=$kwota+($a1[$c-1]*$a3[$c-1]);
}
print "Do zaplaty: $kwota";
print "<br><br><br>";
break;
}


?>[/php:1:aa82177155]
spenalzo
php -> Skrypty
rzseattle
w sumie to wale w ciemno (moze ktosma lepszy sposob)

moglbys przy pomocy [manual:24307d35d9]serialize[/manual:24307d35d9] zapisywac sesje do jednej zmiennej a nastepnie wysylac ja poprzez ciacho
przu odczycie zrobic [manual:24307d35d9]unserialize[/manual:24307d35d9] i wszystko powino byc git
Gligamesh
a jakis malutki przykladzik :?
rzseattle
Cytat
a jakis malutki przykladzik  :?

[php:1:b93354b66e]<?php
//zapis
$z = serialize($_SESSION);
setcookie ("z", $z);
//odczyt
$z = unserialize($_COOKIE['z']);
foreach( $z as $key => $val){
$_SESSION[$key] = $val;
}

?>[/php:1:b93354b66e]
adwol
Cytat
[php:1:a656b28fe5]<?php
   //zapis
   $z = serialize($_SESSION);
   setcookie ("z", $z);
   //odczyt
   $z = unserialize($_COOKIE['z']);
   foreach( $z as $key => $val){
       $_SESSION[$key] = $val;
    }
?>[/php:1:a656b28fe5]

Zmienne sesyjne są po to żeby właśnie nie trzeba było nic wysyłać do użytkownika (poza jakimś id, oczywiście). Jak wysyłasz do usera cookie z zawartością $_SESSION to równie dobrze możesz te dane trzymać w hiddenach albo kodować w URLu. Sesje istnieją dlatego, że ich dane trzymane są po stronie serwera, inaczej to nie ma sensu, bo użytkownik może i tak wszystko w nich pozmieniać. Musisz wtedy wielokrotnie sprawdzać poprawność i spójność danych, co mija się z celem.
adwol
Cytat
Witam, jaki jest sposob wysłania maila (mam na mysli funkcje mail()) wraz z danymi z sesji. :?:

A co chcesz osiągnąć, bo nie za bardzo rozumiem pytanie? Chodzi Ci o wysłanie mailem jakichś danych z $_SESSION?
rzseattle
sorki chyba wczoraj bylem slepyi zle zrozumialem pytanie :oops:
powalilo mi sie nie wiem czemu cookie z mail ehhh jeszcze raz przepraszam
tak to bywa jak sie robi kilka rzeczy naraz
Gligamesh
tak, dane z sesji maja byc wysłane mailem.
adwol
Cytat
tak, dane z sesji maja byc wysłane mailem.

Ale jakich i w jakiej formie?
[php:1:c4abb16343]<?php
mail('adres@domena.pl', 'Zawartosc sesji', var_export($_SESSION, true));
?>[/php:1:c4abb16343]
Gligamesh
Tak, uzywajac funkcji mail()

lecz co mam wpisac w "zawartosc sesji" questionmark.gif i czy muszę uzywac kodu z poprzednich postow (serialize itd.)

i czy dalo by sie zeby tresc wysylana byla np. produkty: $_session /n ilosc :$_session /n itd

w sesji jest tablica i zeby oczywiscie w produktach byly produkty (kolumna) a w ilosci ilosc.
rzseattle
Cytat
Tak, uzywajac funkcji mail()

lecz co mam wpisac w "zawartosc sesji" questionmark.gif i czy muszę uzywac kodu z poprzednich postow (serialize itd.)  

i czy dalo by sie zeby tresc wysylana byla np. produkty: $_session /n ilosc :$_session /n itd  

w sesji jest tablica i zeby oczywiscie w produktach byly produkty (kolumna) a w ilosci ilosc.

przepraszam bardzo za wprowadzenie w blad (tzn zapomnij o serialize)

a zo do wyslania niektorych wartosci z sesji to robisz w ten sposob

[php:1:27f8aee287]<?php
$tresc_maila = "
produkty: ".$_SESSION['produkty'] ."/n
ilosc : " .$_SESSION['ilosc'] ."/n
";
mail('adres@domena.pl', 'Zawartosc sesji', $tresc_maila);
?>[/php:1:27f8aee287]
Gligamesh
ok, spoko

dzieki, teraz jest dobrze
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.