2014-11-18 5 views
0

그래서 저는 PHP를 배우고 있습니다. 재미있는 프로젝트를하고 있습니다. "사용자"로그인을 허용하고 "사용자 이름으로 로그인했습니다"라고 표시합니다. 그래도 작동하지만 사용자가 버튼을 클릭하여 SQL에 무언가를 추가하면 텍스트가 사라집니다. 다른 장소에서 에코를 시도했지만 그 다음에는 "사용자가 로그인했습니다"라는 사용자 이름 만있었습니다. 다른 "게시"방법을 사용할 때 사라지는 것 같지만 그 이유는 무엇입니까 $_SESSION['login']?"당신은 로깅되었습니다"를 표시하고 계속 표시하는 방법? (PHP) 업데이트

echo $_SESSION['login']을 사용해 보았는데 아무 것도 없었습니다.

사용자가 로그 오프 할 때까지 "로그인 한 상태로 유지 하시겠습니까?"

난 그냥 배우기 시작했기 때문에 내 전체 코드를 보여 조금 부끄럽다 내가 좀 나쁜 자신을 확신합니다 : D

이 내가 이상한 if(isset($_SESSION['zalogowany'])을에서 찾을

부분에 내 로깅입니다 그것은 (내가 거기 에코 시도) 세션이 남아 있지 않기 때문에 아마

<?php 
    session_start(); 
    require_once("baza.php"); 
    //-------Wylogowywanie 
    if(isset($_POST['wyloguj'])) 
    { 
     unset($_SESSION['zalogowany']); 
     session_destroy(); 
    } 
    //---------Logowanie 
    if(!isset($_SESSION['zalogowany'])) 
    { 
     if(isset($_POST['wyslij'])) 
     { 
      if(mysql_num_rows(mysql_query("SELECT login 
      FROM uzytkownicy WHERE login = '".$_POST['login']."'")) > 0) 
      { 
       if(mysql_num_rows(mysql_query("SELECT login, haslo, Nr FROM uzytkownicy 
       WHERE login = '".$_POST['login']."' 
       && haslo = '".$_POST['haslo']."' ")) > 0) 
       { 
        $_SESSION['zalogowany'] = true; 
        $_SESSION['login'] = $_POST['login']; 
        $_SESSION['haslo'] = $_POST['haslo']; 
        echo '<font color="red"><center>Jestes zalogowany jako '. $_SESSION['login'].'</center></font>'; 

       } 
       else 
       { 
        echo "Zle haslo, prosze sprobowac ponownie"; 
        echo "<form method='POST' action='SG.php'> 
         <br><br><input type='submit' value='Logowanie' name='wyloguj'> 
         </form>"; 

       } 
      } 
      else 
      { 
       echo "Nie ma takiego uzytkownika"; 
       echo "<form method='POST' action='SG.php'> 
        <br><br><input type='submit' value='Logowanie' name='wyloguj'> 
        </form>"; 


      } 
     } 
     else 
     { 
      echo "<form method='POST' action='SG.php'> 
       <b>Nazwa uzytkownika:</b> <input type='text' name='login'><br> 
       <br><b>Haslo:</b><br> <input type='password' name='haslo'><br> 
       <br><input type='submit' value='Wyslij' name='wyslij'> 
       </form>";  


     } 
    } 
    if(isset($_SESSION['zalogowany'])) 
    { 

     echo "<form method='POST' action='SG.php'><br><input type='submit' value='Wyloguj' name='wyloguj'></form>"; 
    } 
+2

사용자 이름을 $ _SESSION [ '로그인']에 저장 했습니까? 세션을 시작하는 것을 잊지 않으셨습니까? – Pitchinnate

답변

1

더 이상 아무 $_SESSION['login']이 없습니다. <?php 태그 바로 뒤에 session_start()을 추가하십시오.

+0

내 문서 상단에 –

+0

PHP 코드를 보여줄 수 있습니까? 질문을 업데이트하십시오. 예를 들어 질문을 업데이트 한 것이 확실한 지 확인하십시오. 헤더 ** 업데이트 : ** ... –

0

이 코드를 코드에 추가하는 것이 좋습니다. 세션을 사용할 경우

<?php 
    if (session_status() !== PHP_SESSION_ACTIVE) {session_start();} 
    ?> 

session_status는()

PHP_SESSION_DISABLED를 반환합니다. 세션이 활성화되었지만 세션이 존재하지 않으면 PHP_SESSION_NONE이 반환됩니다. 세션이 활성화되어 있고 세션이 존재하는 경우 PHP_SESSION_ACTIVE.