authentication - PHP mysql_query() 问题

标签 authentication mysql php phpmyadmin

我的 php 代码出现问题。我似乎从 @mysql_query() 收到错误。

这是我的 php 代码:

<?php
// A simple PHP script demonstrating how to connect to MySQL.
// Press the 'Run' button on the top to start the web server,
// then click the URL that is emitted to the Output tab of the console.

$servername = getenv('IP');
$username = getenv('C9_USER');
$passwordp = "";
$database = "game_database";
$dbport = 3306;

// Create connection
mysql_connect($servername, $username, $passwordp, $dbport)or die("Cant Connect to server");
mysql_select_db($database) or die("Cant connect to database");
// Check connection


$Email = $_REQUEST["Email"];
$Password= $_REQUEST["Password"];

if (!$Email || !$Password){
echo"Email or password must be used";
}
else{
$SQL = "SELECT * FROM 'users' WHERE Email = '"  . $Email ."'";
$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($Password, $datas["Password"])){
                $sql2 = "SELECT Characters FROM users WHERE Email = '" . $Email ."'";
                $result_id2 = @mysql_query($sql2) or die("Database Error!!!");
                while ($row = mysql_fetch_array($result_id2)){
                    echo $row ["Characters"];
                    echo ":";
                    echo "Success";
                }
    }
    else{
        echo "WrongPassword";
    }
    }else {
        echo "NameDoesNotExist";
    }
}

?>

这是我的 C# 代码:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class LoginScript : MonoBehaviour {
#region Variables
//Static Variables
public static string Email = "";
public static string Password = "";
//Private Variables
private string createAccountUrl = "https://credmanager-rowanharley.c9.io/createaccount.php";
private string loginUrl = "https://credmanager-rowanharley.c9.io/loginaccount.php";
private string ConfirmPass= "";

private string CreateEmail = "";
private string CreatePassword = "";
//Public Variables
public string currentMenu = "Login";

//GUI test section
public float X;
public float Y;
public float Width;
public float Height;
#endregion
    // Use this for initialization
    void Start () {

    }

    void OnGUI(){
        //If current menu is = login call login screen
        if (currentMenu == "Login"){
            LoginGUI();
        }
        //If current menu is = Create Account call CreateAccount screen
        else if(currentMenu == "CreateAccount"){
            CreateAccountGUI();
        }
    }
    //This method will login to accounts
    void LoginGUI(){
        GUI.Box (new Rect (210, 15, 300, 300), "Login");
        if (GUI.Button (new Rect (250, 275, 105, 35), "Register Now!!!")) {
            currentMenu = "CreateAccount";
        }
        if (GUI.Button (new Rect (370, 275, 105, 35), "Login!")) {
            StartCoroutine(LoginAccount());
        }
        GUI.Label(new Rect(225, 55, 290, 100), "Before Continuing you need to login or register.");

        GUI.Label(new Rect(215, 102, 100, 100), "Email:");
        Email = GUI.TextField (new Rect (330, 100, 150, 25), Email);

        GUI.Label(new Rect(215, 150, 100, 100), "Password:");
        Password = GUI.TextField (new Rect (330, 147, 150, 25), Password);
    }
    void CreateAccountGUI(){
        GUI.Box (new Rect (210, 15, 300, 300), "Register to save progress");
        if (GUI.Button (new Rect (250, 275, 105, 35), "Back")) {
            currentMenu = "Login";
        }
        GUI.Label(new Rect(225, 55, 290, 100), "Register NOW!!!");

        GUI.Label(new Rect(215, 102, 100, 100), "Email:");
        CreateEmail = GUI.TextField (new Rect (330, 100, 150, 25), CreateEmail);

        GUI.Label(new Rect(215, 150, 100, 100), "Password:");
        CreatePassword = GUI.TextField (new Rect (330, 147, 150, 25), CreatePassword);

        GUI.Label(new Rect(215, 198, 122, 100), "Confirm Password:");
        ConfirmPass = GUI.TextField (new Rect (330, 194, 150, 25), ConfirmPass);



        GUI.Box (new Rect (210, 15, 300, 300), "Register to save progress");
        if (GUI.Button (new Rect (250, 275, 105, 35), "Back")) {
            currentMenu = "Login";
        }
        if (GUI.Button (new Rect (370, 275, 105, 35), "Create Account")) {
            if (CreatePassword == ConfirmPass){
                StartCoroutine("CreateAccount");

            }
            else{
                Debug.Log("Both Passwords are not the same");
            }
        }
    }



    IEnumerator CreateAccount(){
        //this sends info to php form
        WWWForm CreateAccountForm = new WWWForm ();
        CreateAccountForm.AddField ("Email", CreateEmail);
        CreateAccountForm.AddField ("Password", CreatePassword);

        WWW CreateAccountWWW = new WWW (createAccountUrl, CreateAccountForm);
        yield return CreateAccountWWW;

        if (CreateAccountWWW.error != null) {
            Debug.LogError ("Failed to Create Account. Is Internet On? Is URL Correct? Error Message: " + CreateAccountWWW.error);
        } else {
            string CreateAccountReturn = CreateAccountWWW.text;
            Debug.Log("Successfully Created Account " + CreateEmail);
            Application.LoadLevel("MainScene");
        }
    }

    IEnumerator LoginAccount(){
        Debug.Log ("Attempting to login...");
        WWWForm Form = new WWWForm ();
        Form.AddField ("Email", Email);
        Form.AddField ("Password", Password);
        WWW LoginAccountWWW = new WWW (loginUrl, Form);
        yield return LoginAccountWWW;
        if (LoginAccountWWW.error != null) {
            Debug.LogError("Problem with Database. Error Message: " + LoginAccountWWW.error);
        } 
        else {
            string LogText = LoginAccountWWW.text;
            Debug.Log(LogText);
            string[] LogTextSplit = LogText.Split(':');
            if (LogTextSplit[1] == "Success"){
                Application.LoadLevel("MainScene");
            }
        }
    }
}

当我从 Unity 编辑器中按播放时,我收到错误:$result_id 上来自 @mysql_query() 的“数据库错误”。

最佳答案

使用查询字符串作为这样的格式

“从 test.members 中选择 m.name,其中 name= %s OR id=%d OR sex IN (%a)", "邪恶的'注入(inject)'", 'NaN', array('男', '女' , '两者', '其他', "外星人引用'人"));

关于authentication - PHP mysql_query() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233779/

相关文章:

php - WordPress建立数据库连接时出错

php - 从命令提示符运行 php 文件并接受输入

php - 密码重置后删除该用户的所有 session cookie

Git LDAP 身份验证

mysql - mysql中位数据类型的Unicode输出

php - 语法错误,Laravel 中意外的 '->' (T_OBJECT_OPERATOR)

php - WordPress 编辑管理员帮助选项卡

python - 有没有办法在不提供主密码的情况下访问 Windows 中的 key 环?

http - 当 API 使用 Introspection 进行 HTTP token 身份验证时,如果 Introspection 服务器关闭或返回 500,它应该返回什么?

mysql - 仅加入特定字段中具有最小值的行