|
|
|
ต้องการสร้าง PHP เป็น Webserver ในการ Register (สมัครสมาชิก) แล้วใช้ ASP.net เป็นตัวเรียกใช้งาน |
|
|
|
|
|
|
|
สืบเนื่องจาก
บทความนี้
https://www.thaicreate.com/community/asp-net-call-php-web-service.html
ในบทความแสดงการใช้ASP.netเป็นตัวclient แล้วให้PHPที่เป็นฝั่งWebserverประมวลผลแสดงข้อมูลออกมา
แต่ผมต้องการจะดัดแปลงเล็กน้อยโดย ให้PHPสามารถสมัครสมาชิกได้และASP.net เป็นตัวกรอกข้อมูลเพื่อส่งไปหาฝั่งPHPอะครับ
อันนี้โค้ดPHPที่ผมทำ
PHP
<?php
require_once("lib/nusoap.php");
$server = new soap_server();//Create a new soap server.
$namespace = "http://127.0.0.1/ProjWS/register.php";
$server->configureWSDL("WSProjRegister",$namespace);//Configure WSDL
$varlist=array(
'column1'=>"xsd:string",
'column2'=>"xsd:string",
'column3'=>"xsd:string",
'column4'=>"xsd:string",
'column5'=>"xsd:string"
);
$server->register('Register',$varlist, array('return' => 'xsd:string'));
function Register($user,$pass,$first,$last,$agex)
{
$objConnect = mysql_connect("127.0.0.1","root","12345") or die(mysql_error());
mysql_query("SET NAMES UTF8");
$objDB = mysql_select_db("ProjWebService");
$strSQL = "INSERT INTO student (Username,Password,Firstname,Lastname,Age) VALUES($user,$pass,$first,$last,$agex)";
$objQuery = mysql_query($strSQL);
if($objQuery)
{
return "Register Completed!";
}
else
{
return "Register interrupt! because ".mysql_error();
}
mysql_close($objConnect);
}
// Get our posted data if the service is being consumed
// otherwise leave this data blank.
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
// pass our posted data (or nothing) to the soap service
$server->service($POST_DATA);
exit();
?>
และนี่โค้ดของฝั่ง ASP.netครับ
ASP.NET
public partial class register : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
protected void btnRegister_Click(object sender, EventArgs e)
{
WSProjRegister reg = new WSProjRegister();
string Usernamex = txtUsernamex.Text;
string Passwordx = txtPasswordx.Text;
string Firstname = txtFirstname.Text;
string Lastname = txtLastname.Text;
string Age = txtAge.Text;
string result = reg.Register(Usernamex, Passwordx, Firstname, Lastname, Age);
Response.Write(result);
}
}
และนี่คือdatabaseผมครับ
แต่มันติดปัญหาที่ว่าเวลากรอกที่ช่องusernameในสมัคร ว่า test มันก้จะขึ้นerror ว่า
unknown column 'test' in 'field list'
ถ้ากรอกว่า tester ก็จะerrorว่า unknown column 'tester' in 'field list'
คือข้อมูลที่ผมกรอกไปมันเป็นชื่อ fieldในdatabaseหมดเลยอะครับทั้งๆที่ผมกำหนดชื่อfieldในsql queryไปแล้ว
Tag : PHP, MySQL, CakePHP, Web (ASP.NET)
|
|
|
|
|
|
Date :
2013-10-02 23:39:56 |
By :
Spatan |
View :
733 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นายๆ เราหา class ชื่อ soap_server ไม่เจอ
เจอแต่ http://php.net/manual/en/class.soapserver.php น่ะ
และเราก็สงสัยว่ามันน่าจะเกิดจาก
Code (PHP)
$varlist=array(
'column1'=>"xsd:string",
'column2'=>"xsd:string",
'column3'=>"xsd:string",
'column4'=>"xsd:string",
'column5'=>"xsd:string"
);
มันน่าจะหมายถึงค่าที่จะ return มากกว่า ค่า parameter
เพราะเอามา insert ไม่น่าจะต้องเอามา mapping กัน
ปล. มือใหม่ php หัดเดา
|
|
|
|
|
Date :
2013-10-03 08:37:44 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|