PhPFile nicht gefunden?

  • Antworten:10
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 8

03.09.2020, 12:31:19 via Website

Moin moin!

Ich hätte nicht gedacht, dass ich so schnell wieder eine Frage stellen müsste, ich hoffe auch dieses Mal kann mir jemand helfen :)

Gut, wo fange ich an. Ich habe eine App, in die sich Kunden einloggen und registrieren können sollen. Das Php-File, das einen neuen User anlegen soll ist bereits fertig und fügt auch fleißig User in meine DB ein.
Nun wollte ich das Php-Script in meine App einbauen, damit ich auch von der App aus fleißig User hinzufügen kann.
Um nachzuprüfen, ob das Script seine Arbeit vollstreckt, habe ich einen Log.i eingebaut, leider kommt aber in der Logcat nix an, also weder Fehler noch Bestätigung... Ich werd den Code unten mal dran hängen, ich bin leider gerade , mal wieder, sehr ratlos :/

package com.example.profit_java;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class Login extends AppCompatActivity {

EditText userName;
EditText userPassword;

RequestQueue queue;

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

    userName = findViewById(R.id.edittext_Nutzername);
    userPassword = findViewById(R.id.edittext_passwort);

    queue = Volley.newRequestQueue(this);
}

public void signUp(View view) {
    String create_user_url = getString(R.string.XAMPP) + "/registrieren.php";

    StringRequest postRequest = new StringRequest(Request.Method.POST, create_user_url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    Log.i("response", response);


                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    }) {
        @Override
        protected Map<String, String> getParams(){
            Map<String, String> params = new HashMap<>();
            params.put("username", userName.getText().toString());
            params.put("password", userPassword.getText().toString());

            return params;
        }
    };

    queue.add(postRequest);
}

}

die Ausgabe des Logcats schaut wie folgt aus:

2020-09-03 12:24:49.116 12488-12518/com.example.profit_java D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true

Und zur Vorsicht gibts auch nochmal das Php-Script:

<?php

include 'db_connection.php';

$conn = OpenCon();
$test = "SELECT * FROM users";

$db_erg = mysqli_query( $conn ,$test );
if ( ! $db_erg )

{
die('Ungültige Abfrage! ' . mysqli_error());
}
mysqli_free_result( $db_erg );

$response = array();

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

#$username = 'karl';
#$password = 'arnold';

$query_users  = "SELECT * FROM users WHERE username = '$username'";

$result_users = mysqli_query($conn, $query_users);

if (mysqli_num_rows($result_users) > 0){
    $response["success"] = 0;
    $response["message"] = "User already exists!";
    echo json_encode($response);
}else {
    $query_insert  = "INSERT INTO users(username, password) VALUES('$username', '$password')";
    $result_insert = mysqli_query($conn, $query_insert);

    if ($result_insert) {
        $response["success"] = 1;
        $response["message"] = "Registrierung erfolgreich";
        echo json_encode($response);
    }else{
        $response["success"] = 0;
        $response["message"] = "Nutzer konnte nicht angelegt werden";
        echo json_encode($response);
    }
}

CloseCon($conn);
?>

Ich hoffe jemand sieht etwas, das ich bei meiner Betriebsblindheit gerade nicht sehe, Ich geh derweil weiter im Netz buddeln Lg Neg

Diskutiere mit!
Beste Antwort
  • Forum-Beiträge: 8

03.09.2020, 14:51:34 via Website

ok, ich habs gefunden!
Es lag am Rollback des Emulators, - Ich hoffe ich habe das richtig verstanden - zumindest hat das Ändern der Zieladresse von "localhost" zu "10.0.2.2" den Fehler behoben!

Ich danke euch vielmals für die Antworten! Ich liebe dieses Forum :D

— geändert am 03.09.2020, 14:52:29

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 3.501

03.09.2020, 12:56:58 via Website

Hallo,

a) debug das ding doch mal durch
b) was sagt dein Error response ? gibt den doch mal aus
c) Hast du auch den Logcat nach deinem TAG gefiltert ?

— geändert am 03.09.2020, 12:59:21

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 8

03.09.2020, 13:46:12 via Website

huhu und danke fürs so schnell antworten :)

Edit: a) Ich kann jetzt debuggen, melde mich später nochmal :D ok, es taucht nur ein Fehler auf:
failed to connect to localhost/127.0.0.1:80

Danke für die Hilfe, ich fühl mich grad etwas verloren ._.

— geändert am 03.09.2020, 14:49:14

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 3.501

03.09.2020, 14:03:14 via Website

a) was für ein Port soll das denn sein ? wie arbeitest du ? mit ADB und Device ?
a1) na du musst schon Breakpunkte setzen und das Debuggen starten , dann mit F9 step for step oder F10 für weiter.

b) Log.d(TAG,error.toString());

c)

Log.i("response", response);

dann solltest du deinen String Filter auf "response" setzen .

P.S: du sollst nicht huddeln , sondern dich eher mal mit der Basis und vor allem mit der Bedienung von AS auseinander setzen :-)

— geändert am 03.09.2020, 14:07:35

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 11.012

03.09.2020, 14:07:27 via Website

Was steht denn in deinem String getString(R.string.XAMPP) drin?
Läuft das lokal oder im Internet? Ist die IP aus deinem Netz erreichbar z.b. im Webbrowser oder hört der "XAMPP" nur auf localhost (was glaube ich default einstellung ist)

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
Beste Antwort
  • Forum-Beiträge: 8

03.09.2020, 14:51:34 via Website

ok, ich habs gefunden!
Es lag am Rollback des Emulators, - Ich hoffe ich habe das richtig verstanden - zumindest hat das Ändern der Zieladresse von "localhost" zu "10.0.2.2" den Fehler behoben!

Ich danke euch vielmals für die Antworten! Ich liebe dieses Forum :D

— geändert am 03.09.2020, 14:52:29

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 11.012

03.09.2020, 14:53:04 via Website

Gerne, das lag nicht am Emulator sondern du musst halt die richtige IP bzw. Hostname in der App angeben, sonst funktioniert es nicht.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 8

03.09.2020, 14:56:46 via Website

ah ok, das mit dem Emulator war die Erklärung die ich im Netz gefunden hatte, die war allerdings nur sehr kurz.

was ist huddeln? ^^

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 11.012

07.09.2020, 09:38:41 via App

Was meinst du damit?

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
Empfohlene Artikel bei NextPit