Привет, я новичок в android, и я разрабатываю приложение, имеющее экран входа в систему.
Я пробовал много учебников, но я не уверен, как подключить базу данных mysql к моему приложению для Android. Во всех учебниках они использовали php для подключения приложения Android к базе данных.
Я хочу знать, где именно мне нужно разместить php-файл и где и как мне нужно создать файл php.
Я создаю базу данных с помощью mysql workbench.
Я использую eclipse 4.2 для написания java-кода.
Привет, я использую следующий код для проверки правильности введенного имени пользователя или нет вместе с PHP-кодом, но проблема в том, что он всегда дает неправильное имя пользователя.
String response = null; try { response = CustomHttpClient.executeHttpPost("http://192.168.3.27/abc/check.php", postParameters); //Enetr Your remote PHP,ASP, Servlet file link String res=response.toString(); // res = res.trim(); res= res.replaceAll("\\s+",""); //error.setText(res); error.setText(res); if(res.equals("1")){ Intent myIntent = new Intent(LoginActivity.this, HomeActivity.class); startActivity(myIntent); } else error.setText("Sorry!! Incorrect Username or Password");
Это мой php-код.
<?php $un=$_POST['username']; $pw=$_POST['password']; //connect to the db $user = 'root'; $pswd = 'root'; $db = 'mylogin'; $conn = mysql_connect('localhost', $user, $pswd); mysql_select_db($db, $conn); //run the query to search for the username and password the match $query = “SELECT * FROM userpass WHERE login_id = '$un' AND login_pass = '$pw'”; $result = mysql_query($query) or die(“Unable to verify user because : ” . mysql_error()); //this is where the actual verification happens if(mysql_num_rows($result) > 0) echo 1; // for correct login response else echo 0; // for incorrect login response ?>
где именно мне нужно поместить файл php
Вам нужно разместить PHP-файл на сервере. (Вы можете использовать localhost, т. Е. Ваш компьютер, но для устройств вне вас нужно хранить его на веб-сервере, который вам нужен для покупки услуг домена и хостинга.)
где и как мне нужно создать файл php.
Вы можете создать файл PHP в своей машине. Это так же просто, как создание текстового файла, но с расширением .php
. Используя wamp на окнах (LAMP для linux), вы можете протестировать его. В нем есть MySQL. LAMP и WAMP будут иметь сервер Apache по умолчанию.
Вскоре после того, как вы закончите писать свой php-код и тестирование, вы можете передавать файлы через FTP на свой веб-сервер. Теперь, чтобы настроить базу данных MySQL, вы можете фактически использовать панель управления на веб-сервере.
Вам нужно использовать URL для приложения android для связывания файлов PHP, в свою очередь эти файлы PHP взаимодействуют с MysQL. для входа в систему можно подумать, как вы создали файл php как login.php. На вашем локальном хосте вы можете называть его http://localhost/myapp/login.php
Если вам нужно получить его на веб-сервере, который вы покупаете, то у вас будет http://www.yourwebsite.com/myapp/login.php
. обратите внимание, что myapp – это просто папка, в которой вы загрузили свои php-файлы.
Теперь это просто способ, с помощью которого вы можете иметь PHP и MySQL для Android-приложения. Я думаю, что учебники научили вас об использовании соединений php и mysql. Для обмена данными вам нужно знать о XML или JSON. Я думаю, что последующие учебники дали вам введение об этом.
У вас даже есть плагин для eclipse для работы с php. Просто получите помощь через Интернет о том, как его установить. Это видео может вам помочь.
Вот полный учебник, который вы ищете.
как ваша обычная html-страница, разместите значения входа с устройства android на url и выполните аутентификацию в php-файле, как в примере
Я хотел бы кратко рассказать ответ Рашиля, но по-своему. Важно то, что вам нужна связь между сервером и клиентом для доступа к вашему моему sql. Для этого вам нужно создать сервер, который отвечает на запросы вашего приложения для Android. Ваш запрос должен быть следующим.
HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet("http://example.com/script.php?var1=androidprogramming"); try { HttpResponse response = httpclient.execute(httpget); if(response != null) { String line = ""; InputStream inputstream = response.getEntity().getContent(); line = convertStreamToString(inputstream); Toast.makeText(this, line, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "Unable to complete your request", Toast.LENGTH_LONG).show(); } } catch (ClientProtocolException e) { Toast.makeText(this, "Caught ClientProtocolException", Toast.LENGTH_SHORT).show(); } catch (IOException e) { Toast.makeText(this, "Caught IOException", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(this, "Caught Exception", Toast.LENGTH_SHORT).show(); }
потреблением продукции будет:
private String convertStreamToString(InputStream is) { String line = ""; StringBuilder total = new StringBuilder(); BufferedReader rd = new BufferedReader(new InputStreamReader(is)); try { while ((line = rd.readLine()) != null) { total.append(line); } } catch (Exception e) { Toast.makeText(this, "Stream Exception", Toast.LENGTH_SHORT).show(); } return total.toString(); }
Тогда сторона сервера может быть такой:
$connection = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die('Unable to connect'); $db = mysql_selectdb(DB_NAME,$connection) or die('Database not found'); if(isset($_GET['var'])) : $query = "SELECT [a few parameters] FROM [some table] WHERE [some conditions]"; $resultset = mysql_query($query); $row = mysql_fetch_array($resultset) echo $row['[column name]']; else: echo "No get Request Received"; endif;
Это просто фрагменты, из которых вы можете
Для этого вам необходимо создать приложение php и разместить его на сервере. затем используя функции создания php (или ссылки, доступные в Интернете), которые будут затронуты приложением android, и они (функции) выдадут данные как json_encoded, которые требуются android. Вы можете легко использовать этот способ для настройки своего приложения.
Обычно я использую Framework Codeigniter, и он работает следующим образом.
myapp/ system/ application/ controllers/ mycontroller
mycontroller имеет некоторые функции, подобные этому
function test(){ $username = $this->uri->segment(3); $password = $this->uri->segment(4); // other stuff like fetch data from db table in the variable $data header('Content-Type: application/json'); echo json_encode($data); }
И андроид нуждается в этом
http://testdomain/myapp/index.php/mycontroller/test/username/password
РЕДАКТИРОВАТЬ:
если вы используете простой PHP, вы можете сделать это так
include('connection.php');
function index($username,$password) { //query database table //if result is success full // $data = array('message'=>'login success'); //else // $data = array('message'=>'login failed'); // //header('Content-Type: application/json'); //echo json_encode($data); }
из адресной строки вы можете получить доступ к ней следующим образом:
http://tomcatserver/test.php/index/testuser/testpassword
Вы должны сделать некоторое исследование, как работает php