Member 13366270 Ответов: 1

Как удалить проблему сбоя приложения


json=Util.makeHttpRequest("http://fitnesshub.pe.hu/madad/register.php","POST",regparam);
    		String msg;
			try {
				msg = json.getString("SUCCESS");
				return msg;
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return null;
		}

Когда я запускаю приложение, оно падает
С чего мне возвращаться register.php

Что я уже пробовал:

В register.php у меня есть

if(mysqli_query($conn,"INSERT INTO User_Info VALUES('$f_name','$m_name','$l_name','$email','$pass','$pass','$address','$pno','$contact1','$contact2','$gender')")){
        $json['SUCCESS'] = 1;
    }
    else{
        $json['SUCCESS'] = 0;
    }




Ошибка-это как
08-18 06:22:20.175 574-574/com.example.project E/WindowManager: android.view.WindowLeaked: Activity com.example.project.SignUpActivity has leaked window DecorView@d068b57[] that was originally added here
                                                                    at android.view.ViewRootImpl.<init>(ViewRootImpl.java:418)
                                                                    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:331)
                                                                    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
                                                                    at android.app.Dialog.show(Dialog.java:329)
                                                                    at com.utils.RegisterTask.onPreExecute(RegisterTask.java:47)
                                                                    at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:620)
                                                                    at android.os.AsyncTask.execute(AsyncTask.java:567)
                                                                    at com.example.project.SignUpActivity.onClick(SignUpActivity.java:173)
                                                                    at android.view.View.performClick(View.java:5637)
                                                                    at android.view.View$PerformClick.run(View.java:22433)
                                                                    at android.os.Handler.handleCallback(Handler.java:751)
                                                                    at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                    at android.os.Looper.loop(Looper.java:154)
                                                                    at android.app.ActivityThread.main(ActivityThread.java:6236)
                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)





Еще одна проблема-вход в систему
Мой Login.java содержит
List<NameValuePair> loginparam=new ArrayList<NameValuePair>();
    		loginparam.add(new BasicNameValuePair("uname", uname));
    		loginparam.add(new BasicNameValuePair("pass", pass));
    		json=Util.makeHttpRequest("http://fitnesshub.pe.hu/madad/login.php","POST",loginparam);
    		String msg;
			try {
				msg = json.getString("SUCCESS");
				if(msg.equals("1"))
				{
					json1=Util.makeHttpRequest("http://fitnesshub.pe.hu/madad/getNumber.php","POST",loginparam);
					number1 = json1.getString("number1");
					number2 = json1.getString("number2");
				}	
				return msg;
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return null;

И PHP файл содержит
<?php
require_once('config.php');
if(1){
    $myusername=$_POST['uname'];
    $mypassword=$_POST['pass'];
    $sql="SELECT * FROM User_Info WHERE Email='$myusername' and Password='$mypassword'";
    $result=mysqli_query($conn , $sql);
// Mysql_num_row is counting table row
    $count=mysqli_num_rows($result);
    $SUCCESS;
// If result matched $myusername and $mypassword, table row must be 1 row

    if($count>=1){
        $SUCCESS=1;
    }
    else{
        $SUCCESS=0;
    }
}
mysqli_close($conn);
return $SUCCESS;

?>

Patrice T

"авария" не информативна, дайте сообщение об ошибке и позицию.

PIEBALDconsult

Путем отладки.

Richard Deeming

НИКОГДА храните пароли в виде обычного текста.

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хеширование паролей - все правильно[^]

И НИКОГДА передавайте пароли по протоколу HTTP; установите SSL-сертификат на свой сервер и делайте все запросы по протоколу HTTPS.

1 Ответов

Рейтинг:
2

Patrice T

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь уязвимости под названием "SQL injection", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользователь вводит имя типа "Брайан О'Коннер", это может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL Injection-руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL-OWASP[^]