عدم درج رکورد جدید در بانک اطلاعاتی

سوال

با اهداء سلام به همه و تشکر از آموزش ها و پاسخ گویی مدیر محترم سایت

من در بحث بانک اطلاعاتی و هاست مشکل دارم. کدهای B4A و کدهای PHP رو طبق راهنمایی های سایت و دیگر منابع اطلاعاتی به درستی انجام دادم و بانک اطلاعاتی به صورت استفاده در مرورگر به راحتی کار می کنه و رکورد جدید به بانک اضافه می شه.

اما در B4A و با استفاده از متدهای PostString و نیز Download کار درست پیش نمی رود. متد GetString هم یک صفحه بلند مخلوطی از کدهای html و جاوا و … رو می یاره.

کل کد ها بدون خطا اجرا می شوند اما رکوردی به بانک اضافه نمی شود.

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

کدهای b4a

#Region  Project Attributes 
	#ApplicationLabel: DataBase
	#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
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim l,k As String
	Dim job1,job4 As HttpJob
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Private Button1 As Button
	Private EditText1 As EditText
	Private EditText2 As EditText
	Private Button2 As Button

	Private Button3 As Button
	Private WebView1 As WebView
	Private Label3 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("Layout1")
	
	job1.Initialize("job1",Me)	
	job4.Initialize("job4",Me)
	
	l="http://yolancomonoro.gigfa.com/Register.php"
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub Button1_Click
	Dim s As String
	s ="username="&EditText1.Text&"&password="&EditText2.Text
	job1.PostString(l,s)
End Sub
	
Sub Jobdone (job As HttpJob)
	If job.Success = True Then
		ToastMessageShow(job.JobName,True)		
		ToastMessageShow("عملیات با موفقیت انجام شد." ,True)
		Label3.Text=job4.GetString
	Else
		ToastMessageShow(" خطا در برقراری اتصال ",False)		
		ToastMessageShow(job.ErrorMessage,True)
	End If
	job.Release
End Sub

Sub Button3_Click
    Dim job4 As HttpJob
    job4.Initialize("job4", Me)
    job4.download2("http://yolancomonoro.gigfa.com/Register.php", Array As String ("username", "cow", "password", "Bee"))	
End Sub

Sub Button2_Click
    WebView1.LoadUrl(l&"?"&s)
End Sub

 

در حال بررسی 0
, , 2018-09-05T09:44:33+03:30 3 پاسخ کاربر تازه 0

پاسخ ها ( 3 )

    0
    2018-09-05T09:59:46+03:30
    <?php
    $username=$_GET['username'];
    $password=$_GET['password'];
    
    $dbhost = "sql301.gigfa.com";
    $dbuser = "gigfa_22643022";
    $dbpass = "***";
    
    //$conn = new mysqli ($dbhost,$dbuser,$dbpass);
    $conn = mysqli_connect ($dbhost,$dbuser,$dbpass);
    
    if ($conn){
    	echo "server Connect...  ";
    }
    else{
     echo "server are not connect  ";
    }
    echo "<br>";
    
    $dbname = "gigfa_22643022_oscar";
    
    $mm = mysqli_select_db ($conn,$dbname);
          mysqli_set_charset($conn,'utf8');
    
    if ($mm){
    	echo "db connect... ";
    }else{
    	echo "db not connect ";
    
    }
    echo "<br>";
    
    if($conn)
    {
    	$result = "INSERT INTO mashhad (title,text) VALUES ('$username','$password')";
    	
    	if(mysqli_query($conn,$result))
    	{
    		echo   "table connect... ";
    		echo "<br>";
    		print ("Username is $username and password is $password OK!");
    	}
    	else
    	{
    		echo "table not connect ";
    	}
    }
    ?>

    این هم کد اسکریپ سمت سرور می باشد.

    0
    2018-09-06T16:01:18+03:30

    سلام

    کد زیر را تست کنید

    Sub Globals
    	Private Button1 As Button
    	Private Button2 As Button
    	Private Button3 As Button
    	
    	Private EditText1 As EditText
    	Private EditText2 As EditText
    	
    	Private Label3 As Label
    	
    	Dim l,k As String
    	Dim job1,job4 As HttpJob
    End Sub
    
    Sub Activity_Create(FirstTime As Boolean)
    	Activity.LoadLayout("Layout1")
    	job1.Initialize("job1",Me)	
    	job4.Initialize("job4",Me)
    End Sub
    
    
    Sub Jobdone (job As HttpJob)
    	If job.Success = True Then
    		Msgbox(job.GetString,"Success")
    	Else
    		ToastMessageShow("خطا در برقراری اتصال" , False)
    	End If
    End Sub
    
    Sub Button1_Click
    	Dim send As String
    	send = "username="&EditText1.Text&"&password="&EditText1.Text
    	ht.PostString("http://yolancomonoro.gigfa.com/Register.php",send)
    End Sub

    بیسیک در دسترس ندارم که تست کنم

    0
    2018-09-08T14:09:00+03:30
    این پاسخ ویرایش شد.

    نه متاسفانه این کد هم کار نمی کنه؟

    احتمالا در مانیفست نیاز به دسترسی خاصی نداره. چون اگر دسترسی یا کد خاصی در مانیفست بخواد من اون رو بلد نیستم. اگر کسی می دونه لطفا راهنمایی بفرماد.

    'This code will be applied to the manifest file during compilation.
    'You do not need to modify it in most cases.
    'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136
    AddManifestText(
    <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="26"/>
    <supports-screens android:largeScreens="true" 
        android:normalScreens="true" 
        android:smallScreens="true" 
        android:anyDensity="true"/>)
    SetApplicationAttribute(android:icon, "@drawable/icon")
    SetApplicationAttribute(android:label, "$LABEL$")
    
    'CreateResourceFromFile(Macro, Themes.DarkTheme)
    'End of default text.
    

     

      0
      2018-09-10T06:45:07+03:30

      خیر، نیازی به اضافه کردن دسترسی نداره

      ولی اگر علاقه مند به اضافه کردن دسترسی به اینترنت هستید، از یکی از دو کد زیر استفاده کنید(کدها در مانیفست اضافه شود):

      <uses-permission android:name="android.permission.INTERNET"/>
      AddPermission (android.permission.INTERNET)

      اگر جواب نداد از هاست غیر رایگان استفاده کنید.

      موفق باشید.

ارسال یک پاسخ