انجمن سایت کلیدستان



ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژهزمان کنونی: ۱۳۹۵/۰۹/۱۹، ۰۲:۰۶ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: Ali Majidi
آخرین ارسال: adelrz
پاسخ 19
بازدید 2852

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#1
سلام
در این پروژه یک فرم تماس با ما درست میکنم تا کاربرای اپلیکیشن بتونن نظراتشون رو  ارسال کنن و این نظرات در دیتابیس mysql با کمک PHP ذخیره بشه :

دمو پروژه : http://www.aparat.com/v/f1Zpm

فایل main.xml:

کد پی‌اچ‌پی:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
xmlns:tools="http://schemas.android.com/tools"
    
android:layout_width="match_parent"
    
android:layout_height="match_parent"
    
android:layout_margin="15dp"
    
tools:context="co.tooba.contactus.Main" >

    <
TextView
        android
:id="@+id/textView1"
        
android:layout_width="wrap_content"
        
android:layout_height="wrap_content"
        
android:layout_alignParentRight="true"
        
android:layout_marginRight="17dp"
        
android:layout_marginTop="20dp"
        
android:text="نام"
        
android:textAppearance="?android:attr/textAppearanceSmall" />

    <
TextView
        android
:id="@+id/TextView01"
        
android:layout_width="wrap_content"
        
android:layout_height="wrap_content"
        
android:layout_alignRight="@+id/textView1"
        
android:layout_below="@+id/textView1"
        
android:layout_marginTop="20dp"
        
android:text="ایمیل"
        
android:textAppearance="?android:attr/textAppearanceSmall" />

    <
TextView
        android
:id="@+id/TextView02"
        
android:layout_width="wrap_content"
        
android:layout_height="wrap_content"
        
android:layout_alignRight="@+id/TextView01"
        
android:layout_below="@+id/TextView01"
        
android:layout_marginTop="20dp"
        
android:text="شماره تماس"
        
android:textAppearance="?android:attr/textAppearanceSmall" />

    <
TextView
        android
:id="@+id/TextView03"
        
android:layout_width="wrap_content"
        
android:layout_height="wrap_content"
        
android:layout_alignRight="@+id/TextView02"
        
android:layout_below="@+id/TextView02"
        
android:layout_marginTop="20dp"
        
android:text="پیام"
        
android:textAppearance="?android:attr/textAppearanceSmall" />

    <
EditText
        android
:id="@+id/editName"
        
android:layout_width="match_parent"
        
android:layout_height="wrap_content"
        
android:layout_above="@+id/TextView01"
        
android:layout_toLeftOf="@+id/TextView02"
        
android:ems="10" >

        <
requestFocus />
    </
EditText>

    <
EditText
        android
:id="@+id/editEmail"
        
android:layout_width="match_parent"
        
android:layout_height="wrap_content"
        
android:layout_alignBottom="@+id/TextView01"
        
android:layout_alignLeft="@+id/editName"
        
android:layout_toLeftOf="@+id/TextView02"
        
android:ems="10" />

    <
EditText
        android
:id="@+id/editPhone"
        
android:layout_width="match_parent"
        
android:layout_height="wrap_content"
        
android:layout_alignBottom="@+id/TextView02"
        
android:layout_alignRight="@+id/editEmail"
        
android:ems="10" />

    <
EditText
        android
:id="@+id/editMessage"
        
android:layout_width="wrap_content"
        
android:layout_height="150dp"
        
android:layout_alignLeft="@+id/editPhone"
        
android:layout_alignRight="@+id/TextView03"
        
android:layout_below="@+id/TextView03"
        
android:layout_marginTop="18dp"
        
android:ems="10"
        
android:gravity="top"
        
android:inputType="textMultiLine" />

    <
Button
        android
:id="@+id/btnSend"
        
style="?android:attr/buttonStyleSmall"
        
android:layout_width="wrap_content"
        
android:layout_height="wrap_content"
        
android:layout_alignLeft="@+id/editMessage"
        
android:layout_below="@+id/editMessage"
        
android:layout_centerHorizontal="true"
        
android:layout_marginTop="14dp"
        
android:text="ارسال" />

</
RelativeLayout

فایل Main.jav :

کد پی‌اچ‌پی:
package co.tooba.contactus;

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

public class 
Main extends Activity {

    private 
EditText name ,email ,phone ,message ;
    private 
Button send;
    private 
String url ;
    
    protected 
void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.main);
        
        
send = (Button)findViewById(R.id.btnSend);
        
        
name = (EditText)findViewById(R.id.editName);
        
email = (EditText)findViewById(R.id.editEmail);
        
phone = (EditText)findViewById(R.id.editPhone);
        
message = (EditText)findViewById(R.id.editMessage);
        
        
        
send.setOnClickListener(new OnClickListener() {
            public 
void onClick(View arg0) {

                
url "http://192.168.0.152/contact_us.php?name="+name.getText()+"&email="+email.getText()+"&message="+message.getText()+"&phone="+phone.getText();
                
Server db = new Server(Main.this url);
                
db.execute();
                
            }
        });
                
    }



فایل Server.java :

کد پی‌اچ‌پی:
package co.tooba.contactus;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;

public class 
Server extends AsyncTask<StringStringString> {

    private 
ProgressDialog dialog ;
    private 
Context myContext;
    private 
InputStream data null;
    private 
String url ;
    private 
String output "";
    
    public 
Server (Context context String Url){
        
myContext context;
        
url Url;
    }
    
    
    @
Override
    
protected void onPreExecute() {
        
super.onPreExecute();
        
        
dialog = new ProgressDialog(myContext);
        
dialog.setTitle("ارتباط با سرو");
        
dialog.setMessage("در حال ارسال اطلاعات ...");
        
dialog.setIndeterminate(false);
        
dialog.setCancelable(true);
        
dialog.show();    
        
    }
    
    @
Override
    
protected String doInBackground(String... arg0) {
        
        try {

            
DefaultHttpClient httpClient = new DefaultHttpClient();
            
HttpGet httpGet = new HttpGet(url);
            
HttpResponse response httpClient.execute(httpGet);
            
HttpEntity entity response.getEntity();
            
data entity.getContent();

            
        } catch (
ClientProtocolException e) {
            
e.printStackTrace();
        } catch (
IOException e) {
            
e.printStackTrace();
        }
        
        
        try {
            
BufferedReader reader = new BufferedReader( new InputStreamReader(data "UTF-8"), 8);
            
StringBuilder sb = new StringBuilder();
            
String row null;
            
            while ((
row reader.readLine()) != null) {
                
sb.append(row "\n");
            }
            
data.close();
            
output sb.toString();
            
        } catch (
UnsupportedEncodingException e) {
            
e.printStackTrace();
        } catch (
IOException e) {
            
e.printStackTrace();
        }
        
        return 
output;
    }
    
    @
Override
    
protected void onPostExecute(String output) {
            
dialog.dismiss();
        try {
            
Toast.makeText(myContextoutputToast.LENGTH_LONG).show();
        } catch (
Exception e) {
            
e.printStackTrace();
        }
   }



فایل PHP :

کد پی‌اچ‌پی:
<?php
$con 
mysql_connect('localhost','root','');
mysql_select_db('contact_us',$con);
mysql_query("SET NAMES 'utf8'");

    if(! empty(
$_GET['name'])){

        if(!
filter_var($_GET['email'], FILTER_VALIDATE_EMAIL))
            echo 
"ایمیل را به صورت صحیح وارد کنید.";
        elseif(empty(
$_GET['message']))
            echo 
"فیلد پیام خالی می باشد.";
        else{
                
$name $_GET["name"];
                
$email $_GET["email"];
                
$phone = (isset($_GET["phone"])) ? $_GET["phone"] : "";
                
$message $_GET["message"];
                
$result mysql_query("INSERT INTO messages(name, email, phone, message) VALUES ('$name' , '$email' , '$phone' , '$message')");

                if(
$result)
                    echo 
"پیام شما با موفقیت ارسال شد.";
        }
    }else{
        echo 
"فیلدها را به دقت تکمیل کنید.";
    }

?>
 

سعی شده تا به صورت کاملا ساده و بدون هیچ کد اضافه ای این پروژه رو براتون آماده کنیم . لذا حواستون باشه که در قسمت امنیت php کاری انجام نشده است و این پروژه جهت آموزش می باشد .- در لاین 31 فایل Main.java آدرس قرارگیری فایل PHP را باید مشخص کنید تا اطلاعات و دریافت اطلاعات به صورت صحیح انجام شود .– ارسال اطلاعات از طریق HttpGet به فایل PHP ارسال میشود و پیام مورد نظر از  طریق Toast در اکتیویتی نمایش داده میشود .

لینک دانلود سورس پروژه :

http://blog.toobaweb.com/wp-content/uplo...tactUs.zip


فایل‌های پیوست

دانلود ContactUs.zip

نام فایل ContactUs.zip
نوع فایل .zip
دفعات دانلود 155
اندازه 2.3 MB
ارسال کننده فایل Ali Majidi
پاسخ
 سپاس شده توسط admin ، so2011 ، داش بهروز ، ramtin2080 ، mortaza7khat

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#2
داداش الان کاربر ارسال رو زد اطلاعات کجا می ره
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#3
(۱۳۹۴/۰۶/۲۳, ۱۱:۱۶ ب.ظ)'Erfannj' نوشته: داداش الان کاربر ارسال رو زد اطلاعات کجا می ره

 
خب اطلاعات وارد دیتابیسی میشه که روی هاست خودتون قرار دادید.


 
پاسخ
 سپاس شده توسط Ali Majidi

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#4
من ازش استفاده کردم ولی ارور داد
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#5
(۱۳۹۴/۰۶/۲۴, ۰۳:۵۴ ب.ظ)'Erfannj' نوشته: من ازش استفاده کردم ولی ارور داد
 

چه اروری ؟
احتمالا شما دیتابیس رو ایجاد نکرده اید !
شما دیتابیسی با نام contact_us در phpmyadmin درست کنید و تیبل زیر رو داخلش بسازید :

کد پی‌اچ‌پی:
CREATE TABLE IF NOT EXISTS `messages` (
`
idint(11NOT NULL,
  `
namevarchar(255NOT NULL,
  `
emailvarchar(255NOT NULL,
  `
phonevarchar(50NOT NULL,
  `
messagetext NOT NULL
ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8

به دو نکته زیر دقیقا توجه کنید :
1- در فایل Main.java متغییر url رو تغییر بدید :

کد پی‌اچ‌پی:
url "http://your_Address/contact_us.php?name="+name.getText()+"&email="+email.getText()+"&message="+message.getText()+"&phone="+phone.getText(); 

-به جای your_Address آی پی سیستم خودتون یا 127.0.0.1 رو قرار بدید .
2-در  فایل php (یوزر + پسورد + نام دیتابیس) را به صورت صحیح وارد کنید :

کد پی‌اچ‌پی:
$con mysql_connect('localhost','user','pass');
mysql_select_db('database',$con); 

بعد انجام این دو مرحله اگر باز هم مشکلی داشتید بفرماید تا راهنمایتون بکنم ...
پاسخ
 سپاس شده توسط admin

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#6
همه چی درست میشه ولی به جدول اضافه نمیشه بعد از زدن ارسال
اگه ممکنه یک بار دیگه قسمت سرور و دیتابیس رو چک کنید و تست کنید.
اگه ممکنه فایل sql دیتابیس تست رو آپلود کنید.
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#7
دوست عزیز میشه اینارو رو هاست رایگان انجام داد
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#8
دوست عزیز بخبشید من تازه دارم کار با سرورو یاد میگیرم میخوام بدونم اون کدی که گزاشتید نوشتید فایل PHP در اولین پستتون

اونو باید داخل لکلیپس بسازم یا رو هاست اگه رو اکلیپس باید بزارم چجوری بزارم
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#9
یه سوال دیگه اینا که رفت تو دیتابیس من چجوری بفهمم اطلاعات کجا رفته
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#10
(۱۳۹۴/۰۹/۱۸, ۰۱:۴۶ ق.ظ)hamidreza2000 نوشته: دوست عزیز بخبشید من تازه دارم کار با سرورو یاد میگیرم میخوام بدونم اون کدی که گزاشتید نوشتید فایل PHP در اولین پستتون

اونو باید داخل لکلیپس بسازم یا رو هاست اگه رو اکلیپس باید بزارم چجوری بزارم

سلام.
فایل های php باید در سرور اینترنتی قرار داده شوند.
شما فایل php را با استفاده از هر ویرایشگر متن (مثل همین Eclipse یا Notepad یا Adobe Dreamweaver یا ...) می توانید بسازید، اما بعد از ساخت، باید فایل را بر روی سرور اینترنتی قرار بدهید. ساخت فایل php ، ارتباطی با ساخت فایل های خود پروژه اندروید ندارد.
اگر خواستید فایل php را در کامپیوتر خودتان تست کنید (اجرا کنید)، می توانید از نرم افزارهای شبیه ساز مثل Wamp Server استفاده نمایید (کلید شماره 367).

hamidreza2000 نوشته: یه سوال دیگه اینا که رفت تو دیتابیس من چجوری بفهمم اطلاعات کجا رفته

شما قبلا باید database را ساخته باشید (حالا یا از طریق کدنویسی php و ارتباط با پایگاه داده MySQL یا از طریق رابط گرافیکی phpMyAdmin). بعد برای دیدن اطلاعات ذخیره شده در database نیز از همین دو روش (از طریق کدنویسی PHP یا از طریق phpMyAdmin) می توانید اقدام نمایید. در این مورد، آموزش های بخش MySQL را بخوانید :

http://www.kelidestan.com/mysql/index.php

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#11
ببخشید اینقد سوال میپرسم
من چهارده سال سن دارم و مبتدیم
تو قسمت لوکال هاست باید نام سایتی توش هاست دارمو بزنم؟؟
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#12
الان تو قسمت یور ادرس گفته بود که ip خود سیستمو بزنید ولی این برای اون برنامه شبیه ساز سرور تو کامپیوتر .من یعنی باید ip هاست خودمو وارد کنم از کجا باید بفهمم ip هاست من چی هس؟؟
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#13
یک سوال یعنی کاری دیگه به دیتابیس اندروید نداریم و مستقیم با my sql کار میکنیم ؟
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#14
وقتی توی قسمت پیام یه متن چند خطی می نویسم و ارسال رو می زنم برنامه کرش میشه
باشد چیکار کرد؟
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#15
(۱۳۹۴/۱۱/۰۱, ۰۵:۳۷ ب.ظ)M@MmAd نوشته: وقتی توی قسمت پیام یه متن چند خطی می نویسم و ارسال رو می زنم برنامه کرش میشه
باشد چیکار کرد؟

سلام.
بنده کدهای پروژه را بررسی نکرده ام، اما حدس می زنم که به دلیل کاراکتر ((خط جدید)) یا کاراکترهای دیگر باشد، بنابراین از روش های مربوط به url encode برای encode کردن اطلاعات ارسالی استفاده کنید (ببینید این روش ها در کدها به کار رفته یا خیر).
اگر از این مورد نبود، به خطایابی پروژه اندروید بپردازید و متن خطا را در LogCat بیابید.

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط M@MmAd

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#16
نه از روش url encode استفاده نشده. مستقیم متن رو از edittext میگیره و میزاره تو url
چجوری باید از url encode استفاده کرد؟

ممنون
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#17
با سلام . دوستانی که مشکل دارند از کدهای زیر جهت فایل php استفاده کنن . یک سری مشکلات داشت ویرایش کردم .

کد:
<?php
$con = mysql_connect("localhost","userdb","pwdb");
mysql_select_db("dbname",$con);
mysql_query("SET NAMES 'utf8'");

   if(! empty($_GET["name"])){

       if(!filter_var($_GET["email"], FILTER_VALIDATE_EMAIL))
           echo "ایمیل را به صورت صحیح وارد کنید.";
       elseif(empty($_GET["message"]))
           echo "فیلد پیام خالی می باشد.";
       else{
               $name = $_GET["name"];
               $email = $_GET["email"];
               $phone = (isset($_GET["phone"])) ? $_GET["phone"] : "";
               $message = $_GET["message"];
               $result = mysql_query("INSERT INTO contact_us(name, email, phone, message) VALUES ('$name' , '$email' , '$phone' , '$message')");

               if($result)
                   echo "پیام شما با موفقیت ارسال شد.";
       }
   }else{
       echo "فیلدها را به دقت تکمیل کنید.";
   }

?>


دیتابیس با هراسمی دوست دارید ایجاد کنید فقط اسم و پسوردو یوزر نیمش رو در خط زیر وارد کنید

کد پی‌اچ‌پی:
$con mysql_connect("localhost","userdb","pwdb");
mysql_select_db("databasename",$con); 


حالا در این دیتابیس یک تیبل ایجاد کنید با نام contact_us یا هرنامی که دوست دارید . فقط اون رو در خط زیر وارد کنید که اینجا contact_us می باشد

کد:
               $result = mysql_query("INSERT INTO contact_us(name, email, phone, message) VALUES ('$name' , '$email' , '$phone' , '$message')");

ردیف هایی که در تیبل contact_us وارد می کنید دقت کنید به صورت زیر باشید .

کد:
Name = phone
type = VARCHAR
Length/Values = 50
Collation = utf8mb4_persian_ci

-------------------------

Name = name
type = VARCHAR
Length/Values = 255
Collation = utf8mb4_persian_ci

--------------------------

Name = message
type = TEXT
Collation = utf8mb4_persian_ci

-------------------------

Name = id
type = INT
Length/Values = 11

-------------------------

Name = email
type = VARCHAR
Length/Values = 255
Collation = utf8mb4_persian_ci


Iran Heart
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#18
سلام.)

باتشکر از شما ، همون کد های اول هم مشکلی نداشت ، دوستان باید کمی دقت کنند و حداقل دو خطی از این کد هارو بفهمن ...

ممنون و موفق باشید
پاسخ

ساخت پروژه تماس با ما در آندروید + PHP + سورس پروژه

#19
سلام من همرو ب درستی انجام دادم اما پروژه هیچچ عملکردی از خودش نشون نمیده تو دو سه جا شک دارم

1: تو فایل Php سرور یجا است نوشتی کوعری خط سوم ی مقداری داره بنام set names اونجا باید چی گذاشت?
2: تو فایل مین جاوا بجا IP نباید مگه ادرس سایت رو گذاشت من اون رو قرار دادم
3: در phpmyadmin من جداول کنتاکت اس و مسیج رو ساختم ک زیر مجموعش اون تیبل هایی ک گفتید است و در فایل Php کنتاکت اس رو معرفی کردم

4: الان مشکل اینه وقتی باتن رو میزنم هیچ اتفاقی نمیفته پیغام های toest هم حتی اجرا نمیشه واقعا کد ها درسته ?

لطفا راهنمایی کنید خیلی کارم گیره

ادرس :
http://www.ketabkhanehonline.ir/contact_us.php
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)