edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Alguém poderia me ajudar, estou tentando criar um login usuário e senha. Notice: Undefined index: username in C:\siteweb\login.php on line 9Notice: Undefined index: senha in C:\siteweb\login.php on line 10Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\siteweb\login.php on line 15 Usuário não encontrado! Voltar Warning: mysql_close() expects parameter 1 to be resource, object given in C:\siteweb\login.php on line 40 Codigo: index.html <html> <body> <form method="POST" action="login.php"> <p align="center">Nome de usuário: <input type="text" name="username" size="10"></p> <p align="center">Senha: <input type="password" name="senha" size="10"></p> <p align="center"><input type="submit" value="Enviar" name="enviar"></p> </form> </body> </html> login.php <?php // obtém os valores digitados $username = $_POST["username"]; $senha = $_POST["senha"]; // acesso ao banco de dados include "conecta_mysqli.inc"; $resultado = mysql_query("SELECT * FROM usuarios where username='$username'"); $linhas = mysql_num_rows ($resultado); if($linhas==0) // testa se a consulta retornou algum registro { echo "<html><body>"; echo "<p align=\"center\">Usuário não encontrado!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else { if ($senha != mysql_result($resultado, 0, "senha")) // confere senha { echo "<html><body>"; echo "<p align=\"center\">A senha está incorreta!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else // usuário e senha corretos. Vamos criar os cookies { setcookie("nome_usuario", $username); setcookie("senha_usuario", $senha); // direciona para a página inicial dos usuários cadastrados header ("Location: pagina_inicial.php"); } } mysql_close($conexao); ?> conecta_mysqli.inc <?php $conexao = mysqli_connect ("localhost", "root", ""); mysqli_select_db ($conexao, "bdusuarios"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Rafa Jaques 9 Denunciar post Postado Janeiro 29, 2016 Estranho. O seu erro está dizendo que os valores não existem. Tenta dar um var_dump($_POST) na sua página login.php e vê o que aparece. Esse comando vai mostrar tudo que está vindo do formulário. Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Retornou com erro. Parse error: syntax error, unexpected '$username' (T_VARIABLE) in C:\siteweb\login.php on line 5 Compartilhar este post Link para o post Compartilhar em outros sites
Rafa Jaques 9 Denunciar post Postado Janeiro 29, 2016 Provavelmente você esqueceu de colocar ; depois do comando novo que adicionou... Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Foi... array(3) { ["username"]=> string(0) "" ["senha"]=> string(0) "" ["enviar"]=> string(6) "Enviar" }Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\siteweb\login.php on line 11 Usuário não encontrado! Voltar Warning: mysql_close() expects parameter 1 to be resource, object given in C:\siteweb\login.php on line 36 Compartilhar este post Link para o post Compartilhar em outros sites
Rafa Jaques 9 Denunciar post Postado Janeiro 29, 2016 Os campos estão vazios. Você está preenchendo algo no formulário antes de enviar? O erro do MySQL é porque nenhum valor está sendo passado, provavelmente. Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 mesmo assim array(3) { ["username"]=> string(3) "edi" ["senha"]=> string(2) "22" ["enviar"]=> string(6) "Enviar" }Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\siteweb\login.php on line 11 Usuário não encontrado! Voltar Warning: mysql_close() expects parameter 1 to be resource, object given in C:\siteweb\login.php on line 36 Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 29, 2016 Esses erros estão todos descritos neste artigo, mais precisamente aqui e aqui (é outra mensagem de erro, mas a causa é a mesma) PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/ Compartilhar este post Link para o post Compartilhar em outros sites
Rafa Jaques 9 Denunciar post Postado Janeiro 29, 2016 Também a maneira como você está adicionando o usuário na consulta é arriscada, pois pode ocorrer SQL Injection. Prefira filtrar as variáveis antes de adicioná-las na consulta. Filtrando e validando dados no PHP com filter_var() Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Tenho pouco conhecimento em PHP. Modifiquei o codigo. Passo para este erro. array(3) { ["username"]=> string(2) "ee" ["senha"]=> string(2) "sa" ["enviar"]=> string(6) "Enviar" }Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\siteweb\login.php on line 11Query was empty <?php var_dump($_POST); // obtém os valores digitados $username = $_POST["username"]; $senha = $_POST["senha"]; // acesso ao banco de dados include "conecta_mysqli.inc"; $resultado = mysql_query("SELECT * FROM usuarios where username='$username'"); $linhas = mysql_num_rows ($resultado); // verificação de erro $exec = mysql_query( $resultado ) or die ( mysql_error() ); if($linhas==0) // testa se a consulta retornou algum registro { echo "<html><body>"; echo "<p align=\"center\">Usuário não encontrado!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else { if ($senha != mysql_result($resultado, 0, "senha")) // confere senha { echo "<html><body>"; echo "<p align=\"center\">A senha está incorreta!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else // usuário e senha corretos. Vamos criar os cookies { setcookie("nome_usuario", $username); setcookie("senha_usuario", $senha); // direciona para a página inicial dos usuários cadastrados header ("Location: pagina_inicial.php"); } } mysql_close($conexao); ?> Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 29, 2016 O parâmetro de mysql_query é a string SQL. Você está passando $resultado, que é o retorno de mysql_query. Aliás, não entendi por que você está tentando executar mysql_query duas vezes... Apenas faça isto: $resultado = mysql_query("SELECT * FROM usuarios where username='$username'") or exit(mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Estou pegando os exemplo do livro desenvolvendo websites com PHP, e está assim lá, mas alterei como vc passou e retornou com erro, pelo que vi é na base da dados. array(3) { ["username"]=> string(2) "ee" ["senha"]=> string(2) "sa" ["enviar"]=> string(6) "Enviar" } No database selected segue as alterações. <?php var_dump($_POST); // obtém os valores digitados $username = $_POST["username"]; $senha = $_POST["senha"]; // acesso ao banco de dados include "conecta_mysqli.inc"; $resultado = mysql_query("SELECT * FROM usuarios where username='$username'") or exit(mysql_error()); //$resultado = mysql_query("SELECT * FROM usuarios where username='$username'"); //$linhas = mysql_num_rows ($resultado); // verificação de erro $exec = mysql_query( $resultado ) or die ( mysql_error() ); if($linhas==0) // testa se a consulta retornou algum registro { echo "<html><body>"; echo "<p align=\"center\">Usuário não encontrado!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else { if ($senha != mysql_result($resultado, 0, "senha")) // confere senha { echo "<html><body>"; echo "<p align=\"center\">A senha está incorreta!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else // usuário e senha corretos. Vamos criar os cookies { setcookie("nome_usuario", $username); setcookie("senha_usuario", $senha); // direciona para a página inicial dos usuários cadastrados header ("Location: pagina_inicial.php"); } } mysql_close($conexao); ?> e a conexão com a base <?php $conexao = mysqli_connect ("localhost", "root", ""); mysqli_select_db ($conexao, "bdusuarios"); ?> Agradeço a atenção... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 29, 2016 Estou pegando os exemplo do livro desenvolvendo websites com PHP, e está assim lá, mas alterei como você passou e retornou com erro, pelo que vi é na base da dados. Se o livro diz pra usar funções mysql_*, você já está começando errado, usando material obsoleto. Pense bem se vale a pena continuar com esse livro. funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/ No database selected Diz que o banco de dados não foi selecionado Verifique se usou mysql_select_db e se a chamada gerou erro (pode usar mysql_error nessa linha também) Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Bem, tinha este livro guardado a muito tempo, que pena. Mas que começa de forma certa. Aterei a codigo com meu pouco conhecimento para mysqlI com o artigo. Esta com este erro agora. Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\siteweb\login.php on line 17 Segue o codigo. <?php $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'bdusuarios'; // conexão e seleção do banco de dados $con = mysqlI_connect($host, $user, $pass, $db); // executa a consulta $sql = "SELECT * FROM usuarios ORDER BY username"; $res = mysqli_query($con, $sql); $exec = mysqli_query( $res ) or die ( mysql_error() ); if($linhas==0) // testa se a consulta retornou algum registro LOCAL DO ERRO { echo "<html><body>"; echo "<p align=\"center\">Usuário não encontrado!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else { if ($senha != mysql_result($resultado, 0, "senha")) // confere senha { echo "<html><body>"; echo "<p align=\"center\">A senha está incorreta!</p>"; echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>"; echo "</body></html>"; } else // usuário e senha corretos. Vamos criar os cookies { setcookie("nome_usuario", $username); setcookie("senha_usuario", $senha); // direciona para a página inicial dos usuários cadastrados header ("Location: pagina_inicial.php"); } } mysqli_close($con); ?> Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 29, 2016 Tente interpretar as mensagens de erro. Elas geralmente te dizem qual é o problema Ali está escrito que mysqli_query exige 2 parâmetros, mas você só passou um. É necessário passar o link de conexão e a SQL a ser executada Veja este meu artigo sobre como migrar de MySQL para MySQLi Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Vou começa do 0. De novo, mais estudo, obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 29, 2016 Se vai começar do zero, recomendo começar com PDO em vez de MySQLi. Vai te dar mais fliexibilidade Veja http://rberaldo.com.br/pdo-mysql/ Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Obrigado pela dica. Você teria mas alguma e algum livro atualizado para estudo? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 29, 2016 Você teria mas alguma e algum livro atualizado para estudo? O meu Curso ULTIMATE PHP 2.0 foi atualizado no final de 2015, incluindo as novidades do PHP 7. Você pode começar lendo o Guia de Dicas e Fundamentos de PHP, que é gratuito Compartilhar este post Link para o post Compartilhar em outros sites
edilson_alvarenga 0 Denunciar post Postado Janeiro 29, 2016 Obrigado Compartilhar este post Link para o post Compartilhar em outros sites