简体   繁体   English

php:在服务器上实时运行时会话不起作用

[英]php: session not working while running live on server

I am working on a project of PHP.我正在开发一个 PHP 项目。 I have a strange error.我有一个奇怪的错误。 My PHP project is working well on local server (WAMP server).我的 PHP 项目在本地服务器(WAMP 服务器)上运行良好。 But after hosting it on live server, it is not working.但是在实时服务器上托管后,它不起作用。

Problem: Session variable created on Login.php page is not passing value on Report.php page.问题:在创建Session变量Login.php页面上没有传递价值Report.php页。 The code is as below:代码如下:

Login.php登录.php

<?php
$con=mysql_connect("mysql51****************","username","password")or die(mysql_error());
$select_db=mysql_select_db("database_name",$con);
$error="";

if(isset($_POST['submit']))
{
    $userid=mysql_real_escape_string($_POST['username']);
    $password=mysql_real_escape_string($_POST['password']);
    $sql="SELECT * FROM user_details WHERE user_name='{$userid}' AND password='{$password}' ";

    $result = mysql_query($sql);
    if(mysql_num_rows($result) <= 0)
    {
        $error="Invalid UserId or Password.";
    }
    else
    {
        //session_set_cookie_params(60*60*60, '/', '.abcxyz.com');
        ini_set('session.cookie_domain','.abcxyz.com');
    session_start();
    //$userid=mysql_real_escape_string($_POST['abc']);
    //echo($userid);
    $_SESSION['user']=$userid;
    $_SESSION['userid']="true";
    //echo $_SESSION['userid'];
    $error="Successfully Login";
    //header("Location: admin.php?page=report");
    /*echo '<script type="text/javascript">alert("header is not working.' . $_SESSION['user'] . '");</script>';
*/  ?>
    <script type="text/javascript">
        /*alert("Please select a Source And Destination Country");  */
        window.location.href='admin.php?page=report';
    </script>       
<?php

    }
}
?>

<br />

  <h1 style="text-align:center">Login</h1>
  <form  class="login"  action="login.php" method="post" name="form1" id="form1">
  <p>Username:</p>
      <input class="login-input" type="text" name="username" value=""/>

    <p> Password : </p>
      <input class="login-input" type="password" name="password" value=""/>

  <p>
    <p style="color:#F00; font-size:12px; font-weight:100"><?php echo htmlentities($error); ?>  </p>
    <input  class="login-submit" type="submit" name="submit" value="Login"/>    
</form>

Report.php报表.php

<?php
include("connections/Connections.php");
/*$con=mysql_connect("localhost","admin","")or die(mysql_error());
$select_db=mysql_select_db("test",$con);*/
/*session_start();
if(session_is_registered('test'))
{
    echo"registered";
}
else
{
    header("Location: login.php");
}*/

//$user=$_SESSION['userid'];

$user=$_SESSION['userid'];
echo '<script type="text/javascript">alert("header is not working.' .$user . '");</script>';
if($user=="true")
{
    //echo " Logining Successfully.";
}
else
{
    ?>

    <script type="text/javascript">
        //alert("Please select a Source And Destination Country");  
        window.location.href='login.php';
    </script>
<?php
    //header("Location: login.php");
}
?>
<?php
/*session_start();
$user=$_SESSION['userid'];
echo($user);
if($user=="Admin")
{
    echo " Logining Successfully.";*/

$sql="SELECT * FROM register ";
if(isset($_POST['btnfilter']))
{
    $search_term=mysql_real_escape_string($_POST['search_text']);
    $answer = $_POST['filter'];  
    if ($answer == "ID") {          
        $sql .="WHERE id= '{$search_term}' ";
    }
    elseif ($answer == "Name") {          
        $sql .="WHERE fullname Like '%{$search_term}%'";
    }
    elseif ($answer == "DOB") {          
        $sql .="WHERE dob Like '%{$search_term}%' ";
    }
    elseif ($answer == "Occupation") {          
        $sql .="WHERE occupation Like '%{$search_term}%' ";
    }
    else
    {
        echo("Pealse Enter a valid value"); 
    }
}
elseif(isset($_POST['btnrmfilter']))
{
    $sql="SELECT * FROM register";
}

$query=mysql_query($sql) or die(mysql_errno());
//}
/*else
{
    header('Location: /login.php');
}*/
?>

<style type="text/css">
    table
    {
        font-size:12px;border-bottom:1px solid #ccc;
    border-left:1px solid #ccc}
    td 
    { 
    padding:5px 3px;
    border-top:1px solid #ccc;
    border-right:1px solid #ccc}
</style>

  <div class="content">
  <h1>Data Reading From database.</h1>
  <form id="search_form" method="post" action="">
  <div class="radio">
      <input type="radio" name="filter" value="ID" />ID
      <input type="radio" name="filter" value="Name" />Name
      <input type="radio" name="filter" value="DOB"/>DOB
      <input type="radio" name="filter" value="Occupation"/>Occupation<br />
  </div>
  <div class="input" >
      <input   type="text" name="search_text" value=""/>
      <input  type="submit" value="FilterData" name="btnfilter" />     
      <input  type="submit" value="RemoveFilter" name="btnrmfilter" />
  </div>
  </form>

    <table border="0" cellpadding="0" cellspacing="0">
     <colgroup> 
    <col width="2%" style="color:#f60" valign="middle" align="center" >
    <col width="12%" >
    <col width="8%" >
    <col width="5%" align="center" >
    <col width="10%" >

    </colgroup>
      <tr style="background:#eee; height:30px;">
        <td>ID</td>
        <td>Name</td>
        <td>DOB</td>
        <td>Nationality</td>
        <td>Mobile No</td>
        <td>Phone No</td>
        <td>Email</td>
        <td>Education</td>
        <td>Occupation</td>
        <td>Comment</td>
        <td >Noofexp</td>
      </tr>

        <?php while($row = mysql_fetch_array($query)) { ?>
          <tr>
          <td><?php echo $row['id']; ?></td>
          <td><?php echo $row['fullname']; ?></td>
          <td><?php echo $row['dob']; ?></td>
          <td><?php echo $row['nationality']; ?></td>
          <td><?php echo $row['mobno']; ?></td>
          <td><?php echo $row['phno']; ?></td>
          <td><?php echo $row['email']; ?></td>
          <td><?php echo $row['education']; ?></td>
          <td><?php echo $row['occupation']; ?></td>
          <td><?php echo $row['comment']; ?></td>
          <td><?php echo $row['noofexp']; ?></td>
        </tr>
        <?php } ?>
    </table>
    <h2>&nbsp;</h2>
    <h3>Thanks for view.</h3>

    <!-- end .content --></div>
  <div class="footer">
    <p>Footer</p>

<!-- end .footer --></div>
  <!-- end .container --></div>
</body>
</html>

Edit:编辑:

As the answers suggested, i edited as below:正如答案所建议的那样,我编辑如下:

Login.php:登录.php:

<?php
session_start();
$con=mysql_connect("mysql51*************","username","password")or die(mysql_error());...
...

Report.php:报告.php:

<?php
session_start();
include("connections/Connections.php");...
...

But still i am not getting the session variable value in Report.php .但我仍然没有在Report.php获得会话变量值。

session_start(); should be placed on top of the both pages.应放在两页的顶部。

You must add session_start();您必须添加session_start(); in your report.php page在您的 report.php 页面中

have you checked your phpinfo() ?你检查过你的 phpinfo() 吗? make shure you have Session Support - enabled确保您已启用会话支持

If it runs on your WAMP successfully, It is very possible that the problem is not from your code but from your hosting company.如果它在您的 WAMP 上成功运行,则问题很可能不是来自您的代码,而是来自您的托管公司。

Something like this happened to me before.类似的事情发生在我身上。

Just call you hosting company and tell them to enable session on their server for you and they will it for you.只需致电您的托管公司并告诉他们为您在他们的服务器上启用会话,他们就会为您服务。

and always start session first before any script just as you did above.并始终在任何脚本之前首先启动会话,就像上面所做的那样。

  session_start();

Enjoy享受

Go try adding this on your code:去尝试在你的代码中添加这个:

if(!$con)
    {
        die('Could not connect:'. mysql_error());
    }

and see what the error is.看看是什么错误。

very easy solve to this problem copy this code很容易解决这个问题复制这个代码

error_reporting(0);
session_start();

Note: give space from left side of session_start();注意:从session_start();左侧留出空间session_start(); if you want understand about this watch this video如果你想了解这个观看这个视频

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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