Я работаю с Android-приложением, которое отправляет информацию на сервер PHP. Android-приложение должно сначала войти в систему, и если логин успешно начнет отправлять данные.
Это php-страница (логин):
<?php $data = file_get_contents('php://input'); $json = json_decode($data); $id=$json->{'im'}; $con = mysql_connect('localhost','root','1111'); mysql_select_db('root') or die(' '); $sql = "SELECT name FROM chiled WHERE `im` LIKE $id "; $query = mysql_query( $sql ); $a=mysql_fetch_row($query); print(json_encode($a[0])); $n=$json->{'name'}; mysql_close(); ?>
Страница PHP получает идентификатор из приложения Android и проверяет, существует ли идентификатор в БД, а затем отправляет ответ на приложение Android. В соответствии с полученным запросом приложение решит, что вход в систему будет успешным или нет, если логин будет успешным, он начнет отправку данных.
Как вы считаете, лучший способ получить данные на сервере PHP (если логин успешно завершен)? Могу ли я использовать новую страницу для получения (создать новое соединение в Android-приложении, которое подключается к другой странице, а затем начать отправку данных), или я могу сделать это на той же странице входа?
если вход успешно завершен, вы можете запустить сеанс php, который хранит сеанс и проверку. Большинство веб-сайтов работают в этом fasion (например, Stack Overflow).
Сессия в php по умолчанию передается через cookie PHPSESSID. Итак, если логин верен, вы можете вернуть cookie и локально (серверная сторона) связать сеанс с пользователем.
Кроме того, PHP позволяет создавать и управлять сеансом cookie-less.
Единственная деталь заключается в том, что вы должны связать сеанс с ip, поскольку проблемы с безопасностью.
Таким образом, цикл может быть:
android –user / password -> login.php — phpsessid -> android
android –phpsessid -> content_page.php — информация —> андроид
и если вы не вошли в систему (или срок действия сессии истек)
android –phpsessid -> content_page.php — страница с ошибкой (вам не разрешено) —> android
Вы действительно должны создавать веб-службу (SOAP / WSDL) для таких, так как это будет связано с переносом данных между PHP и Android / Java. SOAP = (Простой протокол доступа к объектам)
Ванильный метод PHP:
http://davidwalsh.name/web-service-php-mysql-xml-json
Что касается системы аутентификации пользователей, я бы посмотрел на хорошо зарекомендовавшие себя работы с фреймами (например, Zend и т. Д.) Для лучших практик и, возможно, даже сам работа с фреймами, чтобы создать систему проверки подлинности и службу WSDL для вашего приложения для Android.
Метод ZF:
Потребление SOAP в Android:
Вы можете сделать это на той же странице входа в систему, разместив переменную, чтобы сказать, что она была зарегистрирована и имела if (login = true) в php, или вы могли бы создать новое соединение с другой страницей после успешного входа в систему, это зависит от вы и зависит от того, что вы делаете на самом деле.
Можете ли вы использовать коды ответов HTTP, чтобы сигнализировать о сбое вашего приложения? http://php.net/manual/en/function.header.php
Ошибка 401 будет происходить с использованием обычной проверки подлинности HTTP. Не знаете, как клиент Android будет реагировать на это.
Он должен по крайней мере дать вам доступ к коду ответа. 200 для успеха и что-то еще для нет. (401404)