Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android登录注册使用php、mysql_Java_Php_Android_Mysql_Android Studio - Fatal编程技术网

Java android登录注册使用php、mysql

Java android登录注册使用php、mysql,java,php,android,mysql,android-studio,Java,Php,Android,Mysql,Android Studio,嘿,朋友们,我正在本地主机上使用php和mysql开发android登录注册系统。。我完成了编码部分,但我的代码内容在运行我的应用程序时出现了一些运行时错误,然后在注册屏幕上显示“无效用户名或密码或电子邮件”,这意味着我正在从php获取jsonresult 0,这意味着我的数据(名称、电子邮件、密码)没有传递到php…下面是我的代码 对于Register.java public class Register extends Activity { TextView tvlogin; EditTex

嘿,朋友们,我正在本地主机上使用php和mysql开发android登录注册系统。。我完成了编码部分,但我的代码内容在运行我的应用程序时出现了一些运行时错误,然后在注册屏幕上显示“无效用户名或密码或电子邮件”,这意味着我正在从php获取jsonresult 0,这意味着我的数据(名称、电子邮件、密码)没有传递到php…下面是我的代码

对于Register.java

public class Register extends Activity {
TextView tvlogin;
EditText etuname,etemail,etpass,etmobno;
Button  userreg;
String name,email,pass;
//  private ProgressDialog pDialog;
int flag=0;

    private static String url = "http://10.0.2.2/examtime/register.php";
//  private static final String TAG_SUCCESS = "success"; 
@Override
 protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    //StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
    //.detectDiskReads().detectDiskWrites().detectNetwork()
    //.penaltyLog().build());

    super.onCreate(savedInstanceState);
    setContentView(R.layout.register);

    etuname=(EditText)findViewById(R.id.et_name);
    etemail=(EditText)findViewById(R.id.et_email);
    etpass=(EditText)findViewById(R.id.et_password);
    userreg=(Button)findViewById(R.id.button1);
//  etmobno=(EditText)findViewById(R.id.editText1);
    tvlogin=(TextView)findViewById(R.id.tv_login);

    userreg.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            userReg(v);
        }
    });


}   

public void userReg(View v)
{
    name=etuname.getText().toString();
    email=etemail.getText().toString();
//  mobno=etmobno.getText().toString();
    pass=etpass.getText().toString();
    if(name.equals("") || pass.equals("") || email.equals("")){
        Toast.makeText(Register.this, "Username or password or email must be filled", Toast.LENGTH_LONG).show();
        return;
    }
    if(name.length() <= 1 || pass.length() <= 1){
        Toast.makeText(Register.this, "Username or password length must be greater than one", Toast.LENGTH_LONG).show();
        return;
    }
    // request authentication with remote server4
    AsyncDataClass asyncRequestObject = new AsyncDataClass();
    asyncRequestObject.execute(url, name, pass, email);
}
private class AsyncDataClass extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {

        HttpParams httpParameters = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
        HttpConnectionParams.setSoTimeout(httpParameters, 5000);

        HttpClient httpClient = new DefaultHttpClient(httpParameters);
        HttpPost httpPost = new HttpPost(params[0]);

        String jsonResult = "";
        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("name", params[1]));
            nameValuePairs.add(new BasicNameValuePair("pass", params[2]));
            nameValuePairs.add(new BasicNameValuePair("email", params[3]));
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = httpClient.execute(httpPost);
            jsonResult = inputStreamToString(response.getEntity().getContent()).toString();
            System.out.println("Returned Json object " + jsonResult.toString());

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return jsonResult;
    }
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }
    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        System.out.println("Resulted Value: " + result);
        if(result.equals("") || result == null){
            Toast.makeText(Register.this, "Server connection failed",        Toast.LENGTH_LONG).show();
            return;
        }
        int jsonResult = returnParsedJsonObject(result);
        if(jsonResult == 0){
            Toast.makeText(Register.this, "Invalid username or password or email", Toast.LENGTH_LONG).show();
            return;
        }
        if(jsonResult == 1){
            Intent intent = new Intent(Register.this, Profile.class);
            intent.putExtra("USERNAME", name);
            intent.putExtra("MESSAGE", "You have been successfully Registered");
            startActivity(intent);
        }
    }
    private StringBuilder inputStreamToString(InputStream is) {
        String rLine = "";
        StringBuilder answer = new StringBuilder();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        try {
            while ((rLine = br.readLine()) != null) {
                answer.append(rLine);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return answer;
    }
}
private int returnParsedJsonObject(String result){

    JSONObject resultObject = null;
    int returnedResult = 0;
    try {
        resultObject = new JSONObject(result);
        returnedResult = resultObject.getInt("success");
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return returnedResult;
}
公共类寄存器扩展活动{
文本视图登录;
EditText-etuname、etemail、etpass、etmobno;
按钮用户注册;
字符串名称、电子邮件、密码;
//私人对话;
int标志=0;
专用静态字符串url=”http://10.0.2.2/examtime/register.php";
//私有静态最终字符串标记_SUCCESS=“SUCCESS”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
//StrictMode.setThreadPolicy(新的StrictMode.ThreadPolicy.Builder()
//.detectDiskReads().detectDiskWrites().detectNetwork()
//.penaltyLog().build());
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
etuname=(EditText)findViewById(R.id.et_name);
etemail=(EditText)findViewById(R.id.et_电子邮件);
etpass=(EditText)findViewById(R.id.et_密码);
userreg=(按钮)findViewById(R.id.button1);
//etmobno=(EditText)findViewById(R.id.editText1);
tvlogin=(TextView)findViewById(R.id.tv\u登录);
userreg.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
userReg(v);
}
});
}   
公共void userReg(视图五)
{
name=etuname.getText().toString();
email=etemail.getText().toString();
//mobno=etmobno.getText().toString();
pass=etpass.getText().toString();
if(name.equals(“”)pass.equals(“”)email.equals(“”){
Toast.makeText(Register.this,“必须填写用户名、密码或电子邮件”,Toast.LENGTH_LONG.show();
返回;
}
if(name.length()

还有我的User.php

<?php

include_once 'db.php';

class User{

private $db;
private $db_table = "stud";

public function __construct(){
    $this->db = new DbConnect();
}

public function isLoginExist($username, $password){     

    $query = "select * from " . $this->db_table . " where name = '$username' AND pass = '$password' Limit 1";
    $result = mysqli_query($this->db->getDb(), $query);
    if(mysqli_num_rows($result) > 0){
        mysqli_close($this->db->getDb());
        return true;
    }       
    mysqli_close($this->db->getDb());
    return false;       
}

public function createNewRegisterUser($username, $password, $email){

    $query = "insert into stud (name, pass, email) values ('$username', '$password', '$email')";
    $inserted = mysqli_query($this->db->getDb(), $query);
    if($inserted == 1){
        $json['success'] = 1;                                   
    }else{
        $json['success'] = 0;
    }
    mysqli_close($this->db->getDb());
    return $json;
}

public function loginUsers($username, $password){

    $json = array();
    $canUserLogin = $this->isLoginExist($username, $password);
    if($canUserLogin){
        $json['success'] = 1;
    }else{
        $json['success'] = 0;
    }
    return $json;
}


我知道我遗漏了一些东西,我试着解释一下,抱歉英语不好,我也是android新手,也是堆栈溢出新手,这对我来说太多了,我无法通读所有这些,但我想我知道你想要什么。 首先检查名称是否已存在:

<?php>

$text = $_POST["text1"];
$db = @new mysqli("mysql.hostinger.de", "...", "...", "...");
if($db->connect_error){
    die("<pre>".$db->connect_error."</pre>");
}

$num = $sql->num_rows; 
$sql = $db->query("SELECT name FROM Rangliste");
$num = $sql->num_rows; 
if($num > 0){
    while($row = $sql->fetch_object()){
        if($row->name == $text){
            echo("Name already exists!");
        }else{
            echo("Name accepted!");
        }

    }
}

我假设这是在模拟器上运行的,因为有IP地址,所以您是否尝试过检查模拟器是否可以访问服务器?或者直接在模拟器的浏览器中运行URL来访问URL?您的登录/注册php代码位于
index.php
中。但是在java代码中,它指向
login.phpe> 和
register.php
yes当我将()放入模拟器浏览器时,我正在访问目录。请稍候,我尝试将登录/注册代码指向index.php。谢谢
<?php

include_once 'db.php';

class User{

private $db;
private $db_table = "stud";

public function __construct(){
    $this->db = new DbConnect();
}

public function isLoginExist($username, $password){     

    $query = "select * from " . $this->db_table . " where name = '$username' AND pass = '$password' Limit 1";
    $result = mysqli_query($this->db->getDb(), $query);
    if(mysqli_num_rows($result) > 0){
        mysqli_close($this->db->getDb());
        return true;
    }       
    mysqli_close($this->db->getDb());
    return false;       
}

public function createNewRegisterUser($username, $password, $email){

    $query = "insert into stud (name, pass, email) values ('$username', '$password', '$email')";
    $inserted = mysqli_query($this->db->getDb(), $query);
    if($inserted == 1){
        $json['success'] = 1;                                   
    }else{
        $json['success'] = 0;
    }
    mysqli_close($this->db->getDb());
    return $json;
}

public function loginUsers($username, $password){

    $json = array();
    $canUserLogin = $this->isLoginExist($username, $password);
    if($canUserLogin){
        $json['success'] = 1;
    }else{
        $json['success'] = 0;
    }
    return $json;
}
<?php>

$text = $_POST["text1"];
$db = @new mysqli("mysql.hostinger.de", "...", "...", "...");
if($db->connect_error){
    die("<pre>".$db->connect_error."</pre>");
}

$num = $sql->num_rows; 
$sql = $db->query("SELECT name FROM Rangliste");
$num = $sql->num_rows; 
if($num > 0){
    while($row = $sql->fetch_object()){
        if($row->name == $text){
            echo("Name already exists!");
        }else{
            echo("Name accepted!");
        }

    }
}