21. juli 2010 - 12:56
Der er
12 kommentarer og 1 løsning
Mail - array - session
Hej eksperter Jeg har forsøgt med forskellige metoder, men ingen af dem virker rigtigt. $new_item = array('brugernavn'=>$brugernavn, 'product_id'=>$id,'amount'=>$amount,'type'=>$type,'stor'=>$stor,'price'=>$price,'total_price'=>$amount*$price,'ordrer_id'=>$ordrer_id); $_SESSION['basket'][]=$new_item; Nu vil jeg gerne have dem lagt ind i denne her: $besked1 = array($_SESSION['basket'][]); indholdet... $size = sizeof($besked1); for($i=0;$i<$size;$i++){ $besked = $besked[$i]['billedeid'].$besked[$i]'antal'].$besked[$i]['type']; } $to = "XXXXXX"; $subject = "Bestilling"; $headers = "Fra: $email"; $sent = mail($to, $subject, $besked, $headers) ;
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Hvad er det du ønsker opnået ? Er det at sende en email ? Er det at indsætte data i en session eller ?
Okay jeg har forsøgt at lave en bestillingsside. Det er næsten færdigt, bortset fra at alle emnerne som jeg har liggende i et array ikke vil sendes med på mailen. Den sender kun med det allersidste tilføjede. Jeg har brug for at få alle emnerne med i emailen. pt. ligger de i dette array: $new_item = array('brugernavn'=>$brugernavn, 'product_id'=>$id,'amount'=>$amount,'type'=>$type,'stor'=>$stor,'price'=>$price,'total_price'=>$amount*$price,'ordrer_id'=>$ordrer_id); $_SESSION['basket'][]=$new_item; Dem vil jeg gerne have indsat i min mail evt. som $besked. Så jeg kan se alle emnerne i emailen.
Så burde du kunne gøre sådan her: $besked = ''; //Tom besked. for($i = 0; $i < count($_SESSION['basket']); $i++){ $besked .= "Brugernavn: " . $_SESSION['basket'][$i]['brugernavn'] . "\r\n"; } Og så burde du selv kunne tilføje resten. Er det ikke korrekt ?
Eller med $_post[] til mail.php Men hvordan får jeg styr på array´et? Jeg har ikke før haft med arrays at gøre, derfor er det nok også lidt mærkeligt formuleret.
Hvis du har et array ala: $mit_array = array('Jakob','Olsen'); $mit_array = array('Fornavn' => 'Jakob','Efternavn' => 'Olsen'); Så kan du jo tilgå det via: echo 'Fornavn: ' . $mit_array[0]; eller: echo 'Fornavn: ' . $mit_array['Fornavn']; //Vil kun virke på sidste array. Hvis du så smider et array ind i et array, multidimensionelt, så bliver det: $items = array(); $items[] = array('noget1','andet1','pris1'); $items[] = array('noget2','andet2','pris2'); $items[] = array('noget3','andet3','pris3'); Så skal du tilgå det via: echo $items[0][0]; //Vil printe noget1 echo $items[2][1]; //Vil printe andet3 Du kan så løbe et array igennem med: for($i = 0; $i < count($items); $i++){ echo '<pre>'; print_r($items[$i]); echo '</pre>'; } eller: foreach($items AS $item){ echo '<pre>'; print_r($item); echo '</pre>'; } Denne bruger jeg rigtig meget selv, når jeg arbejder med arrays, fordi jeg ikke altid kan holde styr på dem i hovedet. echo '<pre>'; print_r($array_navn); echo '</pre>';
Umiddelbart så var der noget som virker her. Jeg kører lige lidt tests.
$new_item = array('brugernavn'=>$brugernavn, 'product_id'=>$id,'amount'=>$amount,'type'=>$type,'stor'=>$stor,'price'=>$price,'total_price'=>$amount*$price,'ordrer_id'=>$ordrer_id); $_SESSION['basket'][]=$new_item; $besked1 = array($_SESSION['basket'][]); $size = sizeof($besked1); for($i=0;$i<$size;$i++){ $besked . = $besked1 [$i]['billedeid'].$besked1 [$i][ 'antal'].$besked1 [$i]['type']; } $to = "XXXXXX"; $subject = "Bestilling"; $headers = "Fra: $email"; $sent = mail($to, $subject, $besked, $headers) ; Fandt lige nogle småfejl som jeg lige har lavet med fed og understreget tekst.
ggxdg: Hvad er fejlene ? .= er vel godt nok. Det er jo det samme som: $besked = $besked . 'Noget mere'; $besked1 er vel også godt nok, det bliver jo sat her: $besked1 = array($_SESSION['basket'][]); Dog burde jokerper nok kun have gjort sådan her: $besked1 = $_SESSION['basket']; Og hvad er der galt med [ ved 'antal'] ?
jakobdo - Jeg fik det til at virke som: for($i = 0; $i < count($_SESSION['basket']); $i++){ $besked .= "Brugernavn: " . $_SESSION['basket'][$i]['brugernavn'] . "\r\n"; } Og tak for din medfølgende forklaring, det er netop sådan man lærer og forstår. Men jeg har lige oprettet et andet spm. hvis du er frisk. one.com mail. Men ellers læg et svar, tak.
21. juli 2010 - 18:20
#10
Svar!
21. juli 2010 - 19:55
#11
Takker for point.
21. juli 2010 - 20:45
#12
#8 Det jeg understregede var noget jeg tilføjede som ikke var der i forvejen. Men jeg kan godt se min tekst var ret dårligt formuleret. Der var ikke punktum foran "=", der manglede "[" ved antal, og der manglede "1" ved alle "$besked"
21. juli 2010 - 20:51
#13
ggxdg: Sorry, du har jo ret, min fejl. :o(
Vi tilbyder markedets bedste kurser inden for webudvikling