این موضوع را با پشتیبانی هاستتون در میان بذارید شاید مشکل از هاست باشد . خطوط ارور گرفته رو هم بررسی کنید .
Printable View
این موضوع را با پشتیبانی هاستتون در میان بذارید شاید مشکل از هاست باشد . خطوط ارور گرفته رو هم بررسی کنید .
با تشکر از دوست عزیزمان که زحمت کشیدند و این مطالب را در اینجا قرار دادن
من دو تا سوال داشتم
یک اینکه من هم مثل بعضی از دستان توی حروف فارسی مشکل دارم ، فقط در هنگام نمایش ، در دیتابیس درست ذخیره میشه ، تمام کارهای بالا را هم انجام دادم
دوم اینکه روشی که شما گفتید برای امنیتش که کار باید کرد که اطلاعات به صورت رمز نگاری رد و بدل بشه
باز هم ممنون
دوست عزیز در مورد امنیت استفاده از این روش هم بحث کنید
harani عزیز واقعا لطف کردین که این آموزش رو گزاشتین.
من فعلا قصد استفاده از وب سرویس رو ندارم ولی از اونجا که کمی php بلدم، فقط می خوام بدونم وقتی که از این کد استفاده میشه:مقدار متغیر action به صورت post ارسال میشه دیگه؟کد HTML:HttpPost post = new HttpPost("http://192.168.2.222/telBook/?action=insert");
یه توضیح هم درباره مشکلات حروف فارسی در php بدم و روش حل مشکلاتش :
موارد زیرطبق تجربه شخصی بوده و امتحان شدس:
برای استفاده از زبان فارسی در صفحات وب باید به نحوه ذخیره و بازیابی اطلاعات توجه کنیم.
1_ ذخیره صفحات با رمزنگاری Encoding UTF-8 :
برای اینکه صفحات با محتوای فارسی به درستی ذخیره بشن باید با انکدینگ یو تی اف 8 ذخیره بشن. برای تعین انکدینگ صفحه ، قبل از ذخیره صفحه باید اون رو انتخاب کنیم که توی شکل نحوه تعیین انکدینگ در ویرایشگر phpDesigner رو نشون دادم:
ضمیمه 123276
2_تعیین نحوه خواندن اطلاعات صفحه برای مرورگر:
برای اینکه صفحات فارسی بدرستی در مرورگر قابل مشاهده باشن باید از تگ <meta> درون تگ <head> به صورت زیر استفاده کنیم:
3_ ذخیره و بازیابی اطلاعات فارسی از بانک اطلاعاتی:کد HTML:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
موقع ساخت جدول برای ذخیره اطلاعات فارسی در بانک اطلاعاتی می تونیم از رمزنگاری utf8_unicode_ci یا utf8_persian_ci برای کالکشن هر جدول و هر ستون از جدول استفاده کنیم.
برای بازیابی اطلاعات هم قبل از زدن کوئری و بعد از اتصال به بانک از دو قطعه کد زیر جهت تعین رمزنگاری استفاده کنید:البته اگه از دستورات mysqli استفاده می کنید i رو هم خودتون اضافه کنید.
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
سلام
دوستان فرق بین api و وب سرویس چیه ؟؟؟
از کلاس volley برای وب سرویس استفاده کنید مزیتهای بیشتری داره و خود گوگل معرفیش کرده
api یا Application Programming Interface در واقع رابط پیاده سازی توسط نرم افزار است که به دیگر برنامه ها اجازه میدهد با آن ارتباط برقرار کند .
در واقع وب سرویس نوعی api است که از http استفاده میکند (البته در برخی مانند soap از روشهای دیگری برای ارتباط مانند SMTP استفاده میکنند )
سلام
ممنون از آموزش خوبتون
ببخشید کی طریقه آپلود کردن فایل رو میگید ؟
دوست عزیز harani
با تشکر از راهنمایی ها و آموزش های خوبتون :تشویق::تشویق::تشویق::تشویق:: شویق:
در صورتی که براتون مقدوره به اموزشاتون ادامه بدین تا همه بتونیم از اطلاعات شما استفاده کنیم
سلام دوست عزیز
یه سئوال دارم این نرم افزارهای وایبر واتس اپ از وب سرویس استفاده می کنن یا سوکت؟
سلام دوستان
ممنون بابت آموزش های خوبتون
فقط مشکل Forbidden برای من حل نشده
حتی پروژه رو بردم داخل www باز خطای Forbidden میده
عرض شود خدمت حضرت عالی که اولاً شما فایلای وب تون رو باید داخل یک فولدر (با نام پروژتون) بکنید و سپس در www کپی کنید اینکار را کردید ؟
سپس wamp رو بالا بیارین لوکال هاست رو تو url بنویسید سپس پروژتون رو انتخاب کنید .
پس از انتخاب به من بگید در قسمت url اسم پروژتون فقط میاد یا میزنه localhost/project name ? اگر اسم پروژتون فقط میاد شما یک / + localhost (یا ip تون) رو قبل از آن بیندازید .
سلام دوستان. ببخشید من توی بخش:
من چجوری باید Thread کنم؟نقل قول:
حال برنامه را اجرا کنید برنامه کرش کرد ;-) چون permission اینترنت ندادی اگه دوباره کرش کرد بایستی کدهای نوشته شده ی بالا را در یک Thraed بیندازید چون thread network متفاوت است با thread برنامه . در نهایت باید در قسمت log ها به رنگ سبز (info) کد 200 را با tagStatus Code ببینیدخب این جلسه هم تموم شد . جلسه ی بعد نحو ه ی گرفتن داده های وب ایجاد شده را در اندروید را میگم (که من در textview میریزم) به امید استقبال شما دوستان .
php رو بلدم کاملا اما توی اندروید چون 1 ماه دارم کار میکنم حرفه ای نیستم.
لطفا کمکم کنید کارم گیره.
البته من کلاسم رو اینطوری public class MainActivity extends Thread نوشتم اما به onCreate گیر میده
خیلی ممنون میشم کمکم کنید
با تشکر از Harani عزیز بابت آموزش خوبشون
به صورت پیش فرض تمامی کد هایی که شما داخل اکتیویتی ها قرار میدید بر روی Main thread اجرا میشن، به main thread بعضی مواقع UI Thread هم می گویند یعنی کار اون ساخت رابط کاربری اکتیویتی شما است، یعنی هرچی شما کد بیشتری داخل اکتیویتی اجرا کنید یا مثلا یک خط کد اجرا شدنش طول بکشد ( مثل گرفتن اطلاعات از دیتابیس ) زمان ساخته شدن رابط کاربری یا همان UI افزایش می یابد.
حال به دلیل اینکه وصل شدن به اینترنت و گرفتن اطلاعات از آن ممکنه بعضی اوقات بسته به سرعت کاکنشن کم و زیاد شود، اندروید به شما اجازه اجرا کردن کد های مربوط به اتصال به اینترنت را نمی دهد به همین دلیل شما با خطا مواجه میشوید.
در کل شما باید همیشه کارهایی که ربطی به UI ـتون ندارند رو در یک Thread جداگانه از Main Thread اجرا کنید تا از تاخیر در کارکرد نرم افزار جلوگیری شود.
حال برای ساخت یک Thread جدا گانه میتوانید از کد زیر استفاده کنید :
new Thread() {
@Override
public void run() {
// کدهای خود را در این قسمت قرار دهید.
}
}.start();
سلام دوستان ،
کسی هست با وب سرویس آقای کمالان کار کرده باشه منو راهنمایی کنه ؟
سابمیت میکنم "Error happened. Please try it later :(" بهم میده
log:
11-16 18:17:14.622: W/System.err(26145): at java.lang.Thread.run(Thread.java:841)
11-16 18:17:47.814: D/FragmentForm(26145): Response code is: 200
11-16 18:17:47.844: D/Server response:(26145): -1<br />
11-16 18:17:47.844: D/FragmentForm(26145): SendFormTask finished its task.
هر جوری تست میکنم نمیشه ، یسری ام 404 میداد
رفع شد پورت MySQL رو تنظیم نکرده بودم :)
سلام خسته نباشید ، این فن بروسلی تونو :لبخند: زدیم رو این وب سرویس سایت کمالان ولی درست نشد ، راهنمایی میکنید چیکار کنم :لبخندساده:؟
ممنون
دوستان کمک کنید لطفا ، خیلی وقته درگیره فارسی کردنشم ... کسی نیست مارو یاری کنه :ناراحت:
اولاً مطمئن شوید که unicode محیط idea شما utf8 است یعنی مثلاً اگه از notepad++ است از قسمت encooding گزینه utf8 رو انتخاب کنید .
دوماً شما بایستی زمانی که دیتابیس را میسازید در قسمت callation مقدار utf خود را به utf8-general-ci تغییر دهید .
سوماً در قسمت php بایستی مقادیر زیر را درج کنید (پس از کانکشن)
ini_set('default_charset',"UTF-8");
mysqli_set_charset($con,'utf8');
header('Content-type: text/html; charset=UTF-8') ;
اگر این نکات را رعایت کنید نباید در خصوص فارسی نشان دادن مشکلی پیش اید .
از این پس سعی کنید از توابع mysqli استفاده کنید .
تو notepad++ روی utf8-with BOM تنظیم کردم رو utf8 جواب نمیده .
دیتابیسم رو رویutf8-general-ci تنظیم کردمmy sqli ام هستم بدین صورت :
public function __construct() {
// CONNECT TO THE DATABASE
$this->mysqli = new mysqli($this->DB_HOST, $this->DB_USER, $this->DB_PASS, $this->DB_NAME,"3306");
if (mysqli_connect_errno()) {
throw new Exception("Unable to connect to the database. Error number: " . $this->mysqli->connect_errno);
}
ini_set('default_charset',"UTF-8");
mysql_set_charset('utf8');
header('Content-type: text/html; charset=UTF-8');
}
ولی باز مشکلش حل نشد ، فارسی مشکل داره هنوز :((
رو utf-8 که میزارم کلا سیستم از کار میوفته
بفرمایید فایل
ممنون
فارسی از سمت وب ساپروت نمیشه یا کلاینت ؟؟ آیا به سرور مقدار فارسی ارسال میکنید ؟؟
من تو فایل class dbhandler متدهای utf8 نمی بینم :
class DBHandler {
public function __construct() {
// CONNECT TO THE DATABASE
$this->mysqli = new mysqli($this->DB_HOST, $this->DB_USER, $this->DB_PASS, $this->DB_NAME);
if (mysqli_connect_errno()) {
throw new Exception("Unable to connect to the database. Error number: " . $this->mysqli->connect_errno);
}
}
اگه واقعاً متدهای utf8 کارنمیکنن تو فورم php هم مطرح کنید .
من برای اطمینان و امنیت کار شما پروژه شما را پاک کردم خیالتان راحت .
باشه ولی من دغدغه ی کاری زیادی دارم . میتونم بپرسم وب سایتتون چیکار میکنه چی میدین و میفرستین ؟؟ بگید که من سر فرصت روش کار میکنم یه فایل php براتون درست میکنم مفرستم .
والا رو اندروید کار میکنم ، دارم device id و comment و زمان ارسال نظر و rate یا vote یا همون لایک رو میفرستم و همه اینارو نمایش میدم (دقیقا مثل نظرات و لایک و time زیر یه مطلب تو شبکه اجتماعی) ...، همین پروژه که دانلود کردین آماده ست همه اینکارارو انجام میده فقط مشکل فارسی داره ،،،،،
با اینکه سرتون حسابی شلوغه ولی اگه بتونین کمک کنید حل شه این مشکل کمک بزرگی کردیدن ....
با تشکر
خب اولی برای ارسال ار اندروبد به سرور به کار میره و باید ست بشه دومی بکارت نمیاد
برخی اوقات کاراکترهای فارسی به صورت کاراکتر در وب دیده میشه که مشکل نیستند .
شما خودت کمی سعی کنی میتونیش حل کنی به شرط آنکه سریع ناامید نشی .
خیلی وقته دنبالشم خودم که خیلی وقته پوستم در اومده نتونستم ، هر جا هم پرسیدیم همه اومدن پاسخ دادن ولی در نهایت اونام تسلیم شدن ،:ناراحت:
اولی کار نکردم باهاش چجوری باید ست کنم ، شمام نذاشته بودید فک کنم تو آموزشاتون :متفکر:
سلام بلاخره یه اتفاقی افتاد کدی که پایین میزارمو ست کردم و الان با browser دیتایی که میفرستم خیلی قشنگ بصورت فارسی در دیتابیس ذخیره میشه ، ولی هنوز یه مشکل بزرگ هست اندروید نمیتونه باهاش ارتباط برقرار کنه فک کنم بصورت byte باید دیتا بفرستم یا بگیرم با اندروید. یا اینکه charset uft-8 تنظیم کنم براش .... میتونید راهنمایی کنید چجوری انجامش بدم
ممنون
/* change character set to utf8 */
if (!$this->mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $this->mysqli->error);
} else {
printf("Current character set: %s\n", $this->mysqli->character_set_name());
}
دوستان پروژه ی جامع تری که نوشتم رو براتون میزارم :
https://barnamenevis.org/showthread.p...88%DB%8C%D8%AF
سلام.من از کدهای زیر استفاده کردم ولی هنوز مشکل نمایش فارسی رو دارم.تو دیتابیس درست ذحیره میشه.وقتی از اون دستور ست utf8 استفاده نکنم حروف فارسی به صورت علامت سوال دیده میشن.وقتی هم اون دستور رو میذارم حروف فارسی به صورت یه سری کاراکترهای انگلیسی نمایش داده میشن
<?php
$con = mysqli_connect("localhost","user","pass","dbName") ;if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error();}mysqli_set_charset($con,"U TF8");
$result = mysqli_query($con,"select * from daryaft_pardakht");
$output = array();$fetch_data = array(); while ($row = mysqli_fetch_array($result)){ $fetch_data['aid1'] = $row['aid1']; $fetch_data['aid2'] = $row['aid2']; $fetch_data['name1'] = $row['name1']; $fetch_data['name2'] = $row['name2']; $fetch_data['price'] = $row['price']; $output[] = $fetch_data;} echo json_encode($output); mysqli_close($con);
خروجی که با این کد میده
[{"aid1":"1103-3-3","aid2":"1101-1-1","name1":"\ufeb3\ufee0\ufef4\ufee2 \ufeaf\ufef3\ufeee\ufead\ufef1","name2":"\ufebb\uf ee8\ufeaa\ufeed\ufed5 1","price":"2500000"}]
باز هم درست نشد.همون نتیجه رو میده.این کدی که گفتید رو بعد از دستور mysqli_set_charset($con,"U TF8") گذاشتم
نمیدونم بیان این سوال اینجا درسته یا خیر
من میخوام بدونم غیز از JSON و HTML آیا میشه از سرویس خروجی های دیگ ای گرفت یا ن؟
اگ واضحتر بخوام بگم اینطوری میتونم بیان کنم ک دنبال روشی هستم ک سرعتش ب مراتب از گرفتن JSON بالاتر باشه
ببنید این حالت یونیکدی که است که برازر نشان میدهد در واقع داده های فارسی درست است و سمت کلاینت مشکلی در نمایش ندارد .
اگر منظورتون از سرعت بحث ارائه خدمات وب سرویس ربطی به جیسون یا soap بودن نداره با آنکه هر کدوم مزیت و معایب خودشون رو دارن . نحوه ی کدنویسی در وب نوع سرور خدمات دهنده سرعت اینترنت همگی اینها در سرعت ثاتیر دارن .
اگه ام دارین چتینگ راه میاندازین اونم سرور چت میخواد و ارتباط از طریق سوکت و ای پی .
نقل قول:
اگر منظورتون از سرعت بحث ارائه خدمات وب سرویس ربطی به جیسون یا soap بودن نداره با آنکه هر کدوم مزیت و معایب خودشون رو دارن . نحوه ی کدنویسی در وب نوع سرور خدمات دهنده سرعت اینترنت همگی اینها در سرعت ثاتیر دارن .
اگه ام دارین چتینگ راه میاندازین اونم سرور چت میخواد و ارتباط از طریق سوکت و ای پی .
من دارم ی دیتای وحشتناک زیاد رو در قالب json میگیرم و میخوام ایناها رو توی دیتابیس ذخیره کنم
منظورم از زیاد ی چیزی نزدیک ب 5000 و بیشتر هستش
حالا من دوتا سوال دارم
یکی اینک سریعترین روش برای دخیره سازی این حجم دیتا در یتابیس SQLite چیه؟
و دوم اینک آیا امکان داره ب علت تراکنش های بالا روی دیتابیس Sqlite این دیتابیس Lock بشه یا پاسخ نده یا کرش بکنه؟
5000 داده خیلی نیست اکثر برنامه های دیکشنری چیزی بیشتر از این عدد دارن و هیچی کرشی انجام نمیشه.
ببنید این بحث کد نویسی شماس . شما نبایستی همه ی 5000 داده رو یه جا نشون بدید حتما بایستی limit کنین یعنی داده ها رو 5 تا 5 تا یا 10 تا 10 تا و غیره نشون بدید .
آره حرفتون دسته، میدونم ک دیتا رو باید تکه تکه نمایش بدم
بحث نمایش دیتا نیست
من دیتا رو در قالب ی فایل JSON میگیرم و مشکلی هم ندارم اما گاها در زمانی ک میخوام این دیتا رو توی بانک ذخیره کنم با دو تا خطا مواجه میشم:
یا ای خطا رو میده
SQLiteDatabseLockedException: database is locked: , while compiling: PRAGMA journal_mode=TRUNCATE
و یا این خطا رو میده:
android.database.sqlite.SQLiteCantOpenDatabaseExce ption: unable to open database file (code 14): , while compiling: PRAGMA journal_mode
و من دقیقا نمیدونم علت این خطاها چیه و چرا اتفاق میوفته
من تا حالا چنین مشکلی پیدا نکرده بودم شما بایستی درستی کانکشن خود را بررسی کنید . یه نکته هم برای شما هم برای سایر دوستان برای داده ها با حجم بالا بهتر است از ormlite استفاده شود ن sqllite هم سرعت بالاتری داره حتی از خود sqlite حجم کمتری داره .
سلام.من خروجی رو از سایت گرفتم .ولی اجازه ایجاد jasonArray رو نمیده.میگه خروجی که داری فرمتش json نیست.
این هم خروجی
[{"aid1":"1101-1-1","aid2":"1102-1-1"}]
برنامه رو تریس کردم متوجه شدم که به اول رشته ] رو اضافه نمیکنه.ولی از طریق سایت خروجیش کاملا درسته.فعلا به اولش خودم یه ] اضافه کردم.این مشکل رو چجوری حلش کنم؟
من خودم بارها با این مشکل برخورد داشتم برای اینکه برنامه هنگام پارس کردن به مشکل میخوره شما مجبورین دستی خودتون چک کنین :
راههای زیادی ممکن است باشه یه راهش استفاده از کد زیر :
if (!jsonArrayResponse.startWith("[")){
jsonArrayResponse="["+jsonArrayResponse;
}
if (!jsonArrayResponse.endWith("]")){
jsonArrayResponse=jsonArrayResponse+"]";
}
با اجازه من کد زیر رو میذارم.از این کد استفاده کردم مشکلی نداشت
String StreamToString(InputStream in)
{
BufferedReader r = new BufferedReader(new InputStreamReader(in));
StringBuilder total = new StringBuilder();
String line;
try
{
while ((line = r.readLine()) != null) {
total.append(line);
}
return total.toString();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return "";
}
}
سلام
کسی ميتون. درمورد ارسال فایل به همراه چند فیلد متنی و عددی راهنمایی کنه
یعنی یک پست که انواع دادها را داشته باشد
اغلب سرچ کردم اینا را جدا جدا پست کردن یا حداقل فایل را به تنهایی پست کرده
چیزی که هست تو مثالها پارامترهای پست برای فایل و غیر فایل باهم در یک پست ست نکردن و باهم execut نکردن
ممنون میشم اگه دوستان نظرشون را بگن
با عرض سلام خدمت دوستان عزیز
اینم فایل php برای آپلود کردن فایلهاتون .
<?php
$target_path1 = "uploads/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path1 = $target_path1 . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_path1)) {
echo "The first file ". basename( $_FILES['uploaded_file']['name']).
" has been uploaded.";
} else{
echo "There was an error uploading the file, please try again!";
echo "filename: " . basename( $_FILES['uploaded_file']['name']);
echo "target_path: " .$target_path1;
}
?>
موفق و پیروز باشید در پناه حق . یاعلی