2

ログインと登録については、このチュートリアルに従っていますhttp://www.raywenderlich.com/13511/how-to-create-an-app-like-instagram-with-a-web-service-backend-part-12 . ログインまたは登録をクリックすると、このエラーphpが表示されます

<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

4 に答える 4

4

これ:

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

ほぼ間違いなく間違っています。これを試して:

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

また、への呼び出しも修正しregister()ます。

于 2012-09-07T05:24:10.820 に答える
1

次のブロックを変更します

   ケース「ログイン」:

        login($ _ POST ['username']、$ _POST ['password']);

        壊す;

    ケース「登録」:

        register($ _ POST ['username']、$ _POST ['password']);

        壊す;

&&関数呼び出しで使用しました。,代わりに使用してください。

于 2012-09-07T05:25:27.633 に答える
1

そのログイン関数には2つのパラメーターが必要です。しかし、あなたは1つだけを通過しています...

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

これはうまくいくはずです。

于 2012-09-07T05:27:15.463 に答える
0

あなたはこれを見逃しています:

login($_POST['username'], $_POST['password']);
于 2012-09-07T05:54:14.367 に答える