会话不传递信息php5.5

时间:2015-10-30 00:08:35

标签: php session

我最近改变了服务器,事情并没有像以前那样工作

我有针对性地指出会话信息没有从一个页面转移到下一个页面

这是第一页的一半

<?php include 'header.php';?>

<?php
session_start();
$id = isset($_GET['id']) ? $_GET['id'] : "";
$con = mysqli_connect("*","*","*","*");


// SELECT DATABASE

$db = mysqli_select_db("images", $con);

function GetCartId()
{
// This function will generate an encrypted string and
// will set it as a cookie using set_cookie. This will
// also be used as the cookieId field in the cart table
if(isset($_COOKIE["cartId"]))
{
return $_COOKIE["cartId"];
}
else
{
// There is no cookie set. We will set the cookie
// and return the value of the users session ID
setcookie("cartId", session_id(), time() + ((3600 * 24) * 30));
return session_id();
}
}


// Get data from the database depending on the value of the id in the URL


$id = $_GET["id"];
$strSQL = "SELECT * FROM images WHERE image= '$id'";
$rs = mysqli_query($con,$strSQL);

while($row = mysqli_fetch_array($rs)) {

$name =   $row['image_name'];
echo '<h1 style="font-size:2em;">';
echo $name;
echo'</h1>';
echo '<div id = "galpic">';
$thispic = $row['image'];
echo '<div id = "pic">';        
echo '<br /> <img src="'.$thispic.'" style = "max-width:100%;"/> ';
echo '</div>';      
$description =   $row['image_description'];


echo ' <a href="#" class="big-link" data-reveal-id="about" data-      animation="fade"><h3>about</h3></a>';
echo ' <a href="#" class="big-link" data-reveal-id="card" data-animation="fade"><h3>card</h3></a>';
echo ' <a href="#" class="big-link" data-reveal-id="small" data-animation="fade"><h3>small</h3></a>';
echo ' <a href="#" class="big-link" data-reveal-id="big" data-animation="fade"><h3>big</h3></a>';
echo ' <a href="#" class="big-link" data-reveal-id="triptych" data-animation="fade"><h3>limited</h3></a>';
echo ' <a href="#" class="big-link" data-reveal-id="share" data-animation="fade"><h3>share</h3></a>';
echo '</div>';      


}

$_SESSION['name'] = $name; 
$_SESSION['thispic'] = $thispic;

THESE LAST TWO LINES ARE THE SESSION INFORMATION THAT WORKS FOR THE REST     OF THIS PAGE BUT DOES NOT PASS THROUGH TO THE NEXT PAGE

然后下一页是............

    <?php include 'header.php';?>
<?PHP
session_start();
$con =   mysqli_connect("*","*","*","*");
$_SESSION['name'] = '$name';
$_SESSION['thispic'] = '$thispic';

echo '<div id = "foodbowl">';
echo '<h1>ORDER FORM</h1>';
echo '</div>';

echo '<div id = "checkout">';
echo '<table style = "font-size:0.7em;margin-top:3%;line-height:100%;">';
echo '<tr>';
echo '<td>checkout progress bar:</td>';
echo '<td><a href ="finalcart.php">check your order</a></td>';
echo '<td style = "background-color:#e8d9d9">fill in details</td>';
echo '<td>choose payment option</td>';
echo '<td>final check?</td>';
echo '</tr>';
echo '</table>';
echo '</div>';



function GetCartId()
{
// This function will generate an encrypted string and
// will set it as a cookie using set_cookie. This will
// also be used as the cookieId field in the cart table
if(isset($_COOKIE["cartId"]))
{
return $_COOKIE["cartId"];
}
else
{
// There is no cookie set. We will set the cookie
// and return the value of the users session ID
setcookie("cartId", session_id(), time() + ((3600 * 24) * 30));
return session_id();
}
}
$checkout = mysqli_query($con,"SELECT * FROM cart where cookieId =    '".GetCartId()."'");
echo '<div id = "checkout">';
echo '<table>
    <tr>
    <th colspan = "4"><b>YOUR CHOICE</b></th>
    <th><b>PRICE</b></th>
    </tr>
 ';

while   ($row = mysqli_fetch_array($checkout)){

$pic = $row['image'];

echo  '<tr><td>';
echo  $row['name'];
echo  '</td><td>';
echo  '<img src="'.$pic.'" style ="height:33px;"/>' ;
echo  '</td><td >';
echo  $row['product'];
echo  '</td><td >';
echo  '$'. $row['price'].'.00 au';
echo  '</td></tr>';
}
echo '<tr><td colspan ="4">';
echo '<p>TOTAL</P>';
echo '</td><td>';

$result = mysqli_query($con,"select sum(price) as total from cart where     cookieId = '".GetCartId()."'");
while($row = mysqli_fetch_assoc($result)){
    echo '$'.$row['total'].'.00 au';

}

echo '</td></tr>';
echo  '</table>';
echo '</div>';
$name = $row['name'];
$product = $row['product'];
?>



<form id="buyer"  method="post"  action="email.php" >
<p> these are the details Mandy will need to send your product -</p>

<?php

$checkout = mysqli_query($con,"SELECT * FROM cart where cookieId =    '".GetCartId()."'");

while   ($row = mysqli_fetch_array($checkout)){

echo  '<br / >';
echo  'a '.$row['product'];
echo ' of '.$row['name'];

}
?>

1 个答案:

答案 0 :(得分:1)

在致电session_start()之前,您不能拥有任何<任何 - 输出。这包括?><?php之间的空白行,以及header.php中的任何内容。当您有输出时,它会阻止您发送带有session_start()的会话cookie。没有cookie,没有会话。

session_start()放在脚本的最顶层,不要无理地打开和关闭PHP标记(<?php ... ?>)。