php:在服务器上实时运行时会话不起作用 [英] php: session not working while running live on server

查看:31
本文介绍了php:在服务器上实时运行时会话不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个 PHP 项目.我有一个奇怪的错误.我的 PHP 项目在本地服务器(WAMP 服务器)上运行良好.但是在实时服务器上托管后,它不起作用.

问题:Login.php 页面上创建的会话变量没有在 Report.php 页面上传递值.代码如下:

登录.php

<script type="text/javascript">/*alert("请选择来源和目的地国家");*/window.location.href='admin.php?page=report';<?php}}?><br/><h1 style="text-align:center">登录</h1><form class="login" action="login.php" method="post" name="form1" id="form1"><p>用户名:</p><input class="login-input" type="text" name="username" value=""/><p>密码:</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"/></表单>

Report.php

<script type="text/javascript">//alert("请选择来源和目的地国家");window.location.href='login.php';<?php//header("位置:login.php");}?><?php/* session_start();$user=$_SESSION['userid'];回声($用户);if($user=="管理员"){echo "登录成功.";*/$sql="SELECT * FROM 寄存器";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 == "姓名") {$sql .="WHERE fullname Like '%{$search_term}%'";}elseif ($answer == "DOB") {$sql .="WHERE dob Like '%{$search_term}%' ";}elseif ($answer == "职业") {$sql .="WHERE 职业 Like '%{$search_term}%' ";}别的{echo("请输入有效值");}}elseif(isset($_POST['btnrmfilter'])){$sql="SELECT * FROM register";}$query=mysql_query($sql) 或 die(mysql_errno());//}/*别的{header('位置:/login.php');}*/?><style type="text/css">桌子{font-size:12px;border-bottom:1px solid #ccc;左边框:1px 实心 #ccc}td{填充:5px 3px;边框顶部:1px 实心 #ccc;右边框:1px 实心 #ccc}</风格><div class="内容"><h1>从数据库读取数据.</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 class="input" ><input type="text" name="search_text" value=""/><input type="submit" value="FilterData" name="btnfilter"/><input type="submit" value="RemoveFilter" name="btnrmfilter"/>

</表单><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>姓名</td><td>DOB</td><td>国籍</td><td>手机号码</td><td>电话号码</td><td>电子邮件</td><td>教育</td><td>职业</td><td>评论</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 } ?><h2>&nbsp;</h2><h3>感谢观看.</h3><!-- end .content --></div><div class="footer"><p>页脚</p><!-- end .footer --></div><!-- end .container --></div></html>

正如答案所建议的,我编辑如下:

登录.php:

Report.php:

但我仍然没有在 Report.php 中获取会话变量值.

解决方案

session_start(); 应该放在两个页面的顶部.

I am working on a project of PHP. I have a strange error. My PHP project is working well on local server (WAMP server). 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. The code is as below:

Login.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
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
session_start();
$con=mysql_connect("mysql51*************","username","password")or die(mysql_error());...
...

Report.php:

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

But still i am not getting the session variable value in Report.php.

解决方案

session_start(); should be placed on top of the both pages.

这篇关于php:在服务器上实时运行时会话不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆