PHP 错误缺少参数
Posted
技术标签:
【中文标题】PHP 错误缺少参数【英文标题】:PHP ERROR missing argument 【发布时间】:2012-09-07 05:21:27 【问题描述】:我正在按照本教程进行登录和注册 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');
?>
我需要帮助...
【问题讨论】:
【参考方案1】:这个:
login($_POST['username'] && $_POST['password']);
几乎肯定是错误的。试试这个:
login($_POST['username'], $_POST['password']);
并修复对register()
的调用。
【讨论】:
【参考方案2】:那个登录函数需要两个参数。但是你只通过了一个......
login($_POST['username'],$_POST['password']);
这应该可行..
【讨论】:
【参考方案3】:更改以下块
案例“登录”: 登录($_POST['用户名'],$_POST['密码']); 休息; 案例“注册”: 注册($_POST['用户名'],$_POST['密码']); 休息;您在函数调用中使用了&&
。请改用,
。
【讨论】:
【参考方案4】:你错过了这个:
login($_POST['username'], $_POST['password']);
【讨论】:
没有注意到其他一些人已经发布了这个。对不起!以上是关于PHP 错误缺少参数的主要内容,如果未能解决你的问题,请参考以下文章
Cloudinary 错误:“错误”:“消息”:“缺少必需的参数 - 时间戳”