2013-11-07 2 views
-2

Я работаю над новым проектом www.merapalwal.com. Я создал панель входа пользователя для этого проекта, где пользователь может войти с идентификатором и паролем электронной почты. Все работает нормально, пользователь создан и обновлен правильно. Я использовал форму входа в заголовок, которая включена во все остальные страницы.Ошибка sesstion_start на индексной странице

Я создал два DB файлы, дб-User.php (для БД конфигурации) и DB-sess.php (для БД конфигурации с session_start). Но если я использую DB-sess.php на форме входа в заголовочном-top.php, он дает мне ошибку:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/mypalwal/public_html/index.php:16) in /home/mypalwal/public_html/includes/db-sess.php on line 3

Когда я использую дб-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';} 

} 
?> 

дб-user.php:

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

Если я использую приведенный выше код для БД конфигурации, это позволяет логин и перенаправляет на следующую страницу, но не показывает данные пользователя, но когда я использую DB-СЭСС. php, в котором есть session_start, в форме входа в систему можно войти и показать имя пользователя.

Если я использую DB-sess.php, он показывает ошибку на index.php страница:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/mypalwal/public_html/index.php:16) in /home/mypalwal/public_html/includes/db-sess.php on line 3

+0

это поможет, если вы указали свой код db-sess.php – Jim

+0

возможный дубликат [Заголовки уже отправлены PHP] (http://stackoverflow.com/questions/8028957/headers-already-sent-by-php) – Sliq

ответ

0

Существует некоторое пространство, прежде чем в одном из 3-х файлов, что приводит страницу выход для запуска и отправку заголовков. Снимите пространство и особенно удалите?>

P.S .: У вас есть 2 удивительных проблемы безопасности в вашем коде: возможности SQL Injection и четкие текстовые пароли.

Смежные вопросы