だから私は仮想世界に取り組んでおり、現在、ユーザーが禁止されているかアクティブ化されていないかをlogin.phpでチェックしようとしているところです。ユーザーが禁止されている場合、禁止された列には「1」(禁止されていない場合は「0」) と表示されます。ユーザーのアカウントがアクティブ化されている場合、アクティブな列には「1」(アクティブ化されていない場合は「0」) と表示されます。 post パラメータのユーザー名と login.php へのパス。Login.php はこれを行います:
<?php
$myServer = "localhost";
$myUser = "root";
$myPass = "";
$myDB = "game";
//connection to the database
$dbhandle = mysql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
//select a database to work with
$selected = mysql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB");
// The response variable
$res = "res=KO";
// Check incoming data
if ($_POST['name'] != "" && $_POST['pass'] != "") {
// Retrieve all rows from the "user_name" and "password" columns from the "account_info" table
$result = mysql_query("SELECT username, password, active, banned FROM users")
or die(mysql_error());
}
//create a loop that continues until each row is called
while($row = mysql_fetch_array($result)) {
//check if client user name/password is the same as the row from database
if ($_POST['name'] == $row['username'] && $_POST['pass'] == $row['password'] && $row['active'] = '1' && $row['banned'] == '0') { //BE AWARE OF "" ''
// If they match, Ok, user found
$res = "res=OK";
break;
}
else if ($_POST['name'] == $row['username'] && $_POST['pass'] == $row['password'] && $row['active'] == '0' && $row['banned'] == '0')
{
$res = "res=unactive";
}
else if ($_POST['name'] == $row['username'] && $_POST['pass'] == $row['password'] && $row['banned'] == '1' && $row['active'] == '1' )
{
$res = "res=banned";
}
}
print $res;
?>
$res を処理する関数は次のとおりです。
serverIn.onLoad = function(success)
{
if (success)
{
if (this.res == "OK")
{
sendLogin()
}
else if (this.res == "unactive")
{
var win:MovieClip = showWindow("errorWindow")
win.errorMsg.text = "Your account is not activated."
}
else if (this.res == "banned")
{
var win:MovieClip = showWindow("errorWindow")
win.errorMsg.text = "Your account is banned."
}
else
{
var win:MovieClip = showWindow("errorWindow")
win.errorMsg.text = "Incorrect username or password"
}
}
else
{
var win:MovieClip = showWindow("errorWindow")
win.errorMsg.text = "Connection failed"
}
}
ユーザーが禁止されているかどうかを確認する login.php の部分を追加するまで、両方のファイルはうまく機能していました。だからここに私の問題があります:
データベース内のユーザー情報を変更して、禁止され、アクティブ化されました。しかし、swf に送信される $res は res=unactive であり、「ユーザーがアクティブではありません」というウィンドウが表示されます。私が禁止されてアクティブな場合、「ユーザー禁止」ポップアップが表示されるようにします。
その後、禁止されないように変更し、アクティブになりました。それは私を正常にログインさせます。
その後、禁止されたり、アクティブになったりしないようにします。想定されていないときにログインします。「ユーザーがアクティブ化されていません」ウィンドウが表示されると思いますが、表示されません。