2011-08-12 3 views
-2

기본 사용자 로그인을 시도하고 있습니다. 사용자를 기록하는 PHP 페이지에서 오류가 발생했습니다. 작동하지만 페이지 상단에 오류가 있습니다. 내가 사용하고 있습니다 :

UPDATE : 도움이된다면

<?php 

session_start(); 

$username = $_POST['username']; 
$password = $_POST['password']; 

if ($username && $password) 
{ 

    $connect = mysql_connect('hidden') or die ('could not connect'); 
    mysql_select_db('hidden') or die ('could not connect to the database'); 

    $query = mysql_query("SELECT * FROM users WHERE username = '$username'"); 
    $num_rows = mysql_num_rows($query); 

     if ($num_rows!=0) 

     { 
      //code to login 

      while ($row = mysql_fetch_assoc ($query)) 
      { 
      $dbusername = $row['username']; 
      $dbpassword = $row['password']; 
      } 

      //check to see if username/password match 

      if ($username==$dbusername && $password==$dbpassword) 
      { 

       echo "You're in! <a href=\"member.php\">Click here</a> to enter the member area"; 
       $_SESSION['username'] = $username; 

       } 

       else     
        echo "Incorrect username/password"; 
        } 

        else 
         die('That user does not exist'); 
         } 

else 
    die('Please enter a username/password'); 

?> 

이 오류입니다 :

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/16/7554016/html/grahamcaldwell/DrumChum/login.php:6) in /home/content/16/7554016/html/grahamcaldwell/DrumChum/login.php on line 16 

UPDATE 해결

문제. 나는 session_start()를 넣어야했다; 심지어 DOCTYPE 전에.

+0

흥미롭게도, 줄 번호가 이상합니다. 이 스크립트를 직접 실행 하시겠습니까? – NullUserException

+0

Sry, 잘못된 페이지에서 오류가 발생했습니다. 나는 본질적으로 session_start(); 그리고 그 페이지에서 $ _SESSION. 올바른 오류로 업데이트되었습니다 – Graham

+0

코드가 SQL 삽입에 열려 있고 일반 텍스트 암호를 저장하고 있습니다. 아주 나쁜 생각 ... – jeroen

답변

1

세션과 관련된 문제는 예기치 않은 문자에 대한 경고 때문일 수 있습니다. 어쩌면 그 경고로 인해 세션 오류를 일으키는 버퍼로 출력이 전송 될 수 있습니다.

(1) 당신은 당신의 PHP에서 HTML 주석을 넣어 :

+0

업데이트했습니다. 아니, 예상치 못한 문자가 무슨 뜻인지 알 겠어. – Graham

+0

원래 게시물 http://stackoverflow.com/revisions/7046947/1에 "경고 : 예기치 않은 문자가 입력되었습니다 :/home/content/16/7554016/html/grahamcaldwell에서 '' '(ASCII = 39) 상태 = 1 /DrumChum/member.php on line 16 "을 session_start 경고 이전의 경고로 사용하십시오. 그것이 제가 언급 한 것입니다. 다행이 문제를 알아 냈습니다. 해결책으로 조기 산출을 암시하는 대답을 받아 들여야합니다. – JeremyWeir

+0

위의 DOCTYPE? 그렇지 않은 경우를 본 적이 있습니다. – Graham

0

그럼 당신은 두 가지 문제가있다. 거기에있는 동안 PHP가 전혀 실행되지 않습니다.

(2) 출력을 버퍼로 보내기 전에 세션 작업을해야합니다. echo와 $ _SESSION 라인을 바꾸면 모든 것이 설정됩니다.

+0

나는 독자들에게 HTML 코멘트가 추가되었다고 생각하고있다. – JeremyWeir

+0

hmmm, yeah, maybe, 나는 HTML 주석이 왜 그렇게 될지 모르겠다. – Landon

0

누락되는 { 다른
또한

session_start(); 

필요 아무것도 전에 상단에 될 후. 16 번 줄에는 그 전에 다른 것이 있다고 제안 할 것입니다.

관련 문제