简体   繁体   中英

Session is working in Localhost Properly but not Online (Cpanel)

Hello guys Sorry for my stupid question regarding to my yesterday question its not solved

yet even the advice you have given but still not working. i have removed all of spaces but

still showing the problem for me. it's working perfect in localhost but not in CPANEL.

Here is the errors which give:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/scalepro/public_html/Admin Panel/Remote Employee/main.php:1) in /home/scalepro/public_html/Admin Panel/Remote Employee/main.php on line 1

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/scalepro/public_html/Admin Panel/Remote Employee/main.php:1) in /home/scalepro/public_html/Admin Panel/Remote Employee/main.php on line 1

    Warning: Cannot modify header information - headers already sent by (output started at /home/scalepro/public_html/Admin Panel/Remote Employee/main.php:1) in /home/scalepro/public_html/Admin Panel/Remote Employee/main.php on line 13

    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0

ANY ONE PLEASE ???

Here is my code:

    <?php session_start(); 
    require_once('../../Admin Panel/db.php');
    if(isset($_POST['email']) && !empty($_POST['email']) && isset($_POST['password']) && !empty($_POST['password']))
    {
     $email = $_POST['email'];
     $password = $_POST['password'];
     $query="SELECT RemoteEmployeeFullName, RemoteEmployeeEmail, RemoteEmployeePassword FROM remoteemployees WHERE RemoteEmployeeEmail='".$email."' AND RemoteEmployeePassword='".$password."'";
     $queryrun=$connection->query($query);
     if($queryrun->num_rows > 0)
     {
         $_SESSION['email']=$RemoteEmployeeFullName;     
         header("Location: /home/scalepro/public_html/Admin Panel/Remote Employee/REPLists.php");
     }
     else
     {
        echo 'Email: <b>'.$email. '</b> or Password <b>'. $password.'</b> Is Not Typed Correctly Try Again Please!.';
        header( "refresh:5;url= /home/scalepro/public_html/spd/myaccount.php" );
     }

    }
    else
    {
        header( "refresh:5;url= /home/scalepro/public_html/spd/myaccount.php" );
    }
    ?>

if the condition gets true this will be redirected to a page by the name of REPLists.php

here is the page.

<?php session_start();
require_once('../../Admin Panel/db.php');
?>
<html>
<head>
<style>
.wrapper
{
  width:1250px;
  height:auto;
  border:solid 1px #000;
  margin:0 auto;
  padding:5px;
  border-radius:5px;
  -webkit-border-radius:5px;
  -moz-border-radius:5px;
  -ms-border-radius:5px;
}
.wrapper .header
{
  width:1250px;
  height:20px;
  border-bottom:solid 1px #f0eeee;
  margin:auto 0;
  margin-bottom:12px;
}
.wrapper .header div
{
text-decoration:none;
color:#F60;
}
.wrapper .header div a
{
text-decoration:none;
color:#F60;
}
.wrapper .Labelcon
{
  width:1250px;
  height:29px;
  border-bottom:solid 1px #ccc;
}

.wrapper .Labelcon .Label
{
  width:125px;
  height:20px;
  float:left;
  text-align:center;
  border-left:1px solid #f0eeee;
  font:Verdana, Geneva, sans-serif;
  font-size:14.3px;
  font-weight:bold;

}
.wrapper .Valuecon
{
  width:1250px;
  height:29px;
  border-bottom:solid 1px #ccc;
  color:#F60;
  text-decoration:none;
}
.wrapper .Valuecon .Value
{
  width:125px;
  height:20px;
  float:left;
  text-align:center;
  border-left:1px solid #f0eeee;
  font-size:14px;
}
</style>
</head>
<body>
<div class="wrapper">

<div class="header">
<div style="float:left;"><font color="#000000">Email: 
</font>
<?php 
if(isset($_SESSION['email']))
{
echo $_SESSION['email'];
}
?>

</div>
<div style="float:right;">  <a href="#">My Profile</a> | <a href="logout.php">Logout</a></div>
</div>


<div class="Labelcon">
  <div class="Label">Property ID</div>
  <div class="Label">Property Type</div>
  <div class="Label">Property Deal Type</div>
  <div class="Label">Property Owner</div>
  <div class="Label">Proposted Price</div>
</div>
<?php
if(!isset($_SESSION['email']))
{
  header('Location:../../spd/myaccount.php');
}
else
{
  $query = "SELECT 
   properties.PropertyID,
   properties.PropertyType,
   properties.PropertyDealType,
   properties.Status,
   properties.PropostedPrice,

   remoteemployees.RemoteEmployeeFullName,

   propertyowners.PropertyOwnerName,
   propertydealers.PropertyDealerName

   FROM remoteemployees,
        propertyowners,
        propertydealers,
        properties

   WHERE 

   properties.PropertyOwnerID=propertyowners.PropertyOwnerID

   AND properties.PropertyDealerID=propertydealers.PropertyDealerID

   AND remoteemployees.RemoteEmployeeID=properties.RemoteEmployeeID



   ORDER BY properties.PropertyID
   ";

  $query_run = $connection->query($query);
  if( $connection->error ) exit( $connection->error );
  while($row=$query_run->fetch_assoc()) 
  {

?>
<div class="Valuecon">
  <div class="Value"><?php echo $row['PropertyID'] ?></div>
  <div class="Value"><?php echo $row['PropertyType'] ?></div>
  <div class="Value"><?php echo $row['PropertyDealType']?></div>
  <div class="Value"><?php echo $row['PropertyOwnerName'] ?></div>
  <div class="Value"><?php echo $row['PropostedPrice'];?></div>
</div>

<?php } }?>
</div>
</body>
</html>

You need to put ob_start() at the beginning of your script and ob_flush() at the end. its doing this because your headers are already sent and session_start will throw an error because its attempting to send another header parameter.

<?php 
  // ob_start holds data in the script, 
  // instead of sending data in pieces
  ob_start();

  // your php code

  // ob_flush sends all the data to the browser
  ob_flush();
?>

also any whitespace, html code before <?php or after ?> the php tags can cause this error. <?php?>之后的任何空白,html代码也可能导致此错误。 there is a great answer on this question here at SO Headers already sent by PHP

确保session_start()之前没有空格或文本输出。

For me the solution was to remove any code before <?php session_start() which you've already removed. At least that's what you think. I had my header included in my index.php after some code. I removed session_start from header and put this as the very first code in my index.php or any other main.php file.

<?php ob_start();if(!isset(session)){session_start();}
else echo "Session Started already, bro!?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM