Проблем с PHP,

Knoppix_

Registered
Здравейте,

имам код който обработва една заявка. Проблемът е в това че заявката се обработва правилно но когато билдва стринг за заявка не ми отпечатва всички променливи които искам да се видят.

Тук създавам формата:
Код:
<?php
/* order form code from dyn-web.com */

$PRODUCTS = array(
    // product abbreviation, product name, unit price
    // follow valid name/ID rules for product abbreviation 
    array('Нискоемисионно', 'Нискоемисионно/К стъкло'),
    array('Отражателно', 'Отражателно/рефлекторно стъкло'),
    array('Четирисезонно', 'Четирисезонно/мултифункционално стъкло'),
    array('Триплекс', 'Триплекс - многослойно стъкло'),
);

function getOrderForm2() {
    global $PRODUCTS;
    $tbl = new HTML_Table(null, 'display', 0, 0, 0);
    $frm = new HTML_Form();
    
    // header row
    $tbl->addRow();
        $tbl->addCell('Продукт', 'first', 'header');
        $tbl->addCell('Дебелина', null, 'header');
		$tbl->addCell('Височина', null, 'header');
        $tbl->addCell('Широчина', null, 'header');
		$tbl->addCell('Брой', null, 'header');
    
    // display product info/form elements
    foreach($PRODUCTS as $product) {
        list($abbr, $name, $price,) = $product;
        $height = $frm->addInput('text', $abbr . '_height', 0, 
            array('size'=>4, 'class'=>'cur', 
            'onchange'=>'getProductTotal(this)',
            'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' ) 
        );
		$shirochina = $frm->addInput('text', $abbr . '_shirochina', 0, 
            array('size'=>4, 'class'=>'cur', 
            'onchange'=>'getProductTotal(this)',
            'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' ) 
        );
		$deep = $frm->addInput('text', $abbr . '_qty', 0, 
            array('size'=>4, 'class'=>'cur', 
            'onchange'=>'getProductTotal(this)',
            'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' ) 
        );
		$broi = $frm->addInput('text', $abbr . '_broi', 0, 
            array('size'=>4, 'class'=>'cur', 
            'onchange'=>'getProductTotal(this)',
            'onclick'=>'checkValue(this)', 'onblur'=>'reCheckValue(this)' ) 
        );
       // $tot_el = $frm->addInput('text', $abbr . '_tot', 0, array('readonly'=>true, 'size'=>8, 'class'=>'cur') );
       // $price_el = $frm->addInput('hidden', $abbr . '_price', $price);
        $tbl->addRow();
            $tbl->addCell($name);
            $tbl->addCell($deep, 'deep' );
			$tbl->addCell($shirochina, 'shirochina' );
            $tbl->addCell( $height, 'height' );
			$tbl->addCell( $broi, 'broi' );
			
    }
    // total row
    $tbl->addRow();
        $tbl->addCell();
        $tbl->addCell();
        

        
        
/////////////////////////////////////////////////////////////////////
// additional fields for contact info
    $tbl->addRow();
        $tbl->addCell('Клиент: ', 'label');
        $tbl->addCell(
            $frm->addInput('text', 'first_name', '', array('size'=>36 ) )
            , null, 'data', array('colspan'=>3)
         );
        
    $tbl->addRow();
        $tbl->addCell('Адрес: ', 'label');
        $tbl->addCell(
            $frm->addInput('text', 'last_name', '', array('size'=>36) )
            , null, 'data', array('colspan'=>3)
         );
        
    $tbl->addRow();
        $tbl->addCell('Телефон: ', 'label');
        $tbl->addCell(
            $frm->addInput('text', 'phone', '', array('size'=>36) ), null, 'data',
            array('colspan'=>3)
        );    
    
	$tbl->addRow();
        $tbl->addCell('Email: ', 'label');
        $tbl->addCell(
            $frm->addInput('text', 'email', '', array('size'=>36) ), null, 'data',
            array('colspan'=>3)
        );
    
    
		
		$tbl->addRow();
        $tbl->addCell('Дата на доставка: ', 'label');
        $tbl->addCell(
            $frm->addInput('text', 'tovar', '', array('size'=>36) ), null, 'data',
            array('colspan'=>3)
        );
		
		$tbl->addRow();
        $tbl->addCell('Забележка/Видове обработка: ', 'label');
        $tbl->addCell(
            $frm->addInput('text', 'zabelejka', '', array('size'=>36) ), null, 'data',
            array('colspan'=>3)
        );
//
/////////////////////////////////////////////////////////////////////

    // submit button
    $tbl->addRow();
        $tbl->addCell();
        $tbl->addCell( $frm->addInput('submit', 'submit', 'Потвърди') );
        $tbl->addCell();
        $tbl->addCell();
        
    $frmStr = $frm->startForm('ex2_result.php', 'post', null, 
        array('onsubmit'=>'return finalCheck(this)') ) . 
        $tbl->display() . $frm->endForm();
    
    
    return $frmStr;
}


// for js
function getProductAbbrs() {
    global $PRODUCTS;
    foreach ( $PRODUCTS as $product ) {
        $ar[] = $product[0];
    }
    return $ar;
}
?>

А тук обработвам данните и извеждам стригн с резултатите:

Код:
<?php
require('includes/ex2.inc.php');

function sendAdminEmail($total, $order) {
    $admin_email = 'petiob@gmail.com';
    $subject = 'Заявка';
	$lice = stripslashes ( strip_tags( $_POST['last_name']));
    $name = stripslashes( strip_tags( $_POST['first_name'] ) );
    
    $email = stripslashes( strip_tags( $_POST['email'] ) );
    // check for valid email address
    $regex = '/^[\w\+\'\.-]+@[\w\'\.-]+\.[a-zA-Z]{2,}$/';
    if ( !preg_match($regex, $_POST['email']) ) {
        // don't send email
        echo '<p>Въведеният емейл е грешен. Моля въведете коректно емейла си и опитайте отново!.</p>';
        return;
    }
    $phone = stripslashes( strip_tags( $_POST['phone'] ) );
	$tovar = stripslashes( strip_tags( $_POST['tovar'] ) );
	$zabelejka = stripslashes( strip_tags( $_POST['zabelejka'] ) );
    $msg_body = "Заявката е: 
    $order 
    
	
    
    
    Име/Организация: $name
	Лице за контакти: $lice
    Email: $email
    Телефон: $phone
	Дата на товарене: $tovar
	Забележка: $zabelejka";
    
   echo nl2br($msg_body); // for testing
    
    //@mail($admin_email, $subject, $msg_body );
}


function handleOrderInfo() {
    global $PRODUCTS;;
    $str = ''; $total = 0; $order = '';
    while ( list($key, $val, $shirochina, $broi, $height, $deep,) = each($_POST) ) {
        // Check for valid quantity entries > 0
        if ( ( strpos($key, '_qty') !== false ) && is_int( (int)$val) && $val > 0 ) {
            $pt = strrpos($key, '_qty'); // get product abbr
            $name_pt = substr( $key, 0, $pt);
            
            foreach($PRODUCTS as $product) {
                list($prod_abbr, $prod_name, $prod_price,) = $product;
                if ($prod_abbr == $name_pt) {
                    $sub_tot = $val * $prod_price;
                    // build string to display order info
                    $str .= "<p>$broi бр $prod_name с дебелина $val мм височина $height мм с широчина $shirochina мм " . '</p>';
                    
                    $order .= "<p>$broi бр $prod_name с дебелина $val мм височина $height мм с широчина $shirochina мм";
                }
            }
        }
    }
    //$total = number_format($total, 2);
    $order = rtrim($order, ', ');
    if ( $str === '' ) {
        $str = '<p>Вие не сте поръчали нищо! Моля изберете артикул! .</p>';
    } else {
        $str = "<h2>Вашата заявка е:</h2>$str";
        sendAdminEmail($total, $order);
    }
    
    return $str;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Your Order</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="includes/ex.css" type="text/css" />
</head>
<body>

<?php
echo handleOrderInfo();
?>
    
    
<p> </p>
<p>A <code>sendAdminEmail</code> function is included in the head of this file. You will need to place your email address there (<code>$admin_email</code>) and uncomment the <code>mail</code> function to send the emails.</p>

<p>Back to <a href=".">index</a></p>

</body>
</html>

Не се отпечатват променливите $broi $height $width. Може ли някой да помогне? [/quote]
 

Back
Горе