Salve amigos. Tenho um script onde o administrador seleciona os direitos de uso de cada usuário, o problema é que quando chega na linha 30 ele acusa este erro:
Parse error: syntax error, unexpected T_VARIABLE in /home/XXXXXX/public_html/rights.php on line 30
O script é este:
<?
include "config.php";
if (empty($_SESSION['id']))
{
include "index.php";
die();
}
check_login();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>KaTroops - <?= text('rights_header') ?></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<? include "menu.php"; ?>
<p></p>
<div align="center">
<table class="tabella" cellpadding="2" cellspacing="1">
<tr>
<th bordercolor="#F8E8AA" bordercolordark="#F8E8AA" bordercolorlight="#FF9933" bgcolor="#FFD57D" colspan="3"><?= text('edit_rights') ?></th>
</tr>
<?
$sql ="select u.name, u.level ";
$sql.="from ".PREFIX."user u ";
$sql.="where u.id =" $idu;
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
echo " <tr>\n";
echo " <td width=170>".text('name')."</td>";
echo " <td>".$row['name']."</td>";
echo " <td title=\"".text('level'.$row['level'])."\">".$row['level']."</td>";
echo " </tr>\n";
?>
</table>
<p></p>
<form method="post" action="post_rights.php">
<input type=hidden name=idu value=<?= $idu ?>>
<p></p>
<?= text('rights_change') ?>
<select name="change_rights">
<option value=1><?= text('level1') ?></option>
<option value=10><?= text('level10') ?></option>
<option value=99><?= text('level99') ?></option>
</select>
<p></p>
<input type="submit" class="bottone" value="<?= text('save') ?>">
</form>
</div>
<?
include "bottom.php";
?>
</body>
</html>
Como resolvo este problema?

Erro De Variável
Started By Folkmir, 25/03/2009, 22:52
3 replies to this topic
#1
Posted 25/03/2009, 22:52
#2
Posted 26/03/2009, 00:50
isso está errado:
faça mais assim:
( o que é esse PREFIX ? de onde vem o valor dele?? Constante?? )
Bom... mais ou menos isso:
e aqui:
faltam aspas para os valores de type, name e value
Acho que se não resolver já da uma caminhada para soluçãoAté mais
$sql ="select u.name, u.level "; $sql.="from ".PREFIX."user u "; $sql.="where u.id =" $idu;
faça mais assim:
( o que é esse PREFIX ? de onde vem o valor dele?? Constante?? )
Bom... mais ou menos isso:
$sql = "SELECT u.name, u.level FROM ".PREFIX."user AS u WHERE u.id = ".$idu."";
e aqui:
<input type=hidden name=idu value=<?= $idu ?>>
faltam aspas para os valores de type, name e value
Acho que se não resolver já da uma caminhada para soluçãoAté mais
Crab - Ex-Administrador Geral fórum WMO
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
#3
Posted 26/03/2009, 01:07
Obrigado por tentar me ajudar Crab. Prefix, é o prefixo do BD.
Após a mudança o erro mudou:
Notice: Undefined variable: idu in /home/a2242136/public_html/rights.php on line 28
Está acusando que a variável idu não foi definida. Como a defino? A idéia de usar o u foi que vi que ele é um separador no BD, exemplo:
Preciso selecionar através de um link, um usuário do meu banco de dados para dar a ele privilégios de administrador.
essa variável idu deveria fazer esta função. Fiz o teste excluindo ela do Script, ele funciona mas o privilégio selecionado para o usuário modifica o de todos do banco de dados para o que foi escolhido.
Após a mudança o erro mudou:
Notice: Undefined variable: idu in /home/a2242136/public_html/rights.php on line 28
Está acusando que a variável idu não foi definida. Como a defino? A idéia de usar o u foi que vi que ele é um separador no BD, exemplo:
Preciso selecionar através de um link, um usuário do meu banco de dados para dar a ele privilégios de administrador.
essa variável idu deveria fazer esta função. Fiz o teste excluindo ela do Script, ele funciona mas o privilégio selecionado para o usuário modifica o de todos do banco de dados para o que foi escolhido.
#4
Posted 26/03/2009, 01:32
nem havia reparado...
bom vamos lá... NOTICE não é um erro propriamente dito...
seguinte... vc tem que receber os valores do form usando $_GET['campo'] se no form o method for get, $_POST['campo'] se no form o method for post, ou $_REQUEST['campo'] para qualquer dos casos
Mas ali onde vc colocu $idu no campo hidden do form... esse $idu tá vindo daonde visto que o form está no mesmo arquivo ... ihhh
que rolo
aiai..
Pelo menos faz assim faz assim
Assim a tua variável já estará definida independente de ter enviado o form ou não.
E quanto à tua query, ainda não entendi o porque e pra que PREFIX :|
E outra... ahco que vc não precisa atribuir 'alias' ao nome da tabela, visto que está consultando apenas uma tabela.
Mas...Até mais
bom vamos lá... NOTICE não é um erro propriamente dito...
seguinte... vc tem que receber os valores do form usando $_GET['campo'] se no form o method for get, $_POST['campo'] se no form o method for post, ou $_REQUEST['campo'] para qualquer dos casos
Mas ali onde vc colocu $idu no campo hidden do form... esse $idu tá vindo daonde visto que o form está no mesmo arquivo ... ihhh
que rolo
aiai..
Pelo menos faz assim faz assim
$idu = (isset($_POST['idu'])) ? $_POST['idu'] : NULL;
Assim a tua variável já estará definida independente de ter enviado o form ou não.
E quanto à tua query, ainda não entendi o porque e pra que PREFIX :|
E outra... ahco que vc não precisa atribuir 'alias' ao nome da tabela, visto que está consultando apenas uma tabela.
Mas...Até mais
Crab - Ex-Administrador Geral fórum WMO
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)