arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ با سلام به همه عزیزان در حال آموزش php هستم و قصد دارم برای اولین تمرینآموزشها و مطالب و مشکلات رو با شما عزیزان به اشتراک بگذارم تا با هم بتونیم این مثال رو جلو ببریم لطفا تا پایان رفع همه مشکلها توسط اساتید اسپم نزنید پست که بسته شد استفاده بفرمایید سطح : پیشرفته ( حرفه ای ) موضوع : ثبت اطلاعات دستگاه ( گوشی کاربر ) در دیتابیس آنلاین و هاست شخصی ( بدون موارد تکراری ) هدف : ثبت اطلاعات دستگاه هر کاربر به محض بازکردن برنامه و در صورتی که برنامه قبلا ثبت شده بود (( با تشخیص از روی سریال گوشی )) تاریخ روز را در دیتابیس ثبت میکنداین دیتابیس شامل همه مشخصات برنامه و دستگاه است که به توسعه دهنده در داشتن آمار نصب آمار استفاده از برنامه آمار دستگاه های استفاده شده و ...را میدهد پیش نیاز های این موضوع: 1-داشتن هاست و دامنه ( برای ایجاد دیتابیس و ثبت و ذخیره اطلاعات) 2- آشنایی با( ایجاد دیتابیس / یوزر دیتابیس / اتصال یوزر و دیتابی / انتقال فایل ها به پوشه ای خاص) در هاست مربوطه 3-اطلاعات لازم در مبحث php پیش فرض های مسئله : 1- وجود یک دیتابیس در هاست با 13 ستون به نامهای id date time appname package_name app_ver store_seller phone_manufacturer phone_model phone_product phone_id phone_sdkversion version_android این هم عکس دیتابیس 2- کتابخانه AriaAsynkTask نوشته استاد امین شاهدی ( اخرین نسخه را نصب کنید ) http://answercenter.ir/topic/14604-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D9%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-ariaasynktask/page-1 3-کد های بیسیک #Region Project Attributes #ApplicationLabel: ارسال اطلاعات دستگاه #VersionCode: 1 #VersionName: 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: unspecified #CanInstallToExternalStorage: False #End Region #Region Activity Attributes #FullScreen: False #IncludeTitle: True #End Region Sub Process_Globals Dim phone1 As Phone 'پیش فرض در بیسیک موجود است Dim phon_id As PhoneId ' پیش فرض در بیسیک موجود است 'این مقادیر به صورت مثال هست و شما می توانید در برنامه مقدار دهی کنید Dim version As String ' نیازی نیست به مقدار دهی Dim date As String ' نیازی نیست به مقدار دهی Dim time As String ' نیازی نیست به مقدار دهی Dim phone_manufacturer As String ' نیازی نیست به مقدار دهی Dim phone_model As String ' نیازی نیست به مقدار دهی Dim phone_product As String ' نیازی نیست به مقدار دهی Dim phone_id As String ' نیازی نیست به مقدار دهی Dim phone_sdkversion As String ' نیازی نیست به مقدار دهی Dim version_android As String ' نیازی نیست به مقدار دهی Dim app_ver As Int Dim package_name As String Dim appname As String Dim store_seller As String End Sub Sub Globals '//////////////////////////////////////////////////////////////////////// Dim aria As AriaAsyncTask Dim dlr As AriaAsyncTaskDownloader '------------------------------------------------------------------- Dim mydate As String Dim mytime As String Dim myappname As String Dim mypackage_name As String Dim myapp_ver As String Dim mystore_seller As String Dim myphone_manufacturer As String Dim myphone_model As String Dim myphone_product As String Dim myphone_id As String Dim myphone_sdkversion As String Dim myversion_android As String '////////////////////////////////////////////////////////////////////// Private Button1 As Button End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("layout_test") all_string End Sub Sub aria_DoInBackground(Params() As Object) As Object Try Dim result As String = dlr.Get(Params(0)).POST(Params(1)).String Dim str() As String = Regex.Split("#",result) Msgbox(result,"") mydate=str(0 ) mytime=str(1) myappname=str(2) mypackage_name=str(3) myapp_ver=str(4) mystore_seller=str(5) myphone_manufacturer=str(6) myphone_model=str(7 ) myphone_product=str(8) myphone_id=str(9) myphone_sdkversion=str(10) myversion_android=str(11) Return "done" Catch Log(LastException) Return "error" End Try End Sub Sub aria_OnPostExecute(Result As Object) Log("اینجا نتیجه رو مینویسه") Log(Result) End Sub Sub Button1_Click '////////////////////////////////////////////////////////////////////////////////////////// aria.Initialize("aria") dlr.Initialize(aria) If dlr.IsConnected Then aria.Run(Array As String("http://xxxx.ir/testfile/information.php","date="&date&"&time="&time&"&appname="&appname&"&package_name="&package_name&"&app_ver="&app_ver&"&store_seller="&store_seller&"&phone_manufacturer="&phone_manufacturer&"&phone_model="&phone_model&"&phone_product="&phone_product&"&phone_id="&phone_id&"&phone_sdkversion="&phone_sdkversion&"&version_android="&version_android)) Else ToastMessageShow("disconnected",False) End If '////////////////////////////////////////////////////////////////////////////////////////////// End Sub '//////////////////////// #Region تنظیمات و اختصاص مقادیر و داده ها ی دستگاه به پارامتر ها Sub all_string app_ver = 6 package_name = "arastoo.m.s.ir" store_seller = "google play" appname = "ارسال اطلاعات" phone_manufacturer = phone1.Manufacturer phone_model = phone1.Model phone_product = phone1.Product phone_id = phon_id.GetDeviceId phone_sdkversion = phone1.SdkVersion Version1 version_android = version date = DateTime.Date(DateTime.Now) time = DateTime.Time(DateTime.Now) ' '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ '♥♥♥♥ log کنترل مقادیر در ♥♥♥♥♥♥♥♥ '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ Log ("date="&date ) '♥ Log ("time="&time ) '♥ '♥ Log ("appname="&appname ) '♥ Log ("package_name="&package_name ) '♥ Log ("app_ver="&app_ver ) '♥ Log ("store_seller="&store_seller ) '♥ '♥ Log ("phone_manufacturer="&phone_manufacturer ) '♥ Log ("phone_model="&phone_model ) '♥ Log ("phone_product="&phone_product ) '♥ Log ("phone_id="&phone_id ) '♥ Log ("phone_sdkversion="& phone_sdkversion) '♥ Log ("version_android="&version_android ) '♥ '♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ End Sub Sub Version1 If phone1.SdkVersion="19" Then version="4.4.2" else If phone1.SdkVersion="18" Then version="4.3" else If phone1.SdkVersion="17" Then version="4.2.2" else If phone1.SdkVersion="16" Then version="4.1.2" else If phone1.SdkVersion="15" Then version="4.0.3" else If phone1.SdkVersion="14" Then version="4.0" else If phone1.SdkVersion="13" Then version="3.2" else If phone1.SdkVersion="12" Then version="3.1" else If phone1.SdkVersion="11" Then version="3.0" else If phone1.SdkVersion="10" Then version="2.3" else If phone1.SdkVersion="9" Then version="2.3.3" else If phone1.SdkVersion="8" Then version="2.2" else If phone1.SdkVersion="7" Then version="2.1" else If phone1.SdkVersion="4" Then version="1.6" else If phone1.SdkVersion="3" Then version="1.5" else If phone1.SdkVersion="21" Then version="5.0" else If phone1.SdkVersion="20" Then version="4.4.4" else If phone1.SdkVersion="22" Then version="5.1.1" else If phone1.SdkVersion="23" Then version="6.0-6.0.1" else If phone1.SdkVersion>"23" Then version="bozorgtar-az-6" else If phone1.SdkVersion<"3" Then version="kuchektar-az-1.5" End If End Sub #End Region '/////////////////////////// Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub 4- کد های php و فایل php <?php $con = mysqli_connect('localhost',xxxxx','xxxxx','xxxxxn'); mysqli_set_charset($con,"utf8"); $date = $_POST['date']; $time = $_POST['time']; $appname = $_POST['appname']; $package_name = $_POST['package_name']; $app_ver = $_POST['app_ver']; $store_seller = $_POST['store_seller']; $phone_manufacturer = $_POST['phone_manufacturer']; $phone_model = $_POST['phone_model']; $phone_product = $_POST['phone_product']; $phone_id = $_POST['phone_id']; $phone_sdkversion = $_POST['phone_sdkversion']; $version_android = $_POST['version_android']; if($con->query("INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer) VALUES ('$date','$time','$appname','$package_name','$app_ver','$store_seller','$phone_manufacturer')")===true){ echo "done"; } ?> تا اینجا کار ها ییرو که انجام دادیم رو نوشتم ولی سورس مشکل داره که مشکلات رو در پست های بعدی می نویسم تا اساتید راهنمایی بفرمایند و کم کم سورس کامل بشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ خوب با سلام به همه اساتید عزیز اولین مشکل برنامه اینه که در دیتابیس فقط 7 مورد اول رو ثبت میکنه !!!!یعنی فقط datetimeappnamepackage_nameapp_verstore_sellerphone_manufacturer با توجه به اینکه همه موارد در لوگ دیده میشه و مقدار ها پٌر هستند چرا مقادیر در دیتابیس وارد نمیشه؟؟مجبت میکنید در صورت راهنمایی من کد ها رو تغیر میدم و نتایج رو اعلام میکنم تا عزیزان و دوستان هم با خطا ها و هم علت بروز خطاها آشنا بشن با تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Gray Mind 913 ارسال شده در 3 شهریور، ۱۳۹۵ اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ شما اومدی مقدار هارو با پست گرفتی و ذخیره کردی تو یه متغیر خوب توی دستور Insert چرا همه شون رو وارد نکردی؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ خوب مشکل همینجاست که اگر مقدار پارامتر ها بیشتر از 7 تا بشه در دستور insert دیگه هیچ کاری انجام نمیده و اطلاعات رو به دیتابیس منتقل نمیکنه خطایی هم اعلام نمیکنه در واقع دستور اگه به صورت زیر باشه که کامل همه 12 تا استرینگ رو شامل میشه به مشکل میخوره "INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer,phone_model,phone_product,phone_id,phone_sdkversion,version_android) VALUES ('$date','$time','$appname','$package_name','$app_ver','$store_seller','$phone_manufacturer','$phone_model,'$phone_Product','$phone_id','$phone_sdkversion','$version_android')")===true){ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
shahab.es 5,429 ارسال شده در 3 شهریور، ۱۳۹۵ اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ ارسطو جان توی کد php به شکل زیر کار کن که ارور رو ببینی if($con->query()){ }else{ echo $con->error; //or echo mysqli_error($con); } اولی رو تست نکردم دومی تست شدست امتحان کن با هردو قبل از ریجکس هم ، نشون بده که خروجی چی هست که ببینی ارور هاشو اگر موجوده لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ ارسطو جان توی کد php به شکل زیر کار کن که ارور رو ببینی if($con->query()){ }else{ echo $con->error; //or echo mysqli_error($con); } اولی رو تست نکردم دومی تست شدست امتحان کن با هردو قبل از ریجکس هم ، نشون بده که خروجی چی هست که ببینی ارور هاشو اگر موجوده شهاب عزیز مرسی که پست رو کنترل میکنی و راهنمایی میکنی امید وارم همیشه شاد و سلامت باشی رفیق ( اول بگم هنوز کد های بالا که گفتی شرط بزارم رو عوض نکردم و طول این مدت داشتم روی php پاین کار میکردم ) من php رو به این صورت قرار دادم که باز هم مشکل داره همون مشکل که هیچ عکسالعملی نشون نمیده <?php //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ //مشخصات دیتابی درون هاست///////////////////////////////////////////// $servername = "localhost"; $username = "xxxxx"; $password = "xxxxxx"; $dbname = "xxxxxxxxxxxxx"; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ // داده های ارسال از طرف بیسیک 4 اندروید ///////////////////////// $date = $_POST['date']; $time = $_POST['time']; $appname = $_POST['appname']; $package_name = $_POST['package_name']; $app_ver = $_POST['app_ver']; $store_seller = $_POST['store_seller']; $phone_manufacturer = $_POST['phone_manufacturer']; $phone_model = $_POST['phone_model']; $phone_product = $_POST['phone_product']; $phone_id = $_POST['phone_id']; $phone_sdkversion = $_POST['phone_sdkversion']; $version_android = $_POST['version_android']; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer,phone_model,phone_product,phone_id,phone_sdkversion,version_android) VALUES ('$date','$time','$appname','$package_name','$app_ver','$store_seller','$phone_manufacturer','$phone_model,'$phone_Product','$phone_id','$phone_sdkversion','$version_android')"; // use exec() because no results are returned $conn->exec($sql); echo "New record created successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?> و وقتی صفحه وب رو از مرورگر لود میکنم این پیام رو میده ؟؟ INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer,phone_model,phone_product,phone_id,phone_sdkversion,version_android) VALUES ('','','','','','','',','','','','') SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '','','','','')' at line 2 ممنون میشم راهنمایی بفرمایید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer,phone_model,phone_product,phone_id,phone_sdkversion,version_android) VALUES ('','','','','','','',','','','','') SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '','','','','')' at line 2 ممنون میشم راهنمایی بفرمایید اوه اوه یه مقدار (((( ' ))) کم داره ... خطای داشتم تو تایپ کنترل میکنم خبر میدم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ خوب مشکل اول حل شددددددددددحطا در تایپ نادرست بود ....دقت کنید در تایپ پارامتر ها مخصوصا (( " و ' )) و حالا می بینید که در دیتابیس مشخصات گوشی به راحتی ثبت شد مشکل بعدی وجود نداشتن حروف فارسی هست که ئر php قبلی دیتابیس مشکلی با این مورد نداشت ولی با تغییر کد ها باید پارامتر ها رو utf8 تعریف کنیم می بینید که اسم برنامه که فارسی بوده خوب نوشته نشده و حالا اگر در مرور گر آدرس فایل php رو بزنیم می بینیم که به درستی نوشته شده New record created successfully خوب مشکلاتی که الان در گیرش هستیم 1- چاپ نشدن فارسی در دیتابیس هست (( اساتید راهنمایی بفرمایند بنده تصیح کنم ))2- ذخیره شدن تکراری دستگاه ها (( که در پست بعدی با قرار دادن یک شرط در فایل php این موضوع رو کنترل خواهیم کرد)) لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
shahab.es 5,429 ارسال شده در 3 شهریور، ۱۳۹۵ اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ ارسطو جان برای فارسی کردن چارست دیتابیست کد زیر رو قرار بده بعد از کانکت شدن به بانک یعنی اولین کوئری بعد از ساخت $con باشه mysqli_set_charset($con,"utf8"); لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ ارسطو جان برای فارسی کردن چارست دیتابیست کد زیر رو قرار بده بعد از کانکت شدن به بانک یعنی اولین کوئری بعد از ساخت $con باشه mysqli_set_charset($con,"utf8"); با خطا مواجه میشه و در خطا مینویسه [24-Aug-2016 17:26:45 UTC] PHP Warning: mysqli_set_charset() expects parameter 1 to be mysqli, object given in /home/xxxxxx/xxxx/xxx_php/information6.php on line 29 لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
shahab.es 5,429 ارسال شده در 3 شهریور، ۱۳۹۵ اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ ارسطو جان من متوجه نشدم شما دارید با pdo کار میکنید یا mysqli مشخص کنید این رو چون توی یه پست pdo میذارید تو یکی mysqli من pdo ؤو وارد نیستم و کار نکردم باهاش کدی که بهتون دادم ، کاملا تست شدست و توی پروژه های خودمم دارم ازش استفاده میکنم... خط 29 رو چک کنید فایلتون چرا _php هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 3 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 3 شهریور، ۱۳۹۵ شهاب جان تا قبل از مطالعه این لینک که تفاوت این دو رو میگه قصد داشتم از pdo استفاده کنم چون فکر میکردم امنیتش بیشتره ولی الان کد ها رو به mysqli عوض میکنم تا بعد از این با mysqli بریم جلو و من هم بتونم راهنمایی های شما رو استفاده کنم برای علاقه مندان هم این لینک رو مطالعه بفرمایید ( کوتاه و مختصر تفاوت این دو رو گفته )) http://baboon.ir/pdo-%D8%AF%D8%B1-%D9%85%D9%82%D8%A7%D8%A8%D9%84-mysqli-%DA%A9%D8%AF%D8%A7%D9%85-%D8%B1%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D8%B1%D8%AF%D8%9F/# لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 4 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 4 شهریور، ۱۳۹۵ خوب بعد از مطالعه لینک بالا تصمیم میگیریم که با mysqli کار کنیم وکد های ما در فایل php به صورت زیر خواهد بود که کد معرفی شده توسط استاد اسکندری عزیز برای برطرف شدن مشکل زبان فارسی در دیتابیس رو هم اضافه میکنیم که می بینید مشکل برطرف شد <?php //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ //مشخصات دیتابی درون هاست///////////////////////////////////////////// $servername = "localhost"; $username = "یوزر نیم دیتابیس رو بنویسید"; $password = "پسورد دیتابیسرو بنویسید"; $dbname = "اسم دیتابیس رو بنویسید"; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ // گرفتن داده های ارسال شده از طرف بیسیک 4 اندروید ///////////////////////// $date = $_POST['date']; $time = $_POST['time']; $appname = $_POST['appname']; $package_name = $_POST['package_name']; $app_ver = $_POST['app_ver']; $store_seller = $_POST['store_seller']; $phone_manufacturer = $_POST['phone_manufacturer']; $phone_model = $_POST['phone_model']; $phone_product = $_POST['phone_product']; $phone_id = $_POST['phone_id']; $phone_sdkversion = $_POST['phone_sdkversion']; $version_android = $_POST['version_android']; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ // Create connection $conn = new mysqli($servername, $username, $password, $dbname); //برای تشخیص حروف فارسی در دیتابیس آنلاین این گزینه رو اضافه میکنیم mysqli_set_charset($conn,"utf8"); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; $sql = "INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer,phone_model,phone_product,phone_id,phone_sdkversion,version_android) VALUES ('$date','$time','$appname','$package_name','$app_ver','$store_seller','$phone_manufacturer','$phone_model','$phone_Product','$phone_id','$phone_sdkversion','$version_android')"; if ($conn->query($sql) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?> تا اینجا اگر موفق بودید باید دیتابیسی شبیه به عکس زیر داشته باشید با مشخصات دستگاه خودتون و می بینید که به صورت تکراری هم دستگاه ها ذحیره شده در پست بعدی با قرار دادن یک شرط سعی میکنیم از ذخیره داده های تکراری یک دستگاه جلو گیری کنیم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 4 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 4 شهریور، ۱۳۹۵ خوب در این پست میایم کد های شرطی و مقایسه رو در دیتابیس اجرا میکنیم میگیم دستگاهی که به دیتابیس اطلاعات ارسال کرده چک کن ببین سریال دستگاه در دیتابیس هست یا نه اگر نیست به عنوان دستگاه جدید همه مشخصات رو بریز تو دیتابیس اگر هست مقادیر آخرین data و time رو به ما برگردون در بیسیک 4 اندروید که به کاربر نشون بدیم و بگیم "" عزیز دل برادر به برنامه خوش اومدی آخرین اری که اومدی فلان تاریخ و فلان ساعت بوده آفرین شیطون"" کد های php رو پایین میفرستم و قسمت برگردوندن مقادیر رو به برنامه بیسیک 4 نتونستم اجرا کنم و کار با کتابخونه استاد شاهدی رو خوب بلد نیستم از عزیزانی که در این زمینه اطلاعاتی دارند خواهش میکنم کد های برگردون دو مقار رو به کد های زیر اضافه کنند خطوط 47 تا 50 کد زیر <?php //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ //مشخصات دیتابی درون هاست///////////////////////////////////////////// $servername = "localhost"; $username = "tططططططط"; $password = "طططططط"; $dbname = "ططططط"; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ // داده های ارسال از طرف بیسیک 4 اندروید ///////////////////////// $date = $_POST['date']; $time = $_POST['time']; $appname = $_POST['appname']; $package_name = $_POST['package_name']; $app_ver = $_POST['app_ver']; $store_seller = $_POST['store_seller']; $phone_manufacturer = $_POST['phone_manufacturer']; $phone_model = $_POST['phone_model']; $phone_product = $_POST['phone_product']; $phone_id = $_POST['phone_id']; $phone_sdkversion = $_POST['phone_sdkversion']; $version_android = $_POST['version_android']; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ // Create connection $conn = new mysqli($servername, $username, $password, $dbname); //برای تشخیص حروف فارسی در دیتابیس آنلاین این گزینه رو اضافه میکنیم mysqli_set_charset($conn,"utf8"); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; //اینجا میایم کنترل میکنیم اگر دستگاه شماره سریالش تکراری بود // مقدار تاریخ وساعت قدیمی که آخرین اتصالش بوده رو به بیسیک برگردون // و بعد // تاریخ و ساعت جدید رو جایگزین کنترل //در صورتی که شماره سریال تکراری نبود یعنی دستگاه جدید هست و بیا همه مشخصات رو در دیتابیس ثبت کن ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $sql = "SELECT * FROM app_information WHERE phone_id = '$phone_id'"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "این دستگاه از قبل نصب شده است"; // اینجا باید مقادیر تاریخ قدیمی و زمان قدیمی رو برگردونیم به بیسیک 4 اندروید // که محاسبه کنیم // و به کار بر بگیم به برنامه خوش اومدی و آخرین بازدید شما مثلا 5 روز پیش بوده است // } else { $sql = "INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer,phone_model,phone_product,phone_id,phone_sdkversion,version_android) VALUES ('$date','$time','$appname','$package_name','$app_ver','$store_seller','$phone_manufacturer','$phone_model','$phone_Product','$phone_id','$phone_sdkversion','$version_android')"; if ($conn->query($sql) === TRUE) { echo "دستگاه جدید به دیتابیس افزوده شد"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } } $conn->close(); ?> لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
shahab.es 5,429 ارسال شده در 4 شهریور، ۱۳۹۵ اشتراک گذاری ارسال شده در 4 شهریور، ۱۳۹۵ ارسطو جان <?php /** * Created by PhpStorm. * User: shahab * Date: 8/25/2016 * Time: 2:10 AM */ //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ //مشخصات دیتابی درون هاست///////////////////////////////////////////// $servername = "localhost"; $username = "tططططططط"; $password = "طططططط"; $dbname = "ططططط"; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ // داده های ارسال از طرف بیسیک 4 اندروید ///////////////////////// $date = $_POST['date']; $time = $_POST['time']; $appname = $_POST['appname']; $package_name = $_POST['package_name']; $app_ver = $_POST['app_ver']; $store_seller = $_POST['store_seller']; $phone_manufacturer = $_POST['phone_manufacturer']; $phone_model = $_POST['phone_model']; $phone_product = $_POST['phone_product']; $phone_id = $_POST['phone_id']; $phone_sdkversion = $_POST['phone_sdkversion']; $version_android = $_POST['version_android']; //♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥ // Create connection $conn = new mysqli($servername, $username, $password, $dbname); //برای تشخیص حروف فارسی در دیتابیس آنلاین این گزینه رو اضافه میکنیم mysqli_set_charset($conn,"utf8"); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; //اینجا میایم کنترل میکنیم اگر دستگاه شماره سریالش تکراری بود // مقدار تاریخ وساعت قدیمی که آخرین اتصالش بوده رو به بیسیک برگردون // و بعد // تاریخ و ساعت جدید رو جایگزین کنترل //در صورتی که شماره سریال تکراری نبود یعنی دستگاه جدید هست و بیا همه مشخصات رو در دیتابیس ثبت کن ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $sql = "SELECT * FROM app_information WHERE phone_id = '$phone_id'"; $result = $conn->query($sql); if ($result->num_rows > 0) { // echo "این دستگاه از قبل نصب شده است"; // اینجا باید مقادیر تاریخ قدیمی و زمان قدیمی رو برگردونیم به بیسیک 4 اندروید // که محاسبه کنیم // و به کار بر بگیم به برنامه خوش اومدی و آخرین بازدید شما مثلا 5 روز پیش بوده است // $myResult = $conn->query("SELECT * FROM app_information WHERE phone_id = '$phone_id' ORDER BY id DESC LIMIT 1")->fetch_assoc(); echo $myResult["date"]. "#" .$myResult["time"]; } else { $sql = "INSERT INTO app_information (date,time,appname,package_name,app_ver,store_seller,phone_manufacturer,phone_model,phone_product,phone_id,phone_sdkversion,version_android) VALUES ('$date','$time','$appname','$package_name','$app_ver','$store_seller','$phone_manufacturer','$phone_model','$phone_Product','$phone_id','$phone_sdkversion','$version_android')"; if ($conn->query($sql) === TRUE) { echo "دستگاه جدید به دیتابیس افزوده شد"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } } $conn->close(); ?> $myResult = $conn->query("SELECT * FROM app_information WHERE phone_id = '$phone_id' ORDER BY id DESC LIMIT 1")->fetch_assoc(); echo $myResult["date"]. "#" .$myResult["time"]; این دو خط میاد و اخرین ردیف ثبت شده بر اساس ای دی رو برای یه شماره سریال خاص ، میگیره و میتونی اطلاعاتش رو بگیری بررسی کن ، موردی بود بگو لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 4 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 4 شهریور، ۱۳۹۵ $myResult = $conn->query("SELECT * FROM app_information WHERE phone_id = '$phone_id' ORDER BY id DESC LIMIT 1")->fetch_assoc(); echo $myResult["date"]. "#" .$myResult["time"]; این دو خط میاد و اخرین ردیف ثبت شده بر اساس ای دی رو برای یه شماره سریال خاص ، میگیره و میتونی اطلاعاتش رو بگیری بررسی کن ، موردی بود بگو استاد اسکندری عزیز کد هایی که راهنمایی فرمودید به پروژه اضافه شد در هاست هیج خطایی در یافت نمیکنم و همه چیز مرتب هست اما مقادیر به برنامه بر نمیگرده و یک خطا در بیسیک در قسمت log به ما نشون میده که مربوط به "نخ ها و یا رشته ها میشه "ساب های بیسیک رو ضمیمه میکنم بررسی بفرمایید و منتظر راهنمایی شما هستمبا تشکر Sub aria_DoInBackground(Params() As Object) As Object Log("11111111111111 aria_DoInBackground 1♥♥♥♥") Try Log("22222222222 Try ♥♥♥") Dim result As String = dlr.Get(Params(0)).POST(Params(1)).String Dim str() As String = Regex.Split("#",result) Msgbox(result,"") mydate=str(0 ) mytime=str(1) myappname=str(2) mypackage_name=str(3) myapp_ver=str(4) mystore_seller=str(5) myphone_manufacturer=str(6) myphone_model=str(7 ) myphone_product=str(8) myphone_id=str(9) myphone_sdkversion=str(10) myversion_android=str(11) Return "done" Catch Log("3333333333 Catch ♥♥♥") Log(LastException) Return "error" End Try End Sub Sub aria_OnPostExecute(Result As Object) Log("44444444 aria_OnPostExecute ♥♥♥") Log(Result) End Sub Sub Button1_Click '////////////////////////////////////////////////////////////////////////////////////////// aria.Initialize("aria") dlr.Initialize(aria) If dlr.IsConnected Then aria.Run(Array As String("http://xxxxxxxx/xxxxxxx/information8.php","date="&date&"&time="&time&"&appname="&appname&"&package_name="&package_name&"&app_ver="&app_ver&"&store_seller="&store_seller&"&phone_manufacturer="&phone_manufacturer&"&phone_model="&phone_model&"&phone_product="&phone_product&"&phone_id="&phone_id&"&phone_sdkversion="&phone_sdkversion&"&version_android="&version_android)) Else ToastMessageShow("disconnected",False) End If '////////////////////////////////////////////////////////////////////////////////////////////// End Sub این هم وقتی دکمه روکلیک میکنیم که برنامه اطلاعات رو بفرسته به هاست و جواب بگیره در قسمت لوگ نمایش داده میشه AriaAsynkTask Error : null 11111111111111 aria_DoInBackground 1♥♥♥ 22222222222 Try ♥♥♥ 3333333333 Catch ♥♥♥ (RuntimeException) java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 44444444 aria_OnPostExecute ♥♥♥ error خط اول هم که نوشته AriaAsynkTask Error : null خطای قرمز رنگ هست با تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 4 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 4 شهریور، ۱۳۹۵ خوب به جا های خوب برنامه نزدیک میشیم///////////////////هدفمون اینه که بیایم و به کاربر یه همچین مسیج باکسی رو نمایش بدیم خوب برای این کار دیتابیس یه ستون کم داشت که تعداد اتصال دستگاه به اینترنت و باز شدن دستگاه رو بهش بدیم تا برامون برگردونهو هر بار هم که به اینترنت متصل میشه یکی بهش اضافه کنه برای این کار (( براساس فرض اینکه کار با دیتابیس و هاست آنلاین رو بلد هستید )) باید یک ستون به دیتابیس اضافه کنید و مقدار int یا عددی بهش بدید اسم ستون جدید رو use_counters قرار میدیم یعنی دیتابیس آنلاین شما به صورت زیر خواهد شد با 14 ستون http://up.vbiran.ir/uploads/41121147213584113359_دیتابیس4.png لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 5 شهریور، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 5 شهریور، ۱۳۹۵ برای دیدن سورس و کد ها و آموزش کامل به لینک زیر مراجعه کنید http://answercenter.ir/topic/15906-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B3%D8%AA%DA%AF%D8%A7%D9%87-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86/ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.