在索引页面上出现session_start错误

时间:2013-11-07 16:36:28

标签: php

我正在开发一个新项目www.merapalwal.com。我为此项目创建了一个用户登录面板,用户可以使用他们的电子邮件ID和密码登录。一切正常,用户正确创建和更新。我在标题页中使用了登录表单,该页面包含在所有其他页面中。

我创建了两个db文件, db-user.php (对于db config)和 db-sess.php (对于带有session_start的db config)。但是如果我在 header-top.php 中的登录表单上使用 db-sess.php ,它会给我错误:

  

警告:session_start():无法发送会话缓存限制器 - 已经发送的标头(在/home/mypalwal/public_html/index.php:16中开始输出)/home/mypalwal/public_html/includes/db-sess.php在第3行

当我使用 db-user.php 时,它允许用户登录但在欢迎后不显示用户名,请告知我代码如下:

header.php:

<?php

ini_set('session.bug_compat_42',0);
ini_set('session.bug_compat_warn',0);

include('includes/db-sess.php');

$error = '';

$form = $_POST['login'];

$lemail = $_POST['lemail'];

$pass = $_POST['pass'];
$_SESSION['lemail'] = $_POST['lemail'];

if( isset($form) ) {

if( isset($lemail) && isset($pass) && $lemail !== '' && $pass !== '' ) {

$sql = mysql_query("SELECT * FROM `userdata` WHERE email='$lemail' and pass='$pass' and type='Normal User';");

if( mysql_num_rows($sql) != 0 ) { //success

$_SESSION['logged-in'] = true;

print "<script type=\"text/javascript\">";
print "window.location.href = \"users/index.php\"";
print "</script>";
exit;

} 

else { $error = "Login Detail Incorrect"; }

} else { $error = 'Login Detail Missing';}

}
?>

db-user.php:

<?php
$dbhost = 'localhost';
$dbuser = '######';
$dbpass = '######';
$db = '#######';
$conn = mysql_connect($dbhost, $dbuser, $dbpass );
mysql_select_db($db);
?>

如果我将上述代码用于db config,它允许登录并重定向到下一页但不显示用户详细信息,但是当我使用 db-sess.php 时{{1}在其中,登录表单允许我登录并显示用户名。

如果我使用 db-sess.php ,则会在 index.php 页面上显示错误:

  

警告:session_start():无法发送会话缓存限制器 - 已经发送的标头(在/home/mypalwal/public_html/index.php:16中开始输出)/home/mypalwal/public_html/includes/db-sess.php在第3行

1 个答案:

答案 0 :(得分:0)

之前在3个文件中的一个文件中有一些空格,这会导致页面输出启动并发送标题。删除空格,特别是删除?&gt;

P.S。:您的代码中有2个令人惊讶的安全问题:SQL注入可能性和明文密码。