php从表单设置会话变量

php从表单设置会话变量,php,session,session-variables,Php,Session,Session Variables,这是我的主报告页面,我将会话变量发送到另一个php页面。我在尝试将表单数据发布到会话变量时遇到了问题,因为这样查询就不会返回任何结果。我已经搜索和修补了几天,但没有结果 <!DOCTYPE html> <?php session_start(); /* this works when the session variables are static*/ $_SESSION["date"] = '2012-05-01'; $_S

这是我的主报告页面,我将会话变量发送到另一个php页面。我在尝试将表单数据发布到会话变量时遇到了问题,因为这样查询就不会返回任何结果。我已经搜索和修补了几天,但没有结果

<!DOCTYPE html>
    <?php
      session_start();
     /* this works when the session variables are static*/
     $_SESSION["date"] = '2012-05-01'; 
     $_SESSION["ServiceOrders"] ='Network Error';  
     /* when I try and post the form values the query returns nothing
      $_SESSION["date"] = $_POST['sdate']; 
      $_SESSION["ServiceOrders"] =   $_POST['ServiceOrders']; 
     */

    ?>
    <html>

  <head>   
      <link rel='stylesheet' type='text/css' href='styles.css' />
      <link rel="stylesheet" href="grid.css" type="text/css" />
      <link rel="stylesheet" href="backgroundcss.css" type="text/css" />
<style>
form { width: 700px; }
label { float: left; width: 100px; }
input[type=text] { float: left; width: 200px; }
.clear { clear: both; height: 0; line-height: 0; }
.floatright { float: right; }

</style>

    <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
    <script type='text/javascript' src='menu_jquery.js'></script>
    <script type="text/javascript" src="jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>    

<script>
  $(function() {
    $( "#datepicker" ).datepicker();
  });

 $(function() {
     $("#refresh").on("click", function() {
        $("#mydiv").load("http://***.***.***.***/ServiceOReport.php");
        return false;
    })
  })

</script>

  </script>
  </head>

  <body  class="container">
  <br>
<div id='menu'>
<ul>
   <li class='active'><a href='LineChart.php'><span>Home</span></a></li>
   <li class='has-sub'><a href='#'><span>Contacts</span></a>
      <ul>
         <li><a href='allrows.php'><span>Inbound Calls Codes</span></a></li>
         <li class='last'><a href='#'><span>Contact Free Form</span></a></li>
      </ul>
   </li>
   <li class='has-sub'><a href='#'><span>Service Orders</span></a>
      <ul>
         <li><a href='#'><span>Company Service Orders</span></a></li>
         <li class='last'><a href='#'><span>Vendor Service Orders</span></a></li>
      </ul>
   </li>
   <li class='last'><a href='#'><span>Ad Hoc Report Builder</span></a></li>
</ul>

</div>
<br>
<form action="ServiceOReport.php" method="post">
<select name="ServiceOrders">
  <option value="Network Error">Network Error</option>
  <option value="Reverse Rotation Detected">Computer Failure</option>
  <option value="Cover Off">Misc</option>
  <input type="text" name="sdate"id="datepicker" >
  <input type="submit" id ="refresh" value=" Submit "/><br />
</select>
</form>

<div id="mydiv" class="grid_12 omega scroll">

</div>  

<div class="grid_12 ">  
    <div   id="TopBorder"  class="grid_12">
        <footer class="mainFooter">
            <p>Copyright &copy; 2014 <a href="http://test.com">Test</a></p>
        </footer>
    </div>
</div>  

  </body>
</html>

表格{宽度:700px;}
标签{浮动:左;宽度:100px;}
输入[type=text]{float:left;width:200px;}
.clear{clear:两者;高度:0;行高度:0;}
.floatright{float:right;}
$(函数(){
$(“#日期选择器”).datepicker();
});
$(函数(){
$(“#刷新”)。在(“单击”,函数(){
$(“#mydiv”).load(“http://***.**.**/ServiceOReport.php”);
返回false;
})
})


网络错误 计算机故障 杂项
版权及副本;2014年

这是我的ServiceOReport.php页面,在这里我获取会话变量并在查询中执行它们

<html>
  <head>   
      <link rel='stylesheet' type='text/css' href='styles.css' />
      <link rel="stylesheet" href="grid.css" type="text/css" />
      <link rel="stylesheet" href="backgroundcss.css" type="text/css" />
 </head>      

  <body  class="container">
        <?php
 session_start();

        // Make a MySQL Connection
    mysql_connect("localhost", "****", "********") or die(mysql_error());
    mysql_select_db("Test_DB") or die(mysql_error());

    $ServiceOrders= $_SESSION["ServiceOrders"];
    $string=$_SESSION["date"];
    $timestamp = strtotime($string);
    $correctedDate = date("Y-m-d H:i:s", $timestamp);

    $result = mysql_query("Select EquipmentID,StreetNumber,StreetName,City,ZipCode,ZipPlusFour,CreatedDate,ServiceOrderdesc 
                            From CSS_ServiceOrders  
                            Where ServiceOrderdesc = '$ServiceOrders' and CreatedDate > '$correctedDate'
                            order by CreatedDate,StreetName,StreetNumber;") 
    or die(mysql_error());  

    echo '<table class="bordered">
<thead>
    <tr>
        <th scope="col">EquipmentID</th>
        <th scope="col">ZipPlusFour</th>        
        <th scope="col">StreetNumber</th>
        <th scope="col">StreetName</th>
        <th scope="col">City</th>       
        <th scope="col">ZipCode</th>                    
        <th scope="col">CreatedDate</th>
        <th scope="col">ServiceOrderdesc</th>   
    </tr>
</thead>
<tbody>';


    // keeps getting the next row until there are no more to get
    while($row = mysql_fetch_array( $result )) {

        echo "<tr><td>"; 
        echo $row['EquipmentID'];
        echo "</td><td>"; 
        echo $row['ZipPlusFour'];
        echo "</td><td>";       
        echo $row['StreetNumber'];
        echo "</td><td>";       
        echo $row['StreetName'];
        echo "</td><td>";       
        echo $row['City'];
        echo "</td><td>";       
        echo $row['ZipCode'];
        echo "</td><td>";       
        echo $row['CreatedDate'];
        echo "</td><td>"; 
        echo $row['ServiceOrderdesc'];
        echo "</td></tr>"; 

    } 

    echo "</tbody></table>";
?>
</body>
</html>


在任何输出之前,必须将
session\u start()
放在页面顶部

<?php
    session_start();
?>
<!DOCTYPE html>
<?php    


正如@John所说,您需要将
session\u start()
放在文件的开头,主要原因是解释器一旦看到任何非PHP代码或回显,就会发送头。它必须这样做,否则它不能发送任何内容,但一旦发送了标题,它们就不能重新发送

PHP会话严重依赖于标题,它必须设置并使页面发送cookie详细信息,以便知道必须查找哪个会话


确保在php标记之前没有空格或空行,并且在
session\u start()
命令之前没有回音。这些很难调试,很容易出错,所以我总是向人们提到它们。

将其隔开
name=“sdate”id=“datepicker”
name=“sdate”id=“datepicker”
在这里发布时不包括您的id和密码数据。有了这一点和您发布的IP地址,我可以访问您的数据库服务器。如果您没有收到已发送的
标题
通知,您的错误报告显示得不够高。@MikeW您还需要能够登录到他的服务器,因为凭证是针对
username@locahost
@Barmar我相信你会相信设置用户名访问权限的网站数量@%I仍然无法理解在何处设置会话变量$\u session[“date”]=$\u POST[“sdate”]$_会话[“ServiceOrders”]=$\u POST[“ServiceOrders”];
<?php
    session_start();
?>
<html>
  <head>   
      <link rel='stylesheet' type='text/css' href='styles.css' />
      <link rel="stylesheet" href="grid.css" type="text/css" />
      <link rel="stylesheet" href="backgroundcss.css" type="text/css" />
 </head>      

  <body  class="container">
        <?php