کلیدستان

نسخه‌ی کامل: مشکل در صفحه ورود با دیتابیس mysql (برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام من یک دیتابیس mysql دارم با  php هم کنترل میکنم

php مشکلی نداره..

ولی در فرم ورود هم مشکلی نیست وقتی نام کاربری و پسورد رو میفرستم. تایدش هم میاد که پسورد درست است ولی اون پیامی که میاد رو نمی تونم
با استفاده با دستور if نمی تونم کنترلش کنم توجه کنید که با دستور POST میفرستم و جوابی که دریافت می کنم اینه(تایید شد)
کد php

کد پی‌اچ‌پی:

<?php
$con
=mysql_connect("localhost","root","passworld");
mysql_select_db("Database");
if (!
$con){
 
    die("به دلیل مشکل زیر، اتصال برقرار نشد : " mysql_error());
}

$result mysql_query("SELECT *
FROM `usernewss`
WHERE `id` LIKE '
$_POST[username]'
AND `passworld` LIKE '
$_POST[passworld]'
LIMIT 0 , 30"
,$con);
while(
$row mysql_fetch_array($result)){
echo
"تایید شد";
}
mysql_close($con);
?>

و با page_output هم دریافتش میکنم
اینگونه کنترل میکنم

کد پی‌اچ‌پی:
if(page_output.equals("تایید شد"))
 
              {
 
                Intent i =new Intent(MainActivity.this,HomeActivity.class);
startActivity(i);
 
              }
 
              else
 
              {
 
                  Toast.makeText(getApplicationContext(), page_outputToast.LENGTH_LONG).show();
 
            

               


بدین صورت else رو میده و Toast میده تایید شد ... Angry Angry Angry Angry

لطفا کمک کنید..
(۱۳۹۵/۰۳/۱۰, ۰۹:۳۹ ب.ظ)kingtaha نوشته: [ -> ]با سلام من یک دیتابیس mysql دارم با  php هم کنترل میکنم

php مشکلی نداره..

ولی در فرم ورود هم مشکلی نیست وقتی نام کاربری و پسورد رو میفرستم. تایدش هم میاد که پسورد درست است ولی اون پیامی که میاد رو نمی تونم
با استفاده با دستور if نمی تونم کنترلش کنم توجه کنید که با دستور POST میفرستم و جوابی که دریافت می کنم اینه(تایید شد)
کد php
کد پی‌اچ‌پی:

<?php
$con
=mysql_connect("localhost","root","passworld");
mysql_select_db("Database");
if (!
$con){
 
    die("به دلیل مشکل زیر، اتصال برقرار نشد : " mysql_error());
}

$result mysql_query("SELECT *
FROM `usernewss`
WHERE `id` LIKE '
$_POST[username]'
AND `passworld` LIKE '
$_POST[passworld]'
LIMIT 0 , 30"
,$con);
while(
$row mysql_fetch_array($result)){
echo
"تایید شد";
}
mysql_close($con);
?>
و با page_output هم دریافتش میکنم
اینگونه کنترل میکنم
کد پی‌اچ‌پی:
if(page_output.equals("تایید شد"))
 
              {
 
                Intent i =new Intent(MainActivity.this,HomeActivity.class);
startActivity(i);
 
              }
 
              else
 
              {
 
                  Toast.makeText(getApplicationContext(), page_outputToast.LENGTH_LONG).show();
 
            

               


بدین صورت else رو میده و Toast میده تایید شد ... Angry Angry Angry Angry

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

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

یعنی چی؟
یعنی بجای اینکه شما متن استاتیک رو از سمت سرور بفرستید("تایید شد") رو .کافیه یه مقدار عددی 1  بفرستید...و توی متغییر مثلا result ذخیره کنید .

حالا بیاید سمت گوشی براساس مقدار این متغییر حالت بندی کنید.


کد پی‌اچ‌پی:
if( result==1)
 
              {
 
                Intent i =new Intent(MainActivity.this,HomeActivity.class);
startActivity(i);
 
              }
 
              else
 
              {
 
                  Toast.makeText(getApplicationContext(),"تایید شد"
Toast.LENGTH_LONG).show(); 
این کارو هم کردم ولی فایده نداشت Sad Sad
شما مقداری که از سمت سرور میگیرید رو توی لوگ کت چاپ کنید یا TOAST کنید ببینید اصلا چه چیزی از سمت سرور برگشته.مطمئنا مشکل از مقداری هست که برمیگرده.قبل از دستور شرطی مقدار رو توی لوگ کت یا ...چاپ کنید.
ممکن بخاطر هاست رایگان باشه؟
سلام.
موارد زیر را اجرا کنید :

1- در صفحه php موجود در سرور، قبل از شروع کدها، هیچ خط خالی یا کاراکتر خالی وجود نداشته باشد (این موارد، گاهی نتایج نامطلوبی دارند). یعنی در فایل مورد نظر، اولین کاراکترها دقیقا برابر عبارت زیر (اولین بخش کد صفحه) باشند :

کد پی‌اچ‌پی:
<?php 


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

2- در بخشی از کدها که نتیجه پاسخ صفحه را چک می کنید، بعد از دریافت پاسخ صفحه، از روش trim برای حذف کاراکترهای فضای خالی (space) ابتدا و انتهای آن استفاده نمایید (کلید شماره 349). بعد از این مرحله، آنگاه نتیجه را به عنوان پاسخ صفحه، برای مقایسه به کار ببرید.

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

در ضمن، در صفحه php موجود در سرور، موارد امنیتی را رعایت کنید (ربطی به مشکل فوق ندارد و تنها از نظر امنیت) :
1- موارد امنیتی مربوط به دریافت توسط روش های POST و GET (در اصطلاح، clean کردن مقادیر دریافتی)
2- عدم به کار بردن مستقیم مقادیر دریافت شده توسط روش POST ، در query هایی که برای پایگاه داده اجرا می شوند (مثلا برای این مورد، کلید شماره 3335 را ببینید. به روش bind_param در آن کلید توجه نمایید)

Flower
خیلی ممنون از پاسختون Iran