2013-09-19 6 views
-1

shopping.phpО PHPSESSION концепции

<html> 
<head> 
<?php 
if(isset($_POST['sub'])){ 
    $a=$_POST['prod']; 
    $b=$_POST['qty']; 
    $_SESSION[$a]=$b;  
}  
?> 
</head> 
<body> 
<form method="post" action="Billing.php"> 

Select any Product: 
<select name="prod"> 
    <option>Nokia</option> 
    <option>Reliance</option> 
    <option>Samsung</option> 
    <option>LG</option> 
</select> 

<br><br> 
Quantity:<input name="qty"> <br><br> 

<input type="submit" name="sub" value="ADD"> 
</form> 
</body></html> 

Billing.php

<html> 
<head> 

<?php 
session_start(); 
echo session_id(); 
echo "<br>"; 
echo "selected products are:<br>"; 
// print_r($_SESSION); 
foreach($_SESSION as $x=>$y){ 
    echo "product is $x and Quantity is:$y<br>"; 
} 
?> 
</head> </html> 

выход

Warning: session_start() [function.session-start]: Cannot send session cookie - 
headers already sent by (output started at E:\PHP programs\Billing.php:2) in E:\PHP  programs\Billing.php on line 4 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - 
headers already sent (output started at E:\PHP programs\Billing.php:2) in E:\PHP programs\Billing.php on line 4 

Пожалуйста, любой дать SOLUTIO n для вышеуказанных предупреждающих сообщений и как я могу получить успешное выполнение программы?

+2

Постарайтесь создать более точные заголовки вопросов. «О xy» никому не поможет в будущем. – pduersteler

ответ

2

Вам нужно поставить session_start(); перед выходом любого вида (в первой строке файла). session_start необходимо отправить заголовок файла cookie, который не удастся, если вы отправили любой результат пользователю.

<?php 
session_start(); 
?> 
**shopping.php** 

<html> 

<head> 

<?php 

if(isset($_POST['sub'])){ 
2

SESSION должно быть наверху вашего файла. стартовый код с session_start();.

Похоже, вы первый объявил <html>, а затем вы начали сессию в billing.php просто внести следующие изменения ...

Billing.php

<?php session_start(); ?> 

<html> 
<head> 
0

** Billing.php * *

<?php 
session_start(); 
?> 
<html> 
<head> 

Удалите все новые линии или любые выходные данные, которые могут возникнуть перед session_start в ваших php-файлах, которые генерируют эту ошибку, которую вы опубликовали.

+0

Ahh thanks; Первая строка была не комментарием в файле, а указанием имени файла. Однако ваше редактирование более организовано. Благодаря! – Maz

0

Возможно, вы пытаетесь сделать что-то вроде этого ... проверьте это, есть два файла, которые вы создали. Главное, что вы забыли сделать, это session_start() в вашем первом файле. Таким образом, $ _SESSION действовала как переменная, созданная пользователем, а не переменная сеанса.

<? 
    //you always need to start session before using the session in php 
    session_start(); 
?> 
<html> 
<head> 
<?php 
if(isset($_POST['sub'])){ 
    $a=$_POST['prod']; 
    $b=$_POST['qty']; 
    $_SESSION[$a]=$b; 

    // check if its being added in the session or not 
    print_r($_SESSION); 
}  
?> 

</head> 
<body> 
<form method="post" action=""> 
Select any Product: 
<select name="prod"> 
<option>Nokia</option> 
<option>Reliance</option> 
<option>Samsung</option> 
<option>LG</option> 
</select> 
<br><br> 
Quantity:<input name="qty"> <br><br> 
<input type="submit" name="sub" value="ADD"> 
</form> 
</body> 
</html> 
<? 
    //it is best way to close the session at the end of the file 
    session_close(); 
?> 


<? session_start();?> 
<html> 
<head><title>Billing.php file</title></head> 
<body> 
<?php 
echo session_id(); 
echo "<br>"; 
echo "selected products are:<br>"; 
print_r($_SESSION); 

foreach($_SESSION as $x=>$y){ 
    echo "product is $x and Quantity is:$y<br>"; 
} 
?> 
</body> 
</html> 
Смежные вопросы