2014-12-10 2 views
0

Я пробовал какое-то решение из Интернета, я положил session_start(); на первой строке, также попробуйте использовать @ob_start(); Любое другое решение ??? Мой код здесь:Предупреждение: session_start(): не удается отправить сеанс, я попробовал все возможное решение

<?php 
session_start(); 
require_once('page.inc'); 

?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>site 1</title> 
<meta name="keywords" content="universe, blog theme, black, website template, templatemo" /> 
<meta name="description" content="About Universe, Our Company, free website template" /> 
<link href="templatemo_style.css" rel="stylesheet" type="text/css" /> 

<script type="text/javascript" src="js/jquery-1.6.3.min.js" ></script> 


</head> 
<body> 
<?php 
if(!isset($_SESSION['loggedinuser'])) 
{ 
if (isset($_POST['Signin'])) 
{ 
$username=$_REQUEST['username']; 
if($username=='a') 
$_SESSION['loggedinuser']=$username; 
else 
echo " the username or password you entered do not matchted ! "; 

} 
else 
{ 
?> 
<form method="post" action="index.php" > 
<input type="text" name="username" id="username" > 
<input name="Signin" type="submit" value="Signin" /> 
</form> 
<? 

} 
} 
    else 
    //something else 
?> 
    </body> 
    </html> 

здесь ошибка:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /usr/local/apache2/htdocs/jasi/medu_quiz_22111_bl/index.php:1) in /usr/local/apache2/htdocs/jasi/medu_quiz_22111_bl/index.php on line 2 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /usr/local/apache2/htdocs/jasi/medu_quiz_22111_bl/index.php:1) in /usr/local/apache2/htdocs/jasi/medu_quiz_22111_bl/index.php on line 2 
+2

Возможный дубликат [Как исправить сообщение «Уже отправленные заголовки» в PHP] (http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) – vascowhite

+0

сделать u начать сеанс в page.inc? –

+0

На самом деле, не могли бы вы помочь мне узнать, какая информация заголовка будет в браузере до session_start(); ??? @vascowhite – user3129375

ответ

0

Я попробовал ваш код, и все работает отлично, я скопировал вставил его как и форма показывает нормальный

даже отправил форму дважды один раз с правильным значением и формой исчез и один раз с неправильным значением, а сообщение о том, что оно является неправильным значением

если вы га ве помещается некоторое пустое пространство перед:

 <?php 
     session_start(); 
     .... 
     ?> 

Это может вызвать ошибку, ничто не должно прийти до session_start() часть, может быть, вы банкнота создали страницу: page.inc и что делает ущерб

Это новый код, который я пробовал, и это шаг, который вы можете предпринять:

Я проверил его с опера, да сначала он не показывался, но с тяжелым обновлением он показывал, попробуйте сделать механизм кэширования, возможно, отправив его на страницу со случайным идентификатором, это очистит кеш, проблема не в сеансе в операционной, сеанс работает, он в кешировании,

Обновите оперу и вы, я взял адрес и скопировать его в другую вкладку в опере, а сессия показала, это полная копия на моей версии:

 <?php 
     session_start(); 
     require_once('page.inc'); 

     ?> 

     ........ 

     <?php 
     if(!isset($_SESSION['loggedinuser'])) 
     { 
      if (isset($_POST['Signin'])) 
      { 
       $username=$_REQUEST['username']; 
       if($username=='a') 
       $_SESSION['loggedinuser']=$username; 
       else 
       echo " the username or password you entered do not matchted ! "; 

      } 
      else 
      { 
      ?> 
      <form method="post" action="index.php" > 
        ...... 
      </form> 
      <? 

      } 
     } 
     else if(isset($_SESSION['loggedinuser'])) 
     { 
       $ses = $_SESSION['loggedinuser']; 
       echo "LINE 47 session is $ses "; 
     } 
     else 
     { 
      $ses2 = $_SESSION['loggedinuser']; 
      echo "LINE 51 session is $ses2 "; 

     } 
     ?> 

      </body> 
      </html> 

Это дает:

Line 2 включал 47 сессия страницы лИНИИ является 56

page.inc

 <?php 
     echo " Line 2 included a page "; 
     ?> 
+0

Этот код работает от 5 месяцев, хотя предупреждение было видно, но внезапно оно перестает создавать сеанс ...... Я не могу найти проблему ..... – user3129375

+0

Ваш код на линии 44: еще \t { \t я добавил это: еще \t { \t \t $ сес = $ _SESSION [ 'loggedinuser']; \t \t echo "session is $ ses"; \t \t } Это правильно отображения: сессия является –

+0

Да, это происходит в Opera для меня. но не для Mozilla и google хром !! действительно его такая проблема, с которой я никогда не сталкивался !! – user3129375

1

Проверьте пробелы перед <?php, убедитесь, что <?php является первым символом, а не наложением или разнесением.

+0

Это, скорее всего, проблема. – Darren

+0

Я уже проверил все это – user3129375

+0

закодировал UTF8 без спецификации? – DarkBee

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