データベース上にusernameとpasswordを保存するプログラムです。
コンパイルはでき、エラーはでないのですが、エミュレーター上でボタンを押して実行すると
次のようなエラーがなん十行も繰り返されて出ます。
18:25 Emulator: qemu-system-x86_64.exe: icmpv6 ICMP6_ECHO_REQUEST failed
そしてphpmyadminで見てみてもテーブルは追加されていません
環境は
API28 revision 6
emulator-5554 Android 9
Android Studio 3.1.4
SDK tools 26.1.1
↑開発言語 Kotlin
ファイルは
MainActivity (多分ここでエラー)
Grobal (いろいろなActivityで使える変数を確保)
LoginActivity(多分関係ない)
RegisteredActivity(多分関係ない)
以上はKotlin
xmlファイルでボタンのスクリプトのとこに
onClick。。。で押したときに実行する関数を書いてるとこがたくさんあります。
次はPHPファイル 一つのみ これはサーバーにアップロード
test.php これも間違ってそう、、
test.phpをアップしてる場所はXdomainのサーバー管理パネルから入ることができるftpのとこです(Xdomainで契約したドメインと無料サーバーを使っています)
その管理パネルからはphpmyadminにも行くことができます。
なのでここら辺は間違っていないと思います。
間違っているとすれば、MainActivityのURLでしょうか。
むずい、、、
MainActivity
1importは省略 2class MainActivity : AppCompatActivity() { 3 4 5 6 override fun onCreate(savedInstanceState: Bundle?) { 7 super.onCreate(savedInstanceState) 8 setContentView(R.layout.activity_main) 9 10 } 11 12 val jsonobj = JSONObject() 13 14 fun nextactivity(v:View){ 15 16SharedPreferenceの練習をしてる途中です。 17プログラムには必要ないです 18 19 20 val sharedPreferences = getSharedPreferences("userinfo",Context.MODE_PRIVATE) 21 22 val editor = sharedPreferences.edit() 23 24 editor.putString("username",username.text.toString()) 25 editor.putString("password",password.text.toString()) 26 27 28 jsonobj.put("username",username.text) 29 jsonobj.put("password",password.text) 30 31 32 間違っているとすればここ?↓ 33 val URL = "http://example/test.php" 34 35 36 val que = Volley.newRequestQueue(this@MainActivity) 37 38 39 val req = JsonObjectRequest(Request.Method.POST,URL,jsonobj, 40 Response.Listener{ 41 response -> 42 //Toast(response["success"].toString()) 43 44 },Response.ErrorListener { 45 // Toast("Something went wrong") 46 }) 47 48 que.add(req) 49 50 51 var nametext : String = username.getText().toString() 52 var passtext : String = password.getText().toString() 53 54 Grobal.grobalusername = nametext 55 Grobal.grobalpassword = passtext 56 57 val intent = Intent(this,RegisteredActivity::class.java) 58 startActivity(intent) 59 60 } 61 62 fun loginactivity(v: View){ 63 val intent = Intent(this,LoginActivity::class.java) 64 startActivity(intent) 65 } 66} 67 68
Grobal
1import android.app.Application 2import android.widget.EditText 3 4 object Grobal { 5 6 var grobalusername : String? = null 7 var grobalpassword : String? = null 8 9 10}
LoginActivity
1import android.content.Context 2import android.support.v7.app.AppCompatActivity 3import android.os.Bundle 4import android.view.View 5import kotlinx.android.synthetic.main.activity_login.* 6import kotlinx.android.synthetic.main.activity_registered.* 7 8class LoginActivity : AppCompatActivity() { 9 10 val sharedPreferences = getSharedPreferences("spname", Context.MODE_PRIVATE) 11 12 val editor = sharedPreferences.edit() 13 14 15 override fun onCreate(savedInstanceState: Bundle?) { 16 super.onCreate(savedInstanceState) 17 setContentView(R.layout.activity_login) 18 19 20 21 if(sharedPreferences.getBoolean("Lunched",false)==false){ 22 23 editor.putBoolean("buttontf",true) 24 25 editor.putBoolean("Lunched",true) 26 editor.commit() 27 28 }else{ 29 30 toggleButton.setChecked(sharedPreferences.getBoolean("buttontf",true)) 31 32 } 33 34 35 } 36 37 fun prebutton( v : View){ 38 39 editor.putBoolean("buttontf",toggleButton.isChecked) 40 editor.apply() 41 editor.commit() 42 43 toggleButton.setChecked(sharedPreferences.getBoolean("buttontf",true)) 44 45 } 46} 47
RegisteredActivity
1import android.content.Intent 2import android.support.v7.app.AppCompatActivity 3import android.os.Bundle 4import android.view.View 5import kotlinx.android.synthetic.main.activity_registered.* 6 7class RegisteredActivity : AppCompatActivity() { 8 9 override fun onCreate(savedInstanceState: Bundle?) { 10 super.onCreate(savedInstanceState) 11 setContentView(R.layout.activity_registered) 12 13 14 name_view.text = Grobal.grobalusername.toString() 15 password_view.text = Grobal.grobalpassword.toString() 16 } 17 18 fun chatname (v : View){ 19 val intent = Intent(this,choseuserActivity::class.java) 20 startActivity(intent) 21 } 22} 23
test
1<?php 2 3以下のユーザー名とかパスワードはほんとのやつです 4これはこのままでいいんですかね? 権限とかがよくわからない、、、 5phpmyadminに入る時のusername,passwordでもやってみたのですが、ダメでした 6 7$server_name = "localhost" 8 9$user_name = "root" 10 11$password = "" 12 13$db_name = "oreo_test" 14 15$conn = mysqli_connect($server_name,$user_name,$password,$db_name); 16 17if(isset($_POST['username'])&&isset($_POST['password'])){ 18 19$sql = "select * from test where name = '$_POST['username']'"; 20 21$res = db_query($conn, $sql); 22$rows = mysql_num_rows($res); 23 24if ($rows > 0) { 25 echo 0; 26 exit; 27} 28 $name = $_POST['username']; 29 $password= $_POST['password']; 30 31 $query = "INSERT INTO test(username,password)VALUES('$name','$password')"; 32 $data = mysqli_query($conn,$query); 33 34if($data){ 35 //echo 1; 36 echo json_encode(1); 37 38}else{ 39 echo 2; 40 41} 42 exit; 43 44} 45 46 47?> 48
あなたの回答
tips
プレビュー