Logo Hardware.com.br
lgdelai
lgdelai Novo Membro Registrado
16 Mensagens 0 Curtidas

or die(mysql_error()) causando problemas na página

#1 Por lgdelai 11/02/2015 - 05:17
Olá gente.
Pesquisei muito e não achei uma solução para este problema pois não sei nem como descrevê-lo direito.
Vou tentar, e fico grato a quem puder ajudar.

Minha página estava apresentando o erro: "mysql_fetch_array() expects parameter 1"
E a solução foi adicionar "or die(mysql_error()) "
e ficou assim: $rs = mysql_fetch_array( $query ) or die(mysql_error());
Perfeito, meu problema se resolveu e o erro sumiu, \o/

Mas outro problema apareceu, frown.png
Eu tenho uma condição if em meu código que ao ser falsa exibia um alerta, (Linha 142 do pastebin)
else{ // Se o usuario não existir, exibe uma mensagem de erro.
$erro_usuario_nao_existe = $words["nao existe cadastro com o email informado"];
echo "";
}

Após adicionar "or die(mysql_error()) " ao invés de exibir o alerta é exibida uma página EM BRANCO.
Tentei remover o alerta e adicionar um redirecionamento para outra página, mas deu no mesmo.

O único aviso que é exibido ainda é o do captcha quando não preencho ou preenho errado.

[LIST=1]
else{
// Se a resposta de sucesso for FALSA exibe um alerta.
$message = $words["voce precisa provar que nao e um robo"];
echo "";
}
[/LIST]

Se alguém puder me ajudar ficarei muito grato mesmo.

Aqui está o link do pastebin do código completo: http://pastebin.com/jtCDXq7T
marcos andrade22
marcos andra... General de Pijama Registrado
3.6K Mensagens 333 Curtidas
#2 Por marcos andra...
11/02/2015 - 06:10
eu acho que esta verificação poderia ser feita de forma diferente :
[code=php]
// Verificando se o usuário existe.
if(strnatcasecmp($login, $usu_login) == 0) {

// eu tentaria desta forma
if (empty($rs)){

// ou
if(mysql_fetch_array( $query ) == true){

[/code]

e na linha 130 tem um if sem chave de abertura e fechamento.
lgdelai
lgdelai Novo Membro Registrado
16 Mensagens 0 Curtidas
#3 Por lgdelai
11/02/2015 - 11:14
Olá Marcos,
Primeiramente obrigado pelo retorno.

Veja bem:
Removi o "or die" e reorganizei o código agora ele está assim:

[php]$query ="SELECT * FROM usuarios WHERE usu_login = '$login'";
$resource = mysql_query($query, $conSisDtv);
$primeira_linha = mysql_fetch_array($resource);
$usu_login = $primeira_linha['usu_login'];
$usu_senha = $primeira_linha['usu_senha'];[/php]

Localmente "Localhost" uso o xampp, está tudo funcionando bem.
Mas online, recebo o seguinte erro:

PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in E:\Domains\delai.org\wwwroot\usuarios_recuperar_senha.php on line 83

A linha 83 é esta " $primeira_linha = mysql_fetch_array($resource); "

Com relação a comparação, fiz o teste que sugeriu mas não funcionou, então voltei como estava, queria resolver este problema da mensagem antes, para depois ver outra coisa.

Código como está agora (só modifiquei da linha 81 a 85): http://pastebin.com/YKH9AfsL

O que acha agora?
marcos andrade22
marcos andra... General de Pijama Registrado
3.6K Mensagens 333 Curtidas
#4 Por marcos andra...
11/02/2015 - 11:57
lgdelai disse:
Olá Marcos,
Primeiramente obrigado pelo retorno.

Veja bem:
Removi o "or die" e reorganizei o código agora ele está assim:

[php]$query ="SELECT * FROM usuarios WHERE usu_login = '$login'";
$resource = mysql_query($query, $conSisDtv);
$primeira_linha = mysql_fetch_array($resource);
$usu_login = $primeira_linha['usu_login'];
$usu_senha = $primeira_linha['usu_senha'];[/php]

Localmente "Localhost" uso o xampp, está tudo funcionando bem.
Mas online, recebo o seguinte erro:

PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in E:\Domains\delai.org\wwwroot\usuarios_recuperar_senha.php on line 83

A linha 83 é esta " $primeira_linha = mysql_fetch_array($resource); "

Com relação a comparação, fiz o teste que sugeriu mas não funcionou, então voltei como estava, queria resolver este problema da mensagem antes, para depois ver outra coisa.

Código como está agora (só modifiquei da linha 81 a 85): http://pastebin.com/YKH9AfsL

O que acha agora?

Sem testar o código eu tenho um pouco de dificuldades, mas tenta assim:
[code=php]
if($query === FALSE) {
die(mysql_error()); // TODO: better error handling
}
else{
$rs = mysql_fetch_array( $query ); // Variável $rs recebe os dados do usuário.
}
$usu_login = $rs['usu_login']; // Variável $usu_login pega na variável $rs o login cadastrado no BD.
$usu_senha = $rs['usu_senha'];
[/code]

off topic: este sistema você esta desenvolvendo ou é algo que já pegou pronto? seria interessante começar a pensar em PDO já que estas funções mysql serão removidas do PHP
lgdelai
lgdelai Novo Membro Registrado
16 Mensagens 0 Curtidas
#6 Por lgdelai
11/02/2015 - 12:42
marcos andrade22 disse:

off topic: este sistema você esta desenvolvendo ou é algo que já pegou pronto? seria interessante começar a pensar em PDO já que estas funções mysql serão removidas do PHP



Então, estou desenvolvendo.
Uso o Dreamweaver, pode me falar mais um pouco sobre este assunto?

Fiquei preocupado e gostaria de me preparar para o futuro e evitar problemas,

Criei umtopico sobre o assundo se quiser comentar fico grato.
Link do topico: https://www.hardware.com.br/comunidade/php-funcoes/1364252/

Obrigado.
lgdelai
lgdelai Novo Membro Registrado
16 Mensagens 0 Curtidas
#8 Por lgdelai
11/02/2015 - 13:30
marcos andrade22 disse:
Como eu falei, sem executar o código fica dificil, eu pensei que a conexão fosse feita neste arquivo
[code=php]
<?php require_once('Connections/conSisDtv.php');?>
[/code]

Vou passar a pouca experiência que tenho lá no seu outro tópico.


Opa, quer dizer que este código pode ficar dentro do mesmo arquivo conSisDtv.php e assim
em todos onde tiver um include deste arquivo irá funcionar?
marcos andrade22
marcos andra... General de Pijama Registrado
3.6K Mensagens 333 Curtidas
#9 Por marcos andra...
11/02/2015 - 15:35
lgdelai disse:
Opa, quer dizer que este código pode ficar dentro do mesmo arquivo conSisDtv.php e assim
em todos onde tiver um include deste arquivo irá funcionar?

Cara tem tempo que eu não uso estas funções mas pelo que lembro a seleção de tabela pode ficar toda em um único arquivo e você chamar somente a variavel de conexão.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal