好的,我正在使用 Unity 创建我的应用程序,并为它们之间的数据库创建 MSSQL,我有一个 PHP Exchange 服务器。
所以基本上我对这段代码有问题
using UnityEngine;
using System.Collections;
public class NewSession : MonoBehaviour {
string userLoginFile = "http://"ServerIP"/UnitySQL/NewSession.php?";
public UnityEngine.UI.Text NewSess;
string userid = "";
string session = "";
void OnGUI()
{
session = NewSess.text;
userid = PlayerPrefs.GetString ("UserId");
}
public void Insert()
{
if (session == "") {
StartCoroutine (LoginUser (userid));
} else {
print("DAMNSON");
}
}
IEnumerator LoginUser(string user)
{
WWW login = new WWW (userLoginFile + "UserId=" + user);
print (userLoginFile + "UserId=" + user);
yield return login;
if (login.error == null)
{
string[] credentials = login.text.Split('/');
foreach(string str in credentials)
{
string[] creds = str.Split ('=');
for(int i=0; i < creds.Length; i++)
{
print ("winner");
}
}
}
}
}
现在我不知道为什么会出现这个问题,因为当我使用 localhost 并在我的服务器上进行 php 交换时它工作正常我可以清楚地看到脚本打印是正确的,因为如果我将其复制并粘贴到地址 header 中它做它应该做的没问题。 这是 PHP 脚本
<?php
$userid = $_REQUEST['UserId'];
$user = 'user';
$pass = 'Pass';
$server = 'IP';
$database = 'MyTable';
// No changes needed from now on
$connection_string = "DRIVER={SQL Server};SERVER=$server;DATABASE=$database";
$conn = odbc_connect($connection_string,$user,$pass);
/*$q = "DECLARE @return_value int
EXEC @return_value = [dbo].[InsertAnswersCheck]
@varQuestionOptionId = '$QOI',
@varUser = '$userid'
SELECT 'Return Value' = @return_value";*/
$q = "INSERT INTO usersession (UserId) VALUES ($userid)";
$result = odbc_exec($conn,$q);
$num_rows = odbc_num_rows($result);
if($num_rows > 0)
{
} else {
}
?>
这个问题已经有一段时间了,但我不知道哪里出了问题。如果有人可以提供帮助,那就太好了。
请注意它在我的本地主机上使用相同的脚本,如果设置它将要求用户登录两次。但是当我在服务器脚本上执行它时,它只会让你陷入循环,直到你复制并粘贴打印代码。
最佳答案
我不知道,但你可以试试:
- 在浏览器中打开您的
print (userLoginFile + "UserId="+ user);
打印出来的内容。 - 将
print(login.text);
放在yield return login;
之后(在下一个if
内)。 - 将
else
放入if (login.error == null)
withprint("Err: "+ "login.error.ToString()) ;
- 我在您的 PHP 脚本中没有看到任何
echo
。
输出形式 1 和 2 应该相同。
关于c# - 从 C# 到 Php 的脚本推送不适用于应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695394/