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


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بخش ورود کاربران در اندروید (با PHP)

بخش ورود کاربران در اندروید (با PHP)

#1
سلام دوستان من برای برنامه ام یک login نوشتم، که شماره تماس، نام ، پسورد و آدرس user رو میخونه، چک میکنه زمانی که شماره تماس اون در سیستم وارد شده باشه میگه قبلا ثبت نام شده و اگه شماره تماس اون نباشه اونو ثبت نام میکنه و داخل دیتابیس واردش میکنه، کدهای مقایسه و شرطی php رو بصورت زیر نوشتم اما برنامه عمل نکرد:

کد پی‌اچ‌پی:
function signup(){
    
$connection connectToDataBase();

    
$user_phone $_REQUEST['user_phone'];
    
$user_pass $_REQUEST['user_pass'];
    
$user_name $_REQUEST['user_name'];
    
$user_address $_REQUEST['user_address'];
if((
$result mysqli_query($connection"SELECT * FROM `user` WHERE `user_phone` LIKE '%" $user_phone "%'")) != null){
    echo 
json_encode("EXIST");
    
//echo json_encode($result);
}else{
    
$result mysqli_query($connection"INSERT INTO user VALUES (0, '$user_name', '$user_pass', 0 , '$user_address', '$user_phone')");
    echo 
json_encode($result);
}

 

دستور شرطی رو درست نوشتم؟ اگه نه درستش چیه؟


 
پاسخ

بخش ورود کاربران در اندروید (با PHP)

#2
سلام.
من دو مورد به ذهنم میرسه.
1- اول اینکه چرا از LIKE استفاده کرده اید، در صورتی که شماره تلفن، یک پارامتر دقیق است :

کد پی‌اچ‌پی:
"SELECT * FROM `user` WHERE `user_phone` LIKE '%" $user_phone "%'" 


پس می توان علامت تساوی را به کار برد. مثال :

کد پی‌اچ‌پی:
"SELECT * FROM students WHERE mark=15" 

2- من خودم شرط مربوط به وجود اطلاعات در جدول را به صورت زیر کدنویسی نمی کنم (نمی دونم کدتون درسته یا نه، ولی روش من فرق داره) :

کد پی‌اچ‌پی:
if(($result mysqli_query($connection"SELECT * FROM `user` WHERE `user_phone` LIKE '%" $user_phone "%'")) != null){ 

من به جای کد بالا، ابتدا تعداد کل ردیف های برگشتی حاصل از query را به دست می آورم (کلید شماره 578) :

کد پی‌اچ‌پی:
<?php
$result 
mysql_query("SELECT * FROM table_name",$con);
$result_number_of_rows mysql_num_rows($result);
?>

بعد با if چک می کنم که مقدار متغیر result_number_of_rows اگر برابر صفر باشد، یعنی هیچ ردیفی برگشت داده نشده (هیچ اطلاعاتی با آن مشخصات نداریم).

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

بخش ورود کاربران در اندروید (با PHP)

#3
مرسی بابت راهنماییتون
من همین کار رو انجام دادم و فایل بصورت زیر تغییر کرد اما شرط اول من کار نمیکنه و فقط Insert میکنه حتی با شماره موبایل های یکسان!!!

کد پی‌اچ‌پی:
function signup(){
    
$connection connectToDataBase();

    
$user_phone $_REQUEST['user_phone'];
    
$user_pass $_REQUEST['user_pass'];
    
$user_name $_REQUEST['user_name'];
    
$user_address $_REQUEST['user_address'];

    
$result mysqli_query($connection"SELECT * FROM user WHERE user_phone = ".$user_phone."");
    
$result_number_of_rows mysql_num_rows($result);
if(
$result_number_of_rows  != ){
    echo 
json_encode("EXIST");
    
//echo json_encode($result);
    
mysqli_close($connection);
}else{
    
$resultIn mysqli_query($connection"INSERT INTO user VALUES (0, '$user_name', '$user_pass', 0 , '$user_address', '$user_phone')");
    echo 
json_encode($resultIn);
    
mysqli_close($connection);

پاسخ

بخش ورود کاربران در اندروید (با PHP)

#4
یه تشکر ویژه از ادمین که با کمک ایشون این مشکل بعد از چند روز حل شد 
مشکلی که کد من داشتم بخاطر دستور زیر بود

کد پی‌اچ‌پی:
$result_number_of_rows mysql_num_rows($result); 

دلیلشم اگه یه مقدار ریزتر بشیم خیلی واضحه، من در کدهام از mysqli_query استفاده کرده بودم به این صورت

کد پی‌اچ‌پی:
$result mysqli_query($connection"SELECT * FROM user WHERE user_phone = ".$user_phone.""); 

پس با اضافه کردن یک i به دستورم مشکلش برطرف شد:

کد پی‌اچ‌پی:
$result_number_of_rows mysqli_num_rows($result); 

و کد نهایی بصورت زیر تغییر کرد:

کد پی‌اچ‌پی:
function signup(){
    
$connection connectToDataBase();

    
$user_phone $_REQUEST['user_phone'];
    
$user_pass $_REQUEST['user_pass'];
    
$user_name $_REQUEST['user_name'];
    
$user_address $_REQUEST['user_address'];

    
$result mysqli_query($connection,"SELECT * FROM user WHERE user_phone = '$user_phone'");
    
$result_number_of_rows mysqli_num_rows($result);
    if(
$result_number_of_rows  == ){
    
mysqli_query($connection"INSERT INTO user VALUES (0, '$user_name', '$user_pass', 0 , '$user_address', '$user_phone')");
    echo 
"INSERT";
    
mysqli_close($connection);
}

پاسخ
 سپاس شده توسط admin ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


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