Hugo1337 Posted July 16, 2018 at 01:33 AM Report #611335 Posted July 16, 2018 at 01:33 AM Olá comunidade do Portugal a programar, estou começando a estudar sobre ligação de mySQL com php e estou com um problema o qual não consigo me livrar, estou desenvolvendo uma tela de login e ao fazer o login deveria cair numa pagina dizendo que a senha é invalida ou que a senha é correta, porem isso acontece impedindo o meu desenvolvimento (Página: http://localhost:63342/www/PHP_Fundamentos/verifica.php) Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 10 Warning: Use of undefined constant mysqli - assumed 'mysqli' (this will throw an Error in a future version of PHP) in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 10 mysqli Estou usando WAMP, mySQL, phpMyAdmin e PhpStorm, não sei como sair disso, a seguir meu código: login.html : <!DOCTYPE html> <html lang="pt-br"> <head> <title>Sistema de Login</title> <meta charset="utf-8"> </head> <body> <h4><center>Entre com seu usuario e senha para logar</center></h4> <form name="form1" method="post" action="verifica.php"> Nome: <input type="text" name="login" id="login"/> <br /><br /> Senha: <input type="password" name="senha" id="senha"/> <br /><br /> <input class="button" type="submit" value="entrar"/> </form> </body> </html> Conexa_BD.php : <?php $servidor ='127.0.0.1'; $usuario = 'root'; $senha = ''; $bancoDados = 'curso_php'; $conexao = mysqli_connect($servidor,$usuario,$senha,$bancoDados); if (mysqli_connect_errno($conexao)) { echo "problemas para conectar no banco, verifique os dados!"; } else { echo "conexao realizada com sucesso"; } ?> Verifica.php : <?php $servidor ='127.0.0.1'; $usuario = 'root'; $senha = ''; $bancoDados = 'curso_php'; $conexao = mysqli_connect($servidor,$usuario,$senha,$bancoDados) or die(mysqli_error()); mysqli_select_db('curso_php', $conexao) or die(mysqli); if (mysqli_connect_errno($conexao)) { echo "problemas para conectar no banco, verifique os dados!"; } else { echo "conexao realizada com sucesso"; } $login = $_POST["login"]; $senha = $_POST["senha"]; $selecao = mysqli_query("SELECT * FROM CADASTRO WHERE LOGIN = '$login' and senha = '$senha'"); $row = mysqli_fetch_array($selecao); // retorna a linha da consulta acima if ($row == "") { // se a consulta retornar vazio da erro echo "<br>login e/ou senha invalidos"; echo "<br><br>"; echo "volte e tente novamente"; exit; } else { echo "<br><br>Bem vindo <br> $login<br>"; } Se alguem conseguir me ajudar a me livrar desse bloqueio ficaria muito agradecido.
tiago.f Posted July 16, 2018 at 09:31 AM Report #611338 Posted July 16, 2018 at 09:31 AM (edited) Olá Hugo, se leres com atenção a mensagem de erro, ela diz-te que na linha 10 do verifica.php, a função mysqli_select_db não tem os parâmetros correctos. segundo a documentação - http://php.net/manual/en/mysqli.select-db.php - o primeiro parâmetro deve ser o link mysqli e não o nome da bd como tu tens. Edit: vê o “procedural style” e não o “object oriented style” Espero que ajude. Edited July 16, 2018 at 09:32 AM by tiago.f
Hugo1337 Posted July 16, 2018 at 02:48 PM Author Report #611341 Posted July 16, 2018 at 02:48 PM 5 horas atrás, tiago.f disse: Olá Hugo, se leres com atenção a mensagem de erro, ela diz-te que na linha 10 do verifica.php, a função mysqli_select_db não tem os parâmetros correctos. segundo a documentação - http://php.net/manual/en/mysqli.select-db.php - o primeiro parâmetro deve ser o link mysqli e não o nome da bd como tu tens. Edit: vê o “procedural style” e não o “object oriented style” Espero que ajude. Oi Thiago, na verdade esqueci de falar que já tinha feito isso tambem, e aparece o seguinte: Warning: Use of undefined constant mysqli - assumed 'mysqli' (this will throw an Error in a future version of PHP) in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 10 mysqli
tiago.f Posted July 16, 2018 at 02:55 PM Report #611342 Posted July 16, 2018 at 02:55 PM Ainda na mesma linha (como diz o erro) tens or die(mysqli); O que é este mysqli? Se for uma variável devolveria ser $mysqli, se for uma string deveria ser “mysqli”.... de qq modo isso é um warning e não um erro pelo que não será a causa do teu problema (que não percebi ainda qual é) 🙂
Hugo1337 Posted July 16, 2018 at 03:15 PM Author Report #611344 Posted July 16, 2018 at 03:15 PM O meu problema é que não deveria cair numa janela mostrando esses avisos, e sim após eu fazer o login cair numa pagina dizendo que o login foi bem sucedido ou que a senha está incorreta, o que acontece se removo o "or die(mysqli)": Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 10 conexao realizada com sucesso Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 21 Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 23 login e/ou senha invalidos volte e tente novamente Se eu substituir por or die(mysqli_error()); Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 10 Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp64\www\PHP_Fundamentos\verifica.php on line 10
tiago.f Posted July 16, 2018 at 03:24 PM Report #611345 Posted July 16, 2018 at 03:24 PM Continuas portanto com o erro inicial na linha 10 que dizias já estar resolvido. Ve a documentação das funções mysqli_select_db e mysqli_error porque não as estás a usar bem. (Faltam-te parâmetros ou estás a troca-los) Assim que as usares da forma correcta, esses warnings desaparecerão. Finalmente onde tens if ($row == "") { // se a consulta retornar vazio da erro Estando a usar mysqli_fetch_array não me parece que a resposta alguma vez seja uma string vazia (“”) - ou será um array ou será null. (Mais uma vez, vê a documentação) boa sorte!
toarelli Posted July 16, 2018 at 03:27 PM Report #611346 Posted July 16, 2018 at 03:27 PM Amigo Tiago algumas formas de como pode fazer a conexão com o Banco de Dados. <?php //DB configuração Constants define('_HOST_NAME_', 'localhost'); define('_USER_NAME_', 'root'); define('_DB_PASSWORD', ''); define('_DATABASE_NAME_', '_bancoDados_'); //PDO Conexão com o Banco de Dados try { $conexao = new PDO('mysql:host='._HOST_NAME_.';dbname='._DATABASE_NAME_, _USER_NAME_, _DB_PASSWORD); $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $error_conecta) { echo 'ERROR: ' . $error_conecta->getMessage(); } ?> <?php define('HOST','localhost'); define('DB','_bancoDados_'); define('USER','root'); define('PASS',''); $conexao = 'mysql:host='.HOST.'; dbname='.DB.';charset=utf8'; try{ $conecta = new PDO($conexao, USER, PASS); $conecta->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Mensagem de sucesso //echo 'Conectado com Sucesso!'; } catch(PDOexception $error_conecta) { echo htmlentities('Erro ao conectar, favor informe no e-mail: contato@contato.com.br '.$error_conecta->getMessage()); } ?> Espero ter ajudado. Saudações
tiago.f Posted July 16, 2018 at 03:33 PM Report #611347 Posted July 16, 2018 at 03:33 PM Não querendo falar pelo Hugo mas acho que apenas vai confundir já que estes exemplos são usando PDO e o Hugo estava usar Mysqli. Em nada estes exemplos ajudam a perceber o que está mal com o código dele, apenas mostram uma alternativa ( e existem muuuitas outras para ligar a uma bd MySQL). Ao Hugo sugiro ler a documentação. Alguém teve muito trabalho a escrevê-la e está lá tudo o que ele precisa para resolver os problemas que o código dele tem.
Hugo1337 Posted July 16, 2018 at 04:37 PM Author Report #611349 Posted July 16, 2018 at 04:37 PM Bom... felizmente consegui resolver o problema estava no verifica.php linha 16 $selecao = mysqli_query($conexao, "SELECT * FROM CADASTRO WHERE LOGIN = '$login' and senha = '$senha'"); faltou o $conexao 1 Report
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now