Apache + PHP + Mysql - Preciso de Ajuda
Olá pessoal.
tenho a seguinte ambiente:
- Linux Red Hat 9.0
- Apache 2.0.40
- PHP 4.4.3
- MySQL 4.0.18
Tenho alguns scripts rodando nessa máquina para cadastrar, consultar e remover usuários de um banco de dados MySQL, e antes da inclusão ele faz a verificação se o login não está cadastrado. Se estiver emite a mensagem que não é possível cadastrar e se não tiver cadastra o usuário.
Problema: O cadastro do usuário é realizado mas a remoção não é feita. Na remoção ele retorna que o login não existe, sendo que o mesmo está lá.
Segue código dos arquivos que estou utilizando:
Código :
//remover.php
//formulário para digitacao do login a se remover
<html>
<head>
<title> Administração do Servidor Linux </title>
<STYLE type=text/css>
A:link { text-decoration: none}
A:visited { text-decoration: none}
</STYLE>
</head>
<body>
<center><font face=arial size=5 color=red> Administração do Servidor Linux </font></center>
<br>
<h2 align=center><font color="#0000f2" face=arial> Remover Usuários </font></h2>
<hr width=800 align=center noshade>
<br><br><br><br>
<form method=post action=val_rem.php>
<table width=50% border=0>
<tr>
<td>
Login de Acesso:
</td>
<td>
<input type="text" name="login" size="20" style="font-family: Courier New; border-style: dotted; border-color: #666666" maxlength="20">
</td>
</tr>
</table>
<br>
<table width=30% border=0>
<tr>
<td>
<input type="submit" value="Remover" style="border-style: double">
</td>
<td>
<input type="reset" value="Limpar" style="border-style: double">
</td>
</tr>
</table>
<br><br><br><br>
<a href=index.php> Voltar </a>
</body>
</html>
Código :
//val_rem.php
//script executado no post do form anterior
<html>
<head>
<title> Administração do Servidor Linux </title>
<STYLE type=text/css>
A:link { text-decoration: none}
A:visited { text-decoration: none}
</STYLE>
</head>
<body>
<center><font face=arial size=5 color=red> Administração do Servidor Linux </font></center>
<br>
<h2 align=center><font color="#0000f2" face=arial> Remover Usuários </font></h2>
<hr width=800 align=center>
<?
$host = "localhost";
$user = "teste";
$senha = "teste";
$banco = "teste";
$conexao = mysql_connect($host,$user,$senha) or die("Não Conectado ao MySQL");
mysql_select_db($banco, $conexao) or die("Banco de Dados não selecionado");
$consulta = "SELECT * FROM usuarios WHERE login='$login'";
$resultado = mysql_query($consulta, $conexao);
while ($campo = mysql_fetch_row($resultado)) {
$login_consulta = $campo[2] ;
}
if ($login==$login_consulta) {
$excluir = "delete from usuarios where login='$login'";
mysql_query ($excluir, $conexao) or die (mysql_error());
echo "<br><br><br><br>";
echo "Usuário removido com Sucesso !!!";
echo "<br><br><br><br>";
} else {
echo "<br><br><br><br>";
echo " <font color=red size=3>Usuário não cadastrado, favor tentar outro login. </font>";
}
mysql_close($conexao);
?>
<br><br><br><br>
<a href=remover.php> Voltar </a>
</body>
</html>
Re: Apache + PHP + Mysql - Preciso de Ajuda
Citação:
$excluir = "delete from usuarios where login='$login'";
Voce tentou dar um echo nisso pra ver se esta formando a query direito? As vezes esta formando 'delete from usuarios where login='$login'' literalmente e nao vai dar certo mesmo... viu... so pela intencao de ajudar pq eu so ruim ruim em php ahuahuahauhaua
Re: Apache + PHP + Mysql - Preciso de Ajuda
Pelo q eu vi vc tentou excluir o usuario "diretamente". Às vezes, há a questao de relacionamentos/dependencias dentro do BD, assim o SGBD nao permite que o usuario seja excluido sem que essas dependencias sejam ANTES excluidas tbem. caso contrario o BD ficaria com "conteudo sem dono" (ou lixo, propriamente dito)...
Nao sei se é o caso, mas vale a pena dar uma olhada e tentar...
Re: Apache + PHP + Mysql - Preciso de Ajuda
O problema é o seguinte:
Código :
if ($login==$login_consulta) {
Essa checagem sempre retorna falso, pois sempre exibe a mensagem de usuário não cadastrado, mesmo que ele esteja cadastrado no banco de dados com o login informado.
Re: Apache + PHP + Mysql - Preciso de Ajuda
Nao conheco a fundo a sintaxe do php, mas me parece bem semelhante aos shell scripts do linux (se nao é a mesma coisa...), mas nao é o caso de se colocar aspas nas variaveis ($login e $login_consulta)??
na duvida use o echo para mostrar o conteudo das duas variaves....
Re: Apache + PHP + Mysql - Preciso de Ajuda
eu acho q o erro está qui:
while ($campo = mysql_fetch_row($resultado)) {
$login_consulta = $campo[2] ;
}
seia melhor assim
while ($campo = mysql_fetch_row($resultado)) {
$login_consulta = $campo["login"] ;
echo $login_consult; // opcional só para vc ver o q esta acontecendo
exit; // aqui para e mostra para vc, se tiver tudo certo veja a condição if.
}