2014-02-25 50 views
1

您好,我有三个PHP代码,其中一页是index.php,我正在扫描用户的用户名和密码,然后将它发送到另一个文件userlogin_process.php我在哪里首先开始会话,然后我匹配扫描值与数据库,如果他们匹配我将它们存储到会话变量,但它显示我在该页面上2警告无法发送会话缓存限制器 - 头已发送和最后一页我有的user_session.php我在哪里找到用户到网站的主页。PHP错误无法发送会话缓存限制器 - 已发送的头文件

的index.php

session_start(); 
<form method="post" action="userlogin_process.php"> 
<div class="p">User Login</div> 
<table style="margin-top:5%;margin-left:12%;"> 
<tr><td> <label style="font-size:16px"> UserName :</label></td></tr> 
<tr><td><input class="input" type="text" name="username" placeholder="FirstName"/></td></tr> 
<tr><td><label style="font-size:16px">Password :</label></td></tr> 
<tr><td><input class="input" type="password" name="userpass" placeholder="Mobile No"/></td></tr> 
<tr><td>&nbsp;</td></tr> 
<tr><td align="center"><input class="button" type="submit" name="usersubmit" value="Login"/></td></tr> 
</table> 
</form> 

user_loginprocess.php

<?php 
session_start(); 
include("db.php"); 
$uname = $_POST['username']; 
$upass = $_POST['userpass']; 
echo $uname; 
echo $upass; 
$sql = mysql_query("select id,fname,mobile from user where fname='$uname'") or die(mysql_error()); 
$count = mysql_num_rows($sql); 
if ($count > 0){ 
while($row = mysql_fetch_array($sql)){ 
$id = $row['id']; 
$fname = $row['fname']; 
$mobile = $row['mobile']; 
} 
} 
if($uname == $fname && $upass == $mobile){ 
$_SESSION['uid'] = $id; 
$_SESSION['username'] = $fname; 
$_SESSION['usermobile'] = $mobile; 
$_SESSION['login'] = "yes"; 
header('location:user_session.php'); 
} 
else{  
header('location:index.php?msg=incorrect'); 
} 
?> 

user_sesssion.php

<?php 
session_start(); 
if(isset($_SESSION['login']) == "yes"){ 
header('location:user_detail.php?pageno=1'); 
} 
else{ 
header('location:index.php?msg=login'); 
} 
?> 
+1

哇我可以做很多与文件的名称,你可以发布相关的代码? – jycr753

+0

这可能会帮助你stackoverflow.com/questions/8812754/cannot-send-session-cache-limiter-headers-already-sent –

+0

使用'ob_start()'在第一行 – Ananth

回答

0

第一件事,我可以看到的是,你用session_start()多次。正如你可以在他们的docs中看到的那样,它不会造成任何伤害,但它可能会引发错误或警告..所以最好坚持只使用一次。

其次请使用mysqli_*docs因为my_sql已被弃用。或PDO

,这部分看起来关::

session_start(); 
<form method="post" action="userlogin_process.php"> 

它应该是:

<?php session_start(); ?> 
<form method="post" action="userlogin_process.php"> 

但无论哪种方式是错误的,因为会议应在页面的顶部看呆了。并最后尝试修复所有这些小错误,它可能工作,或抛出另一个错误,无论哪种情况是好的,因为正在向前移动:)

相关问题