2016-04-28 18 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>"; 
} 

、これが私の見解です:あなたはの戻り値を比較している

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

< ? 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

あなたの現在の問題は、これによって引き起こされますあなたの方法はfalseになります。関数から何も返さないので、その条件は常に一致します。

あなたは正しい値を返すために、あなたの方法の最後にいくつかのロジックを追加する必要があります。

public function loginIdws($username ,$password){ 

    // your code 

    ... 

    // written out for clarity 
    if (check_if_login_successful) { 
     return true; 
    else { 
     return false; 
    } 
} 
関連する問題