как переслать на email значения массива

mikko

Новичок
как переслать на email значения массива

kogda vivodit sodergimoe massiva

PHP:
<?php 
  foreach($_POST['product'] as $line) 
  { 
     echo $line."<br>"; 
  } 
?>
to vse normalno pokazivaet vse peremennie no otsilaet tolko posledniu, v 4em ge grabli

vot tak ya otsilau, ya uge spezialno vse uprostil ostavil foreach

PHP:
<? 
$subj="bestellung"; 
$mailto="[email protected]"; 
$name = $_POST['name'];   
$note = $_POST['note']; 
$adresse = $_POST['adresse']; 
$telefon = $_POST['telefon']; 
$rabat = $_POST['rabat']; 
foreach($_POST['product'] as $line) 
  { 
     echo $line."<br>"; 
  } 
$mess = "Product: ".$_POST['product']."\n 
Col: ".$_POST['col']."\n 
Name: ".$name."\n 
Adresse: ".$adresse."\n 
Telefon: ".$telefon."\n 
Note: ".$note."\n 
Rabat: ".$rabat; 
         
if(mail($mailto,$subj,$mess)){ 
echo($mess); 

}else{ 
echo "Bestellung nicht gesenden!"; 
} 
?>
a vot kod form


PHP:
<tr> 
                        <td height="5"><input type="hidden" name="col" value=<?php echo $row["qty"]; ?>> 
                          <input type="hidden" name="product[]" value=<?php echo $row["itemName"]; ?>></td> 
                        <td align="center">&nbsp;</td> 
                        <td><input type="hidden" name="price" value=<?php echo $row["itemPrice"]; ?>></td> 
                      </tr>
vot takoi kod generiruetsa v html


PHP:
<tr> 
                        <td height="5"><input type="hidden" name="col" value=1> 
                          <input type="hidden" name="product[]" value=Cipolla></td> 
                        <td align="center">&nbsp;</td> 

                        <td><input type="hidden" name="price" value=4.50></td> 
                      </tr> 
                                             
                      <tr> 
                        <td height="5"><input type="hidden" name="col" value=18> 
                          <input type="hidden" name="product[]" value=Margherita></td> 
                        <td align="center">&nbsp;</td> 
                        <td><input type="hidden" name="price" value=3.80></td> 
                      </tr>
to est po4emu ne rabotaet ne poimu,


SPASIBO ZA OTVET.
 

baev

‹°°¬•
Команда форума
В приведённом коде, честно говоря, разбираться лень.
Я так делал:
PHP:
ob_start();
print_r($_POST);
$buf2 = ob_get_contents();
ob_end_clean();
mail("MY_ADDRESS@MY_SITE.com", "debug info", $buf2 );
 

basboy

Новичок
mikko

Слушай, как ты думаешь, когда ты переменной присваиваешь массив, то в переменной строке сразу будут все значения масива ???
 

mikko

Новичок
basboy

net esli massiv to priidet vot tak

[product] => Array
(
[0] => Cipolla
[1] => Salami
[2] => Tonno
 

basboy

Новичок
mikko
Ты, извини меня брат, пургу не гони.
Трейтим пораметром в mail нужно передавать строку, понимаешь, строку, а твой массив в строку не превращается. А нужно последовательным перебором массива сделать конкатенацию его элементов, а потом передавать.
 

basboy

Новичок
kvf77
Больше так не делай, заставил меня напрягаться и писать здоровую месу, которую пришлось снести из-за уважения к тебе.
 

kvf77

Red Devil
basboy

прошу прощения - просто мысли повествования в топике оказалась несколько более ветиеватей, а я прочитал ее в порядке следования :)
 

phprus

Moderator
Команда форума
baev
Посмотри описание функции http://ru2.php.net/print_r. У нее есть второй параметр. Если ему присвоить значение true то функция вернет строку.
То есть твой код можно уменьшить до:
PHP:
$buf2 = print_r($_POST, true);
mail("MY_ADDRESS@MY_SITE.com", "debug info", $buf2 );
 

baev

‹°°¬•
Команда форума
То есть твой код можно уменьшить до:...
phprus, я из старого проекта выдернул, а там перед передачей шаблонизатору то, что выводится движком, буферизуется.

А внутри буфера второй параметр не работает, выдаётся ошибка, типа:
Fatal error: print_r(): Cannot use output buffering in output buffering display handlers
Так что -- Ваш код будет работать не всегда...
 

basboy

Новичок
baev
Если не работает, то делай конкатенацию элементов массива в строку, и передавай...
 

phprus

Moderator
Команда форума
baev
Хм. незнал об этой особенности. В документации вроде про такую ошибку ничего не сказано.
 

baev

‹°°¬•
Команда форума
Если не работает, то делай конкатенацию элементов массива в строку, и передавай..
Нафига?
У меня и так нормально передаётся. Вы меня с автором топика не перепутали?


В документации вроде про такую ошибку ничего не сказано.
Сейчас глянул -- там в комментах пользователей про это есть:
http://php.rinet.ru/manual/ru/function.print-r.php#49239
 

basboy

Новичок
baev
Извини брат, действительно перепутал... Извини. Больше не буду.
 

phprus

Moderator
Команда форума
baev
ок. Вопросов больше нет. А комментари пользователей я и не посмотрел когда эту ошибку в документации искал.
 
Сверху