2014-10-21 2 views
0

방금 ​​로그인 시스템을 조금 만들었지 만, 약간의 ubelievable 문제가 있습니다. 때로는 로그인하지 않는 경우도 있습니다.php, jquery - 같은 페이지에 게시

Loging이 코드에 의해 수행에 : 편의를 위해

if(isset($_POST['logedOut'])) { 
    setcookie('username', '', time() - 3600); 
    setcookie('userid', '', time() - 3600); 
    $logedIn = false; 
} else if(isset($_POST['logedIn'])) { 
    echo 'POST SENT'; 
    $expire = ($_POST['remember'] == true) ? time() + $GLOBALS['year'] : ''; 
    setcookie('username', $_POST['logedIn'], $expire); 
    setcookie('userid', $_POST['id'], $expire); 
    $username = $_POST['logedIn']; 
    $userid = $_POST['id']; 
    $logedIn = true; 
} else if (isset($_COOKIE['username'])) { 
    $logedIn = true; 
    $username = $_COOKIE['username']; 
    $userid = $_COOKIE['userid']; 
} else { 
    echo 'POST NOT SENT'; 
    $logedIn = false; 
} 

: 자바 스크립트의 내부

if(isset($_POST['logedIn'])) { 
     echo 'POST SENT'; 
     $logedIn = true; 
    } else { 
     echo 'POST NOT SENT'; 
     $logedIn = false; 
    } 

나는 양식을 작성마다

function checkUser (mail, pass, rem) { 
    var sectionName = 'checkUser'; 
    $.ajax({ 
     async: true, 
     type: 'POST', 
     url: 'php/readDB.php', 
     cache: false, 
     contentType: 'application/x-www-form-urlencoded; charset=UTF-8', 
     data: {section: sectionName, email: mail, password: pass, remember: rem}, 
     dataType: 'text', 
     timeout: 3000, 
     beforeSend: function() { 
      console.log('Read from DB called'); 
     }, 
     success: function(data) { 
      if(data!='false') { 
       $('<form action="#" method="post"><input type="hidden" name="logedIn" value="' + mail + '" /><input type="hidden" name="remember" value="' + rem + '" /><input type="hidden" name="id" value="' + data + '" /></form>').appendTo('body').submit(); 
      } else { 
       $('#afterDialog').html('Uživatelské jméno nebo heslo je špatně zadáno.'); 
       $('#afterDialog').dialog('open'); 
      }         
     }, 
     error: function(request, errorType, errorMessage) { 
      alert('Error: ' + errorType + ' with message: ' + errorMessage); 
     }, 
     complete: function() { 
      console.log('Read from DB completed'); 
     }  
    }); 
} 

를 호출 버튼을 클릭해야 ,이 함수가 호출되고 각 경우에 양식이 오른쪽으로 채워지면 $ ('...')로 이동합니다. submit();하지만 90 try의 % POST 데이터는 전송되지 않으며 PHP 페이지는 "POST NOT SENT"를 반향합니다. 로그인 양식 (메일, 패스, 렘)에서 동일한 입력 데이터로 10 %가 성공적으로 로그인됩니다. (문제는 어디에 있습니까?)

+0

관측 : 만약 .submit()으로 주석을 달고, 페이지를 새로 고침하고 – SilentCry

+0

'$ _POST [ 'logedIn']'를 PHP에 전달하는 곳은 무엇입니까? – MrUpsidown

+0

"어디에서 $ _POST [ 'logedIn'을 전달할 것인가? '] 귀하의 PHP에? "위의 자바 스크립트 코드의 17 번째 줄 – SilentCry

답변

0

마지막으로, 문제가 jQuery UI 대화 상자에있었습니다. 폼의 입력 버튼을 jqueryui의 대화 상자 버튼에 바인드 할 필요가 있습니다.

관련 문제