2012-09-07 59 views
2

我按照本教程進行登錄和註冊http://www.raywenderlich.com/13511/how-to-create-an-app-like-instagram-with-a-web-service-backend-part-12。當我點擊登錄或註冊時,我收到此錯誤的PHPPHP ERROR缺少參數

<br /> 
<b>Warning</b>: Missing argument 2 for login(), called in /Applications/XAMPP/xamppfiles/htdocs/iReporter/index.php on line 13 and defined in <b>/Applications/XAMPP/xamppfiles/htdocs/iReporter/api.php</b> on line <b>36</b><br /> 
{"error":"Wrong username or password"} 

這裏是我的PHP代碼:

<?php 
session_start(); 
require("lib.php"); 
require("api.php"); 

header("Content-Type: application/json"); 

//API 
switch ($_POST['command']) { 

    case "login": 

     login($_POST['username'] && $_POST['password']); 

     break; 

    case "register": 

     register($_POST['username'] && $_POST['password']); 

     break; 

    case "upload": 

     upload($_SESSION['IdUser'], $_FILES['file'], $_POST['title']); 

     break; 
} 
exit(); 
?> 

和api.php代碼:

<?php 
//API implementation to come here 
function errorJSON($msg){ 

    //Returning erros back to user 

    print json_encode(array('error' => $msg)); 
    exit(); 
} 

//Register function 
function register($user, $pass){ 
    //checking if username exists 
    $login = query("SELECT username FROM login WHERE username='%s' limit 1", $user); 

    if (count($login['result']) >0) { 
     errorJSON('Username already exists'); 
    } 

    //Registering user 
    $result = query("INSERT INTO login(username, pass) VALUES('%s', '%s')", $user, $pass); 

    if (!$result['error']) { 

     //Success 
     login($user, $pass); 

    } else { 
     //error 
     errorJSON('Sorry, something went wrong'); 

    } 

} 

function login($user, $password){ 
    $result = query("SELECT IdUser, username FROM login WHERE username = '%s' AND pass = '%s' limit 1 ", $user, $pass); 

    if (count($result['result']) > 0) { 
     //Authorized 
     $_SESSION['IdUser'] = $result['result'][0]['IdUser']; 
     print json_encode($result); 

    } else { 
     //Not authorized 
     errorJSON('Wrong username or password'); 
    } 

} 
?> 

我需要幫助,請..

回答

4

This:

login($_POST['username'] && $_POST['password']); 

幾乎肯定是錯的。試試這個:

login($_POST['username'], $_POST['password']); 

並修復呼叫register()以及。

+0

它的工作謝謝! –

1

更改以下塊

 
    case "login": 

     login($_POST['username'], $_POST['password']); 

     break; 

    case "register": 

     register($_POST['username'], $_POST['password']); 

     break; 

您已經在函數調用中使用&&。改爲使用,

+0

它的工作!謝謝!! –

1

該登錄功能需要兩個參數。但你只傳遞一個...

login($_POST['username'],$_POST['password']); 

這應該工作..

0

你缺少這樣的:

login($_POST['username'], $_POST['password']); 
+0

沒有注意到其他一些人已經發布了這個。抱歉! –