Jump to content


Photo

Erro De Variável


  • Faça o login para participar
3 replies to this topic

#1 Folkmir

Folkmir

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 25/03/2009, 22:52

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?

#2 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 26/03/2009, 00:50

isso está errado:

$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

#3 Folkmir

Folkmir

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

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.

#4 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

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

$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




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq