Cómo enviar una contraseña para la base de datos mysql
Este habilitado json de la aplicación de iOS es la visualización de un registration failed
error cuando un intento de registro se realiza a partir de la aplicación que necesita ser reparado. Al añadir la línea siguiente para mostrar los errores en la index.php
archivo:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
El siguiente aviso se muestra
<br /><b>Notice</b>: Undefined index: command in
<b>/Applications/MAMP/htdocs/iReporter/index.php</b> on line
<b>26</b><br />
Código Php
// line 26
switch ($_POST['command']) {
case "login":
login($_POST['username'], $_POST['password']);
break;
case "register":
register($_POST['username'], $_POST['password']);
break;
Regístrese y en funciones
// register API
function register($user, $pass) {
//check if username exists in the database (inside the "login" table)
$login = query("SELECT username FROM login WHERE username='%s' limit 1", $user);
if (count($login['result'])>0) {
//the username exists, return error to the iPhone app
errorJson('Username already exists');
}
//try to insert a new row in the "login" table with the given username and password
$result = query("INSERT INTO login(username, pass) VALUES('%s','%s')", $user, $pass);
if (!$result['error']) {
//registration is successful, try to also directly login the new user
login($user, $pass);
} else {
//for some database reason the registration is unsuccessful
errorJson('Registration failed');
}
}
//login API
function login($user, $pass) {
// try to match a row in the "login" table for the given username and password
$result = query("SELECT IdUser, username FROM login WHERE username='%s' AND pass='%s' limit 1", $user, $pass);
if (count($result['result'])>0) {
// a row was found in the database for username/pass combination
// save a simple flag in the user session, so the server remembers that the user is authorized
$_SESSION['IdUser'] = $result['result'][0]['IdUser'];
// print out the JSON of the user data to the iPhone app; it looks like this:
// {IdUser:1, username: "Name"}
print json_encode($result);
} else {
// no matching username/password was found in the login table
errorJson('Authorization failed');
}
}
Comando que se llama desde la app de iOS
NSMutableDictionary* params =[NSMutableDictionary dictionaryWithObjectsAndKeys:command, @"command", fldUsername.text, @"username", hashedPassword, @"password", nil];
La aplicación puede conectarse a la base de datos ya que muestra el username already exists
error cuando un nombre de usuario existente se trató en el proceso de registro. También, cuando $pass = '';
se añade a la función de registro, el usuario está autorizado y registrado, pero una cadena en blanco se almacena en la base de datos. Cuando se trata: $pass = $_POST['password'];
no funciona bien. Donde si el código actualizado para completar la tarea?