- Home /
Unity Null Reference Error
Hello,
I have a unity script (posted below) that connects to a php file which then checks the username and password against a database. However, everytime we click the login button, we get a nullreference error on line 49 which is loginform.addfield
Any help would be greatly appreciated. I have posted both unity code and php code.
using UnityEngine;
using System.Collections;
public class Login : MonoBehaviour {
public Texture LoginBackground;
public Texture2D stylebackground;
public GUIStyle LoginStyle;
public GUIStyle LoginTextBox;
public GUIStyle LoginButton;
public string Username;
public string Password;
public float transparent;
private string url;
public WWW w;
public WWWForm loginform;
// Use this for initialization
void Start () {
LoginStyle.fontSize = 72;
LoginStyle.alignment = TextAnchor.MiddleCenter;
LoginTextBox.fontSize = 20;
LoginTextBox.alignment = TextAnchor.MiddleCenter;
LoginTextBox.normal.background = stylebackground;
LoginButton.fontSize = 30;
LoginButton.alignment = TextAnchor.MiddleCenter;
url = "http://redlightlife.tk/scripts/checklogin.php";
}
// Update is called once per frame
void Update () {
}
void OnGUI() {
GUI.backgroundColor = Color.black;
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),LoginBackground,ScaleMode.StretchToFill, false, 0.0f);
GUI.Label(new Rect(Screen.width/2-250,Screen.height/2-250,500,250),"Username:", LoginStyle);
Username = GUI.TextField(new Rect(Screen.width/2-250,Screen.height/2-80,500,50), Username, 10, LoginTextBox);
GUI.Label(new Rect(Screen.width/2-250,Screen.height/2-50,500,250),"Password:", LoginStyle);
Password = GUI.TextField(new Rect(Screen.width/2-250,Screen.height/2+120,500,50), Password, 10, LoginTextBox);
if (GUI.Button(new Rect(Screen.width/2-150,Screen.height/2+200,300,50),"Login:", LoginButton))
{
CheckLogin();
}
}
void CheckLogin()
{
loginform.AddField("username", Username);
loginform.AddField("password", Password);
w = new WWW(url,loginform);
Debug.Log("Downloaded");
if (w.error != null)
{
print(w.error);
}
else
{
print("Login Okay");
string formText = w.text;
w.Dispose();
Debug.Log(formText);
}
}
}
<?php
function main($formUse = true)
{
$link = mysql_connect('bondsolutionsnjcom.fatcowmysql.com', 'lightswitch', '*password*');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_select_db(red_light_life_accounts1);
// This could be supplied by a user, for example
$username;
$password;
if(!$username || !$password) {
echo "Login or password cant be empty.";
} else {
$SQL = "SELECT username,password FROM accounts WHERE username = '" . $username . "' & password = '" . $password . '"';
$result_id = @mysql_query($SQL) or die("DATABASE ERROR!");
$total = mysql_num_rows($result_id);
if($total) {
$datas = @mysql_fetch_array($result_id);
if(!strcmp($pass, $datas["password"])) {
echo "Success";
} else {
echo "Username or password is wrong.";
}
} else {
echo "Data invalid - cant find username.";
}
}
}
// Close mySQL Connection
mysql_close();
?>
Comment
Best Answer
Answer by DaveA · Jul 11, 2012 at 12:28 AM
Nowhere do you say loginForm = new WWWForm();
Thanks that fixed that error. However, I added a yield w to wait for file to download but it gives an error when I add yield w.