2012-02-21 88 views
0

现在我只需要找出它为什么说老版本每次即使$ a = true 如果a是真的,它应该做if块,而不是其他的。也许版本需要是一个职位变量我会尝试它解析错误:语法错误:意外的';'在线25

<?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

问题是错误上方的线。使用括号,而不是大括号

} else (
+0

o crud eclipse我看不出,谢谢!!!!!! – user1116644 2012-02-21 19:26:37

+0

@CoffeeRain是吗?它应该是'else {_code_}',但是OP意外地做了'else(_code_)' – 2012-02-21 19:28:25

+0

对不起,我会删除它。我以为你说**使用** paren而不是花括号。 – CoffeeRain 2012-02-21 19:29:35

0

你必须使用大括号的控制结构:

} else { 
    $b = 'true'; 
} 
0

您在前述行后其他有(。这应该是{与匹配的结束}

+0

现在我得到“旧版本ooutput甚至wnen $ a ='真正'” – user1116644 2012-02-21 19:32:38

+0

我不知道你可以使用if($ a),就像在java中一样。你可以使用!$ a也可以吗?切换? – user1116644 2012-02-21 19:41:34

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) { 
+0

我把那些放在那里,所以你可以看到错误在哪里 – user1116644 2012-02-21 19:26:11

+0

@ user1116644你似乎混淆了'<<<'。括号是问题。 – phihag 2012-02-21 19:28:55

+0

我没有使用布尔值,因为一开始我就是问题所在,我从来没有改回它 – user1116644 2012-02-21 19:40:09

2

问题是这... ...

else (
>>>$b = 'true';>>> error? 

) 

你应该有......

else { 
    $b = 'true'; 
} 

它得到一个错误,因为它不是”期待线路的尽头在parens里面。

+0

我把那里显示错误是 – user1116644 2012-02-21 19:25:51

+0

是的,但你需要大括号'{}'而不是parens'()'。 – CoffeeRain 2012-02-21 19:26:47

相关问题