Jump to content

Recommended Posts

Posted

Boas malta tenho este código feito para verificar se o utilziador está ou não registado na base de dados, mas este código da-me erro ao utilizar alguem me pode ajudar ? dá erro na parte do  "mysql_num_rows()" e na parte do "  $result = "SELECT * FROM `utilizadores` WHERE `id` = '$login' AND `pass`= '$pass'";"

o código é este:

<?php
            session_start();     

                    $login = $_POST['login'];

                    $pass = $_POST['pass'];

                    include ('conexao.php');

                    // A variavel $result pega as varias $login e $senha, faz uma
                    $result = "SELECT * FROM `utilizadores` WHERE `id` = '$login' AND `pass`= '$pass'";

                    if(mysql_num_rows($result) > 0 )
                    {
                            $_SESSION['login'] = $login;
                            $_SESSION['pass'] = $pass;
                            header('location:site.php');
                    }
                    else{
                            unset ($_SESSION['login']);
                            unset ($_SESSION['pass']);
                            header('location:index.php');
                    }
?>

 Ajudem por favor 😉

Posted

Sem conhecer a versão do PHP que está a utilizar o procedimento mysql_num_rows está DEPRECATED, sendo inclusive removida da versão 7 do PHP.

Por isso é aconselhável mudar para o mysqli ou o pdo.  Ver: https://www.php.net/mysql_num_rows

Sem mais indicações de qual será o erro, se dá erro na query é mornal que vá dar erro na condição do mysql_num_rows. Pelo que convém investigar a query, pode retirar o sinal ` que delimita os nomes dos campos porque não são necessários, ex. `id` e em seguida em vez de passar as variáveis, atribua manualmente o valor à mesmas, por exemplo id='1234' . Se a query funcionar com este procedimento significa que o erro é na passagem dos valores das variáveis.

Se tiver instalado o phpmyadmin ou outro gestor da base de dados, tente correr a query no gestor e verificar se ocorrem erros e verifique na query se o nome dos campos estão presentes na base de dados e se têm o mesmo nome.

Não se esqueça de verificar se eventualmente a conexão à base de dados se está a fazer correctamente.

  • Vote 1
Posted
10 horas atrás, JoseDroid disse:

Não consigo entender o erro...

Sem a indicação clara do erro torna-se difícil ajudar. Vá ao modo programador ou ferramentas de programação do seu browser, normalmente tecla F12, e no modulo Consola ou Rede tente ver se dá a indicação de qual o erro.

Caso contrário terá de ir por tentativa erro, pode começar por retirar a cláusula Where da query e ver o resultado, se funcionou o problema está na referida cláusula, depois retire o AND e a pass e veja o que acontece, o problema pode estar aí.

Teste o seguinte script, com as devidas alterações para o seu código, para verificar se a conexão à base de dados está a ser bem feita.

<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * FROM person";
$result = mysql_query($sql,$con);
echo mysql_num_rows($result);
mysql_close($con);
?>

 Tente também utilizar o phpmyadim ou outro sistema para testar a query, abra o modo SQL, e copie a query SELECT a partir do seu código para o referido modo e retire os delimitadores " " e teste e altere até obter resultados, depois copia a query para o seu código. Em principio a query estará a funcionar, se não tiver nenhum resultado tal significa erro na conexão  ou n instrução do mysql_num_rows

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.