2014-05-21 1 views
-2

로그인 진행에 문제가 있습니다. 로그인하지만 로그인 버튼을 수동으로 새로 고치지 않고 로그 아웃 버튼으로 변경하지 않습니다.페이지를 수동으로 새로 고치지 않고 로그인을 로그 아웃으로 변경하십시오.

각 섹션에서 각 스크립트를 분리하지는 않지만 페이지를 압축하는 하나의 페이지 jquery 플러그인이 있습니다.

내 페이지는 여기에 있습니다. http://adam-norbacker.ostersjo.nu/

아이디 : 테스트 비밀번호 : 비밀번호

지금 여기 문제에 대해 의미가 플러그인과 스크립트입니다 : https://github.com/davist11/jQuery-One-Page-Nav

로그인/로그 아웃 버튼 :

<div id="menu" class="default"> 
<ul id="nav"> 
<?php 
session_start(); 
if(isset($_SESSION['username'])){ 
    $content_hash_name = $_GET['menu']; 
    if($content_hash_name == 'section-8'); 
    echo "<li><a href='logout.php' class='external'>logout</a></li>"; 
}else{ 
    echo "<li><a href='#section-8'>login</a></li>"; 
     } 
    ?> 
</ul> 
</div> 

로그인 스크립트 :

<?php 
session_start(); 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

$username = trim(htmlentities(mysql_real_escape_string($_POST['username']))); 
$password = trim(htmlentities(mysql_real_escape_string($_POST['password']))); 
if (!empty($username) && !empty($password)) { 
    $_SESSION['username'] = $username; 
    echo "<br/> welcome ", $username; 
    } else { 
    echo "Please enter correct username or password"; 
    } 
} else { 
    echo "please Login"; 
} 
?> 
<h1>Login</h1> 
<form action="" onSubmit="" method="post"> 
<label>User Name :</label> 
<input type="text" name="username" /><br /> 
<label>Password</label> 
<input type="password" name="password" /><br /> 
<input type="submit" value="Login" name="submit"/> 
</form> 
</div> 
+1

JQuery와 비트가 : 다음 코드인가? – putvande

답변

0

PHP 코드가 이미 구문 분석되므로 Javascript 만 사용하는 것이 유일한 방법입니다.

가장 쉬운 방법은 jQuery를 사용하고 PHP 페이지에 AJAX 호출을하는 것입니다.

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("#loginBtn").click(function(){ 
     var username = $("#username").val(); 
     var password = $("#password").val(); 
     $.ajax({ 
      url: 'login.php', 
      type: 'POST', 
      data: {username: username, password: password}, 
      dataType: 'json', 
      success: function(response){ 
       // Success 
       $("#loginBtn").hide(); 
       $("#logoutBtn").show(); 
      }, 
      error: function(response){ 
       // Error 
      }   
     }); 
     return false; 
    }); 

    $("#logoutBtn").click(function(){ 
     $("#logoutBtn").hide(); 
     $("#loginBtn").show(); 
     return false; 
    }); 

}); 
</script> 

<input type="text" value="" id="username" /> 
<input type="password" value="" id="password" /> 
<button id="loginBtn">Login</button> 
<button id="logoutBtn" style="display:none;">Logout</button> 
0

당신은 그 일을하기 위해 jQuery를 사용할 필요가 없습니다. HTML을 출력하기 전에 PHP 스크립트가 실행되는지 확인하십시오 :

// check login here 
<?php 
session_start(); 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

$username = trim(htmlentities(mysql_real_escape_string($_POST['username']))); 
$password = trim(htmlentities(mysql_real_escape_string($_POST['password']))); 
if (!empty($username) && !empty($password)) { 
    $_SESSION['username'] = $username; 
    $message = "<br/> welcome ", $username; 
} else { 
    $message = "Please enter correct username or password"; 
} 
} else { 
    $message = "please Login"; 
} 
?> 
// here is the menu 
// here you can echo any messages that comes from login attempt 
if (isset($message)) { 
    echo $message; 
} 
// and the login form 

보기를 렌더링하기 전에 전체 PHP 작업을 수행해야합니다.

0

사용자가 로그인 버튼을 누르면이 PHP 스크립트를 실행하여 페이지를 새로 고침합니다.

header("Location:yourpath/yourhomepage.php") 

그리고 jquery가 아닌 PHP에서 로그인 확인을 사용하려고한다면. 페이지를 새로 고침해야합니다.

관련 문제