Android和PHP登录认证

2024-01-03

我正在尝试在 android 上制作一个应用程序,其中用户需要登录应用程序才能使用它。登录验证将由 PHP Web 服务完成。我有一个login.java class CustomeHTTPClient这是我从互联网上获得的示例代码。有一种方法login.java班级名称connectphp正在连接到 Web 服务并使用响应来显示 toast 消息

登录.java

package com.boyzcorn.android.fyp;

import java.util.ArrayList;
import org.apache.http.NameValuePair;  
import org.apache.http.message.BasicNameValuePair;  


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class login extends Activity {
/** Called when the activity is first created. */
     EditText eText ;
    EditText eText2 ;
    Button btnSubmit ;
    Button btnSignup ;

    public void validation()
    {
        if(eText.getText().toString().equals("") ||
                eText.getText().toString().equals(""))
                {
                Toast.makeText( getApplicationContext(),"Fill Empty Fields",Toast.LENGTH_SHORT ).show();
                }
        else
        {
            connectphp();
        }
        }


    public void connectphp()
    {
    // TODO Auto-generated method stub
    ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
    postParameters.add(new BasicNameValuePair("username", eText.getText().toString()));
    postParameters.add(new BasicNameValuePair("pass1", eText2.getText().toString()));
Passing Parameter to the php web service for authentication
    //String valid = "1";
    String response = null;
    try {
    response = CustomHttpClient.executeHttpPost("http://10.0.2.2:8082/WebService/login.php", postParameters);  //Enter Your remote PHP,ASP, Servlet file link
    String res=response.toString();
    // res = res.trim();
    res= res.replaceAll("\\s+","");
    //error.setText(res);
    if(res.equals("1"))
    {
        Toast.makeText( getApplicationContext(),"Correct Username or Password",Toast.LENGTH_SHORT ).show();
        Intent i = new Intent(login.this,order_pushing.class);
        startActivity(i);
    }
        else
            if(res.equals("0"))
        {

        Toast.makeText( getApplicationContext(),"Sorry!! Incorrect Username or Password",Toast.LENGTH_SHORT ).show();
        }
    } catch (Exception e) {

    eText.setText(e.toString());
    }}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
 eText = (EditText)findViewById(R.id.uid);
 eText2 = (EditText)findViewById(R.id.editText2);
btnSubmit = (Button)findViewById(R.id.sbtn);
 btnSignup = (Button)findViewById(R.id.signupbtn);
btnSubmit.setOnClickListener(new OnClickListener() {

public void onClick(View v)
{ 
    validation(); (This is to check empty fields)


}
});

btnSignup.setOnClickListener(new View.OnClickListener() {

    public void onClick(View arg0) {
    Intent i = new Intent(login.this,signup.class);
    startActivity(i);
    }
 });

}}

这是我的customhtpclienthttp 连接定义的类。

**CustomHTTPClient.java**

package com.boyzcorn.android.fyp;

import java.util.ArrayList;
import org.apache.http.NameValuePair;  
import org.apache.http.message.BasicNameValuePair;  


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class login extends Activity {
/** Called when the activity is first created. */
     EditText eText ;
    EditText eText2 ;
    Button btnSubmit ;
    Button btnSignup ;

    public void validation()
    {
        if(eText.getText().toString().equals("") ||
                eText.getText().toString().equals(""))
                {
                Toast.makeText( getApplicationContext(),"Fill Empty Fields",Toast.LENGTH_SHORT ).show();
                }
        else
        {
            connectphp();
        }
        }


    public void connectphp()
    {
    // TODO Auto-generated method stub
    ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
    postParameters.add(new BasicNameValuePair("username", eText.getText().toString()));
    postParameters.add(new BasicNameValuePair("pass1", eText2.getText().toString()));

    //String valid = "1";
    String response = null;
    try {
    response = CustomHttpClient.executeHttpPost("http://10.0.2.2:8082/WebService/login.php",postParameters);  //Enter Your remote PHP,ASP, Servlet file link 
    String res=response.toString();
    // res = res.trim();
    res= res.replaceAll("\\s+","");
    //error.setText(res);
    if(res.equals("1"))
    {
        Toast.makeText( getApplicationContext(),"Correct Username or Password",Toast.LENGTH_SHORT ).show();
        Intent i = new Intent(login.this,order_pushing.class);
        startActivity(i);
    }
        else
            if(res.equals("0"))//Server response if 0
        {

        Toast.makeText( getApplicationContext(),"Sorry!! Incorrect Username or Password",Toast.LENGTH_SHORT ).show();
        }
    } catch (Exception e) {

    eText.setText(e.toString());
    }}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
 eText = (EditText)findViewById(R.id.uid);
 eText2 = (EditText)findViewById(R.id.editText2);
btnSubmit = (Button)findViewById(R.id.sbtn);
 btnSignup = (Button)findViewById(R.id.signupbtn);
btnSubmit.setOnClickListener(new OnClickListener() {

public void onClick(View v)
{ 
    validation();


}
});

btnSignup.setOnClickListener(new View.OnClickListener() {

    public void onClick(View arg0) {
    Intent i = new Intent(login.this,signup.class);
    startActivity(i);
    }
 });

}}

和我的 php Web 服务名称login.ph

<?php
include("Config.php");


// username and password sent from Form

接收参数 $myusername=addslashes($_POST['用户名']);

$mypassword=addslashes($_POST['pass1']);

$sql="SELECT * FROM signup WHERE user_id='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

$row=mysql_fetch_array($result);

$active=$row['active'];

$count=mysql_num_rows($result);

如果结果与 $myusername 和 $mypassword 匹配,则表行必须为 1 行

if($count==1)
    {

echo "1";(If result found send 1 to android)

    }
else
    {
echo "0";(If result not found send o to android)

    }

?>

配置文件具有与 mysql 数据库建立连接的所有连接参数,我正在使用 wamp 服务器。
*配置文件*

<?php

$mysql_hostname = "localhost";

$mysql_user = "root";

$mysql_password = "";

$mysql_database = "kse";

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)

or
 die("Opps some thing went wrong");

mysql_select_db($mysql_database, $bd) 

or

die("Opps some thing went wrong");
?>

当我运行我的应用程序时,如果我在此处使用 if 和 else 时提供了错误的登录详细信息,它会给我 toast 消息

if(res.equals("1"))
  {
      Toast.makeText( getApplicationContext(),"Correct Username or Password",Toast.LENGTH_SHORT ).show();
      Intent i = new Intent(login.this,order_pushing.class);
      startActivity(i);
  }
      else
          if(res.equals("0"))
      {

      Toast.makeText( getApplicationContext(),"Sorry!! Incorrect Username or Password",Toast.LENGTH_SHORT ).show();
      }

但是当我提供正确的信息时,没有任何反应。请帮助我。我只是 android 的初学者。如果你可以在我的代码中进行更正,请。


我忘记从 wamp 服务器启动我的网络服务,即 wamp- 2。其次,我删除了这一行“$active=$row['active'];”从我的 login.php 开始,现在一切正常

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android和PHP登录认证 的相关文章

  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • 如何强制从本机代码打开 Android 软键盘?

    我有一个游戏 当用户触摸屏幕时 它使用从 C 到 Java 的回调来强制打开软键盘 Java代码很简单是这样的 this inputMethodManager toggleSoftInput InputMethodManager SHOW
  • 导航抽屉默认片段

    我是一名新手开发人员 我正在将导航抽屉与 android support v7 集成到我的应用程序中 我有一个问题 当我启动应用程序时 主要布局是这样的
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 如何在进入新活动之前终止线程和处理程序

    大家好 在我尝试清理处理程序时 这段代码可能有点混乱 因为我一直在尝试追踪崩溃发生的位置 我有一个对话框活动 显示密码输入 进度条由线程和处理程序动画显示 似乎当我试图查看进度条是否完成并尝试终止线程时 当我尝试进入新活动时 我这样做的方式
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • JavaDoc 在 Android 项目中不起作用

    我在 Ubuntu 10 04 上使用 Eclipse 3 5 2 进行 Android 开发 我安装了 来自 Ubuntu 存储库的 Sun JDK Eclipse 3 5 2 经典 来自 eclipse org 解压到 opt ecli
  • 为什么Android应用程序在发布到市场后尺寸会增加?

    我最近在 Android 市场上发布了我的应用程序 显示应用程序大小为 5 4MB 而实际 apk 大小为 2 8MB 为什么显示多出2MB 我应该如何限制我的应用程序大小 请帮我 您的应用程序大小会增加 因为您使用了复制保护选项ON在发布
  • java.lang.IllegalArgumentException:找不到片段的 id 0x1020002 (android:id/content) 的视图

    我正在尝试从一个片段移动到另一个片段 它在片段事务期间显示以下错误 java lang IllegalArgumentException No view found for id 0x1020002 android id content f
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 在为 Android 实现 Google 登录时,任务“:app:transformClassesWithDexForDebug”执行失败

    我正在尝试为 Android 实现 Google 登录 并且我正在按照以下说明进行操作 https developers google com identity sign in android start integrating https
  • onBackPressed 隐藏 不破坏 Activity

    我知道如何取消后退按键 以便活动 主窗口保持可见 public void onBackPressed return 我的目标是隐藏该活动 但是 在没有完成它的情况下 您如何在 onBackPressed 事件中做到这一点 即我想达到 onP
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi

随机推荐

  • android.os.Build.SERIAL 是唯一的吗?

    我想为适用于手机和平板电脑的 Android 设备使用唯一的 ID IMEI 不适用于没有 SIM 卡的设备 有时 MAC 地址返回 null 我不确定 android os Build SERIAL 是否唯一 有人知道这件事吗 谢谢 问候
  • Eclipse 缺少数据库连接

    我在 Eclipse 中缺少 MySQL 和其他连接配置文件 因此 JBoss 服务器会抛出错误 由于声誉问题 无法发布图片 我只有 通用 JDBC HSQLDB 使用 Eclipse Kepler 和 jboss eap 6 1 已经在我
  • 使用 C 获取操作系统名称 [Linux,可移植发行版:Centos、Debian、Fedora、OpenSUSE、RedHat、Ubuntu]

    我知道我可以使用这个简单的命令检查我的操作系统名称 lsb release ds 但我也知道 它不能在我需要的所有平台上移植 我试过struct utsname info and uname info 它工作得很好 但只给了我 基本 名称
  • 在 ggplot2 r 中操作 geom_bar 和 coord_polar 的描绘

    我正在 ggplot 中使用 Polar coord 构建同心圆图表 我需要删除特定的线 这是代码和情节 df lt data frame A letters 1 12 B c rep Dim 1 4 rep Dim 2 4 rep Dim
  • 实例化(子)类时,您将对象声明为什么“类型”有什么区别吗?

    假设我有一个名为ParentClass和一个名为ChildClass The ParentClass是抽象的 并且ChildClass延长了ParentClass根据 Java 术语 此外 ParentClass有一个构造函数 它需要一个i
  • 使用 sed/awk 打印具有匹配模式或另一个匹配模式的行

    我需要打印文件中与模式匹配的行OR使用不同的模式awk questions tagged awk or sed questions tagged sed 我觉得这是一项容易的任务 但我似乎找不到答案 有任何想法吗 POSIX 方式 awk
  • new Function 和 vm 有什么区别?

    我想知道两者之间有什么区别新功能 https developer mozilla org en US docs Web JavaScript Reference Global Objects Function 实际上 eval https
  • 将列表数组转换为 Keras 输入

    给定一个以下形式的数组 array list 21603 125 737 579 2065 10399 1175 0 0 0 list 1896 3917 498 296 1452 523 754 450 3795 341 dtype ob
  • 子类型字段编号顺序依赖于 protobuf-net

    我可以看到 protobuf net 似乎需要在运行类型模型上具有确定性排序 有什么好的策略可以使用而不需要在每个类上都有属性来进行排序 如果您是通过属性实现的 protobuf 本身会如何执行 model Add typeof IMess
  • 在github工作流程中运行超时命令

    我有一个类似于下面代码的 GitHub 操作 我有一个文件本来打算永远运行 但在需要时会被用户中断 我尝试过使用timeout但它不起作用 并给出了一些奇怪的消息 对此的一个小警告是 如果该过程超时 我希望这不会引发错误 以便操作继续并报告
  • WPF 中的 BitmapImage 会锁定文件

    I use Dim bmi As New BitmapImage New Uri fiInfo FullName UriKind Absolute bmi CacheOption BitmapCacheOption OnLoad 这不使用加
  • 使用 javascript 查找渲染的换行符

    我有这样的情况 div width 200px div example example example example example div 文本填满整个宽度时自动跳到下一行 div 使用 javascript 如何在上面的行中呈现渲染内
  • 几次函数调用后变量的值消失

    我正在制作一个支持代理的解析器 因为使用免费代理 它们经常死掉 所以我的代码切换到其他代理 这里没有问题 但是切换的原因是我多次重新运行函数 2 7 和我解析的数据消失了 我确信问题很愚蠢 但我自己找不到答案 谢谢回复 想一想 应该以某种方
  • 在CFScript中获取新插入的记录ID

    我有一些代码将记录与请求信息一起插入到日志中 发送请求并发回响应后 我将使用响应信息更新记录 有没有办法获取新插入记录的 ID 以便我可以引用它并在收到响应后更新它 我知道使用 CF 标签可以使用 SET NO COUNT 但它似乎在 CF
  • websockets项目的jetty运行错误

    我正在尝试让 websockets 与 jetty 一起使用 我正在日食 当我尝试运行它时 控制台上出现以下错误 java lang NoClassDefFoundError org objectweb asm ClassVisitor 我
  • Ruby 中的类和该类的单例有什么区别?

    好吧 我正在尝试用 Ruby 进行一些元编程 但我有点困惑 根据我读过的几篇文章 例如this one http ryanangilly com post 234897271 dynamically adding class methods
  • 根据 WooCommerce 中的产品或类别隐藏特定运输选项

    我的 WooCommerce 网站使用 3 种不同的运输类型 皇家邮件签收 7 天 保证第二天 已记录的交付 有些产品只能使用选项 1 发货 当该产品添加到购物车时 我创建的运输类别有助于在购物车中显示选项 1 但其他两个选项仍然可见 不允
  • 如何在 Mac 中打开 conda shell

    我是 conda 和 mac 的新手 我主要使用 Ubuntu 和 pip mac 上有 conda shell吗 我想我在某处读到没有 如果是这种情况 我该如何运行如下命令 conda env create f environment y
  • 将图像数据存储在 MySQL 数据库中?

    我正在实施一个处理大量图像的项目 您认为以下两种方法的优缺点是什么 我需要存储数千个项目 每个项目作为多个字符串属性和一个图像 每个项目作为 ID 整数 MyISAM 表 How would you store the images 方法1
  • Android和PHP登录认证

    我正在尝试在 android 上制作一个应用程序 其中用户需要登录应用程序才能使用它 登录验证将由 PHP Web 服务完成 我有一个login java class CustomeHTTPClient这是我从互联网上获得的示例代码 有一种