现在我只需要找出为什么它说老版本每次即使$ a = true 如果a为真,它应该执行if块而不执行其他操作。也许版本需要是一个post变量我会尝试
<?php
$launcherv = "13";
$gamev = "1326382442000";
$sessid = math.rand(1, 1000000000000000);
$ticket = math.rand(1, 1000000000000);
$user = "";
$password = "";
$version = "";
$a = false;
$b = false;
$c = false;
if ($version == $launcherv){
$a = true;
} else {
$a = false;
}
if ($user == ""){
$b = false;
} else {
$b = 'true';
}
if ($password == ""){
$c = false;
} else {
$c = true;
}
if ($a && $b && $c){
echo ($gamev.":".$ticket.":".$user.":".$sessid);
}
elseif(!$a){
echo "Old Version";
}
elseif(!$b){
echo "Bad Login";
}
elseif(!$c){
echo "Bad Login";
}
?>
答案 0 :(得分:2)
问题在于......
else (
>>>$b = 'true';>>> error?
)
你应该......
else {
$b = 'true';
}
它会出错,因为它并不期望该行的结尾位于parens内。
答案 1 :(得分:0)
问题是错误上方的行。使用了paren而不是花括号
} else (
答案 2 :(得分:0)
您必须对控件结构使用大括号:
} else {
$b = 'true';
}
答案 3 :(得分:0)
在前一行的else后面有(
。这应该是{
,匹配结束}
答案 4 :(得分:0)
在php中,块总是由花括号{
分隔,而不是圆括号(
。仔细看看:
} else ( // <---
$b = 'true';
) // <--
你想:
} else {
$b = 'true';
}
另请注意,使用字符串'true'
和'false'
作为神奇值是个不错的主意。而不是
if ($version >= $launcherv){
$a = 'true';
} else {
$a = 'false';
}
...
if ($a == 'true') {
你应该真的使用boolean values:
if ($version >= $launcherv){
$a = true;
} else {
$a = false;
}
...
if ($a) { // or ! $a for the opposite
您可以进一步简化此代码:
$a = $version >= $launcherv;
...
if ($a) { // or ! $a for the opposite
短变量可能会混淆future readers。因此,你甚至可以写:
...
if ($version >= $launcherv) {