【问题标题】:App is not working on WAMP but It works in online server应用程序无法在 WAMP 上运行,但它可以在在线服务器上运行
【发布时间】:2016-02-01 10:44:24
【问题描述】:

我使用在线 SQLite 数据库制作了一个基本的登录应用程序(http://demo3534535.16mb.com) 它在在线服务器上运行良好。 现在我想在 Gennymotion 模拟器中使用 WAMP 在本地服务器上运行。

我必须对代码进行哪些更改? 我的在线工作代码是:

dbconnect.php

<?php
    define('HOST','mysql.hostinger.in');
    define('USER','u756_userd');
    define('PASS','pass345');
    define('DB','u754113_demo');

    $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');

MainActivity.java

 public class MainActivity extends AppCompatActivity implements View.OnClickListener {


  private static final String REGISTER_URL = "http://192.168.1.102/User/Register.php";

    public static final String KEY_USERNAME = "username";
    public static final String KEY_PASSWORD = "password";
    public static final String KEY_EMAIL = "email";


    private EditText editTextUsername;
    private EditText editTextEmail;
    private EditText editTextPassword;

    private Button buttonRegister;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editTextUsername = (EditText) findViewById(R.id.editTextUsername);
        editTextPassword = (EditText) findViewById(R.id.editTextPassword);
        editTextEmail= (EditText) findViewById(R.id.editTextEmail);

        buttonRegister = (Button) findViewById(R.id.buttonRegister);

        buttonRegister.setOnClickListener(this);
    }

    private void registerUser(){
        final String username = editTextUsername.getText().toString().trim();
        final String password = editTextPassword.getText().toString().trim();
        final String email = editTextEmail.getText().toString().trim();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(MainActivity.this, response, Toast.LENGTH_LONG).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                    }
                }){
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put(KEY_USERNAME,username);
                params.put(KEY_PASSWORD,password);
                params.put(KEY_EMAIL, email);
                return params;
            }

        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

    @Override
    public void onClick(View v) {
        if(v == buttonRegister){
            registerUser();
        }
    }
}

db_connect.php

<?php
    define('HOST','localhost');
    define('USER','');
    define('PASS','');
    define('DB','db_demo');

    $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');

注册.php

<?php

    if($_SERVER['REQUEST_METHOD']=='POST'){

        $username = $_POST['username'];
        $email = $_POST['email'];
        $password = $_POST['password'];

        require_once('dbConnect.php');

        $sql = "INSERT INTO volley (username,password,email) VALUES ('$username','$email','$password')";


        if(mysqli_query($con,$sql)){
            echo "Successfully Registered";
        }else{
            echo "Could not register";

        }
    }else{
echo 'error';
}

我正在通过 wifi 上网

【问题讨论】:

  • 很难说是什么问题。您是否在路由器上打开端口 80 以将(HTTP 请求)重定向到使用 WAMP 的本地服务器 IP??
  • 定义“不工作”
  • 服务器返回什么? “错误”或“无法注册”?

标签: php android sqlite


【解决方案1】:

如果您要去本地,请按照以下步骤操作:

  1. 您需要创建一个 WLAN。打开命令提示符管理员模式并键入以下命令:

    netsh wlan set hostednetwork mode=allow ssid=DevelopmentLAN key=yourPassword
    

    按确定。然后执行以下命令:

    netsh wlan start hostednetwork
    

这将启动您的 WLAN

现在在命令行中输入ipconfig,这样你就可以发现你机器的IPv4地址了:

编辑:

确保您记下您的无线 LAN 适配器的 IPv4 地址。

记下这个 IP 地址。这是您将用作 HOST 地址的地址。

配置部分。

更改define('HOST','mysql.hostinger.in');

到此 define('HOST','localhost');

其余的,你需要将用户名、密码和数据库名分别更改为你的WAMPServer的用户名和密码以及你在WAMP上的数据库名。

现在我假设您的 register.php 文件包含在 WAMP 项目目录(C:/wamp/www/User/register. php)。将REGISTER_URL 的值更改为:

private static final String REGISTER_URL = "http://192.168.1.3/User/register.php";

就是这样,你准备好了。最后确保您的防火墙已关闭,否则它将阻止您的 genymotion 模拟器 连接到您机器上的 WAMP 服务器,并且您更改192.168.1.3 到您机器的 IP 地址。

【讨论】:

  • 请详细说明。显示您的错误日志以及任何可以帮助我们的内容,以便我们可以帮助您。
  • 感谢您的回答,但我很遗憾地说我仍然无法在 gennymotion 上运行我的应用程序。我没有 wamp 的用户名和密码,那么我必须放在那里?,将其留空或将用户名和密码都输入“root”。我也关掉了我的电脑防火墙。关闭防火墙是否安全?
  • 用户名输入“root”,密码为空。需要关闭防火墙才能正常工作,否则我不知道如何绕过它。
  • 我用更多细节修改了我的问题。请检查一下
  • 我检查了它,但它没有显示,因为我的声誉低于 15 我是这个网站的新手。
猜你喜欢
  • 2014-09-08
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 2012-07-24
相关资源
最近更新 更多