2014-02-24 4 views
0

나는 PHP를 통해 유효성을 검사하는 로그인 폼이 있습니다. 문제는 양식의 동작이 파일 자체를 참조하기 때문에 페이지를 새로 고칩니다. 나는 이것을 좋아하지 않는다. 페이지를 새로 고치지 않고도 PHP를 통해 입력을 확인할 수 있습니까? jQuery로새로 고침하지 않고 PHP로 로그인 폼

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

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

    $hostname = $_SERVER['HTTP_HOST']; 
    $path = dirname($_SERVER['PHP_SELF']); 

    // Benutzername und Passwort werden überprüft 
    if ($username == 'admin' && $passwort == 'admin') { 
     $_SESSION['angemeldet'] = true; 

      // Weiterleitung zur geschützten Startseite 
      if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') { 
       if (php_sapi_name() == 'cgi') { 
        header('Status: 303 See Other'); 
       } 
       else { 
        header('HTTP/1.1 303 See Other'); 
       } 
      } 

     header('downloadbereich.php'); 
     exit; 
     } 
     } 
?> 

<link href="login.css" rel="stylesheet" type="text/css" /> 
<div class="contactForm" id="contactForm" style="width: 500px; margin: auto; float: left;"> 


<form name="myform" method="post" action="login.php<!-- this is what I want to remove-->"> 
    <p class="form" style="width: 245px; height: 116px; margin-right: 10px;"><input class="field" type="text" name="username" placeholder="Name" /> 
    <input class="field" type="password" autofocus name="passwort" placeholder="Passwort" /> 
    <button class="button" name="Submit">Login</button></p> 

</form> 
</div> 
+2

'아약스'를 살펴보십시오. – Albzi

+0

이 jquery를 사용할 수 있습니다 –

+0

은 쉽습니까? 나는 js 또는 ajax 또는 php를 사용하는 방법을 모르는 상태에서 실제로 인터넷에서 찾은 코드를 복사했습니다. – fjw

답변

0

- AJAX :

여기 내 코드의

$.post('login.php', { 
    username : $('input[name=username]').val(), 
    password : $('input[name=password]').val() 
}); 
+0

이 코드를 어떻게 구현합니까? 죄송합니다. – fjw

+0

jquery.js를 포함하고 다음과 같은 스크립트 태그에 넣어야합니다 :'' – iCore

1

전화 아약스이 페이지에서 귀하의 페이지가 새로 고쳐지지 않습니다. Ajax에는 페이지를 호출하는 포스트 페이지 호출이 있지만 페이지를 새로 고치지는 않습니다.

0

입력을 확인하고 오류 또는 성공을 상위 페이지/양식으로 되돌려 보내야하는 PHP 파일로 양식 작업을 설정하십시오. form-target으로 iframe을 사용하십시오.

당신은합니다 (login.php에서) 이런 식으로에 대한 jQuery를 사용할 수 있습니다

parent.$('#submitStatus').html('there were some errors'); 
1

또 다른 가능성 : 페이지에 iframe이를 만들고 해당 게시.

<div id="somediv">Not logged in"</div> 
<iframe id="upload_target" name="upload_target" src="about:blank"></iframe> 
<form id="myform" name="myform" action="page_to_post_to.php" method="post" enctype="multipart/form-data" target="upload_target" > 
    //your form 
</form> 

내부 * page_to_post_to.php * 원하는대로 할 수 있습니다. 기본 페이지에 대한 피드백은 자바 스크립트로 제공 될 수 있으며 부모에게 참조됩니다.

<php 
//do your stuff here 
?> 
<script> 
window.top.window.document.getElementById('somediv').innerHTML='logged in'; 
</script> 
관련 문제