2013-11-14 129 views
0

完整的错误:解析错误:语法错误,在/home/u572186424/public_html/safe.php意外T_VARIABLE上线56PHP语法错误...意外的T_VARIABLE?

我在第56行一直盯着,不能看着办吧......

 exit(); 

整个文件如下:

<?php include_once("connect.php"); ?> 
<? 
$sql = "SELECT * FROM users WHERE id='".mysql_real_escape_string($_SESSION['user_id'])."'"; 
$query = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_object($query); 
$id = htmlspecialchars($row->id); 
$userip = htmlspecialchars($row->userip); 
$username = htmlspecialchars($row->username); 
$password = htmlspecialchars($row->password); 
$account_type = htmlspecialchars($row->account_type); 
$money = htmlspecialchars($row->money); 
$exp = htmlspecialchars($row->exp); 
$req_exp = htmlspecialchars($row->req_exp); 
$level = htmlspecialchars($row->level); 
$health = htmlspecialchars($row->health); 
$max_health = htmlspecialchars($row->max_health); 
$lastactive = htmlspecialchars($row->lastactive); 
$energy = htmlspecialchars($row->energy); 
$max_energy = htmlspecialchars($row->max_energy); 
$will = htmlspecialchars($row->will); 
$max_will = htmlspecialchars($row->max_will); 
$brave = htmlspecialchars($row->brave); 
$max_brave = htmlspecialchars($row->max_brave); 
$strength = htmlspecialchars($row->strength); 
$agility = htmlspecialchars($row->agility); 
$guard = htmlspecialchars($row->guard); 
$labor = htmlspecialchars($row->labor); 
$iq = htmlspecialchars($row->iq); 
$rank = htmlspecialchars($row->rank); 
?> 
<?php 
$sql = "SELECT * FROM sitestats WHERE id='1'"; 
$query = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_object($query); 
$admins = htmlspecialchars($row->admins); 
$mods = htmlspecialchars($row->mods); 
$hdo = htmlspecialchars($row->hdo); 
$admins_ip = htmlspecialchars($row->admins_ip); 
$mods_ip = htmlspecialchars($row->mods_ip); 
$admin_array = explode("-", $admins); 
$mod_array = explode("-", $mods); 
$hdo_array = explode("-", $hdo); 
$admin_ip_array = explode("-", $admins_ip); 
$mod_ip_array = explode("-", $mods_ip); 
?> 
<html> 
<body> 
<? 
if(isset($_SESSION['user_id'])) { 
$sql = "UPDATE users SET lastactive=NOW() WHERE id='".mysql_real_escape_string($_SESSION['user_id'])."'"; 
    mysql_query($sql); 
}else{ 
    header("Location: logout.php"); 
    exit(); //ERROR HERE 
} 
$query = "SELECT account_type,rank FROM users WHERE username= "$username"; 
$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_array($result); 
if($row['account_type'] == 1){ 
$row['rank'] = "Player"; 
$rank = "Player"; 
}elseif($row['account_type'] == 2){ 
$row['rank'] = "VIP"; 
$rank = "VIP"; 
}elseif($row['account_type'] == 3){ 
$row['rank'] = "HDO"; 
$rank = "HDO"; 
}elseif($row['account_type'] == 4){ 
$row['rank'] = "Moderator"; 
$rank = "Moderator"; 
}elseif($row['account_type'] == 5){ 
$row['rank'] = "Admin"; 
$rank = "Admin"; 
}elseif($row['account_type'] == 6){ 
$row['rank'] = "Owner"; 
$rank = "Owner"; 
} 
?> 
</body> 
</html> 

顺便说一句,这个代码是在PHP中,如果你一直无法分辨。请帮帮忙!谢谢!

+0

错误是这里**的用户名=” 。$ username ** –

+0

哟,缩小一点让我们可以真正阅读它?此外,减少代码,直到错误消失。当它发生时,你刚才删除的内容导致了错误。通常你首先这样做,因为你需要在发布问题之前找到问题 –

回答

2

语法高亮显示给你。问题是多余的报价 “在这里:

$query = "SELECT account_type,rank FROM users WHERE username= "$username"; 

尝试:

$query = "SELECT account_type,rank FROM users WHERE username= '$username'"; 
+0

完美!谢谢! – Jacob

+0

如果你的字符串使用双引号,你也可以编写一个变量,而不必关闭引号,再次打开并打开,如下所示:$ query =“SELECT something FROM someTable WHERE condition = {$ condition}”; –

+0

并注意单引号的使用,因为我假定用户名是db中的text/varchar。 – AbraCadaver

0

当您连接查询和$username有没有点:

$query = "SELECT account_type,rank FROM users WHERE username= "$username"; 
+0

您不需要在PHP中将字符串与包含字符串的变量连接起来。你可以这样做: $ query =“SELECT account_type,rank FROM users where username = $ username”; –

+0

没错,您必须将变量放在引号内,或者将其连接起来。不是中途。 – regulus

相关问题