2016-04-28 61 views
0

我試圖創建一個與網站鏈接的登錄驗證,但無效。 這裏是我的代碼:在網站上登錄驗證錯誤(cURL)

public function login() { 
    $username = $this->input->post('login', 'true'); 
    $password = $this->input->post('password', 'true'); 
    if($this->ci_curl->loginIdws($username, $password) == false) { 
     echo "<script> alert('Invalid Username & Password'); 
      window.location.href = 'index'; 
     </script>"; 
    } 
    else 
    { 
     $this->load->view('curl/thread'); 
    } 
} 

當登錄失敗,一切都沒有問題,但是當登錄成功後,頁面會顯示alert('Invalid Username & Password') ...我怎樣才能解決這個問題?

這裏是我的圖書館:

public function loginIdws($username, $password) { 

    $url = 'http://forum.idws.id/login/login'; 
    $data = '_xfToken=&cookie_check=1&login='.$username.'&password='.$password.'&redirect=http://forum.idws.id/'; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 40000); 
    curl_setopt($ch, CURLOPT_HEADER, FALSE); 
    curl_setopt($ch, CURLOPT_NOBODY, FALSE); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

    $baca = curl_exec($ch); 
    if($baca == = FALSE) { 
     die(curl_error($ch)); 
    } 
    $info = curl_getinfo($ch); 
    curl_setopt($ch, CURLOPT_URL, "http://forum.idws.id/account/"); 
    curl_setopt($ch, CURLOPT_POST, 0); 
    $baca2 = curl_exec($ch); 

    curl_close($ch); 
    $pecah1 = explode('<fieldset>', $baca2); 
    $pecah2 = explode('</fieldset>', $pecah1[1]); 
    echo "<fieldset>"; 
    echo $pecah2[0]; 
    echo "</fieldset>"; 
} 

,這是我的看法:

< ? php echo form_open('curly/login'); ? > 

    <label>Username :</label> 
    <input id = "name" name = "login" type = "text"> 

    <label>Password : </label> 
    <input id = "password" name = "password" type = "password"> 
    <input type = "submit" name = "submit" id = "submit" value = "Login"> 
+0

分享您的完整代碼..!不能只從這個代碼幫助..! –

+0

添加我的完整代碼 –

+0

你使用codeigniter嗎? –

回答

0

您當前的問題是由這個原因引起:

if($this->ci_curl->loginIdws($username,$password)==false){ 

您比較的返回值你的方法爲false。由於您不會從您的功能中返回任何內容,因此該條件將始終匹配。

你需要一些邏輯添加到您的方法結束返回正確的值:

public function loginIdws($username ,$password){ 

    // your code 

    ... 

    // written out for clarity 
    if (check_if_login_successful) { 
     return true; 
    else { 
     return false; 
    } 
}