php将dnm文件存储在服务器,PHP文件在本地工作,但不在服务器上

我目前正在开发一个Windows Phone上的移动应用程序,它要求我向位于服务器上的PHP文件发送请求。PHP文件在本地工作,但不在服务器上

我遇到了一个问题,即请求在服务器上抛出一个错误,但不是当我更改代码来页面本地PHP文件时。任何想法为什么?

这里是我的请求代码:

string sendString = "";

sendString += "&lat=" + (App.Current as App).mapCenter.Latitude;

sendString += "&lng=" + (App.Current as App).mapCenter.Longitude;

sendString += "&address=" + (App.Current as App).locationAddress;

if (checkNumber(CountryCode.Text, AreaCode.Text, Number.Text))

{

sendString += "&phone=" + CountryCode.Text + "" + AreaCode.Text + "" + Number.Text;

}

else

{

MessageBox.Show("Phone number invalid");

}

if (checkEmail(email.Text))

{

sendString += "&email=" + email.Text;

}

else

{

MessageBox.Show("Invalid Email");

}

sendString += "device=WindowsPhone";

sendString += (bool)prefsms.IsChecked ? "&contactMethod=sms" : "&contactMethod=email";

ListPickerItem selectedItem = (ListPickerItem)ServiceType.SelectedItem; //Cast listpickeritem into String

string content = (string)selectedItem.Content;

sendString += "&serviceType=" + content;

sendString += "&version=2.0";

sendString += "&language=" + CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;

(App.Current as App).watcher.Stop();

sendData = sendString;

if ((checkNumber(CountryCode.Text, AreaCode.Text, Number.Text)) && (checkEmail(email.Text)))

{

//Send data to server

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost/test.php");

myRequest.Method = "POST";

myRequest.ContentType = "application/x-www-form-urlencoded";

myRequest.BeginGetRequestStream(new AsyncCallback(RequestCallBack), myRequest);

}

else

{

}

private void RequestCallBack(IAsyncResult asyncresult)

{

HttpWebRequest myRequest = asyncresult.AsyncState as HttpWebRequest;

Stream dataStream = myRequest.EndGetRequestStream(asyncresult);

//Avoid trashing procedure

this.Dispatcher.BeginInvoke(delegate()

{

StreamWriter writer = new StreamWriter(dataStream);

writer.Write(sendData);

writer.Flush();

writer.Close();

//Expect a response

myRequest.BeginGetResponse(new AsyncCallback(ResponseCallBack), myRequest);

});

}

private void ResponseCallBack(IAsyncResult asyncresult)

{

HttpWebRequest myRequest = asyncresult.AsyncState as HttpWebRequest;

HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(asyncresult);

// Avoid trashing the procedure

this.Dispatcher.BeginInvoke(delegate()

{

// Retrieve response stream

Stream responseStream = myResponse.GetResponseStream();

StreamReader reader = new StreamReader(responseStream);

// Show response

responseTxt = reader.ReadToEnd();

MessageBox.Show("" + responseTxt);

});

}

我送一个字符串到服务器,服务器的PHP代码如下所示(测试PHP是完全一样的):

require_once("includes/globals.php");

$vars = ($PRODUCTION)?$_POST:$_REQUEST;

$MINIMUM_VERSION = 2.0;

function validServiceType($type)

{

return $type == "taxi" || $type == "ladies" || $type == "limo" || $type == "handicap";

}

if(!isset($vars['version']) || ((float)$vars['version']) < $MINIMUM_VERSION)

{

echo "oldVersion";

}

elseif(isset($vars['lat'], $vars['lng'], $vars['phone'], $vars['language']))

{

/*do stuff */

if($data['contactMethod'] == "email" && $data['email'] == "")

{

echo "invalid";

die();

}

if(DB_AddHail($data))

echo "processing";

else if (($company = DB_GetReferralTaxi($data['lat'], $data['lng'], $data['serviceType'])))

{

/*do some more stuff*/

}

else

echo "sorry";

}

else

{

echo "invalid";

}

?>

我不断收到一个OldVersion错误,但我已经将版本号设置为2.0了......关于发生了什么的任何想法?

更新:我现在已经能够找出问题的根源; HttpWebRequest根本没有发送任何数据到服务器;我的$ _POST只是一个空数组。任何想法为什么?

更新2:我得到的错误是错误302(“我使用的URI只是http://而不是https://)。但是在将协议更改为https://之后,它仍然没有':T的工作是我的代码不正确的那部分

+0

这段代码是否与你的代码相同?' return $ type ==“taxi”|| $ type ==“女士们”|| $ type ==“limo”|| $ type == handicap“;'如果是,请尝试从结尾删除'''! –

+0

^耶逃跑障碍。 –

+0

对不起,这是我的一个错字;障碍已经在实际的现场版 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值