Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
rexmage

LOGIN PHP @ ODBC

Recommended Posts

rexmage

Boas pessoal, tou a desenvolver um projecto para a universidade, nada de muito complexo mas o servidor da escola tem so a possibilidade de ligar ao  ORACLE ou ao ACCESS. Optei por access e então o que se passa é o seguinte:

Tenho um site que desenvolvi eu proprio mas ligado ao sql e quero usar access mas para isso tenho liga-lo ao site e isso ja ta a funcionar.

O problema é que ssempre que peço para ele fazer uma consulta na bd pra confirmar o user ele da sempre "login errado". Ou seja resumindo ele connecta e ta tudo a funcionar mas não compreendo o que falhei para ele nao reconhecer o user e iniciar a sessão.

Vou aki por o codigo que fiz:

Login.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt">
    <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>Painel de administração</title>
            <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
	<form id="login" name="login" method="post" action="checkuser.php">
	  	<table class="tabela_login">
			<tr>
				<td><label class="textlogin">Utilizador:</label></td>
				<td><input size="40" type="text" name="user" /></td>
			</tr>
			  <tr>
				<td><label class="textlogin">Palavra-chave:</label></td>
				<td><input size="40" type="password" name="senha" /></td>
			  </tr>
			  <tr>
				<td colspan="2">
					<div  class="textlogin">
						  Insira o seu utilizador e a usa palavra-chave! 
						  <input type="submit" name="submit" id="submit" value="Enviar" />
					</div>
				</td>
			  </tr>
		</table>
	</form>
</body>
</html>


<?php
// Receber os dados do user
	$login = $_POST['user'];
	$senha = $_POST['senha'];

include ('connect.php');

//criar comando que faz a pesquisa pela BD
	$sql = "SELECT * FROM utilizador WHERE user = '$login' AND pass = '$senha'";

//Executar query
	$rs = odbc_exec($conn, $sql);

//Devolve o nº de linhas que tem
	$num = odbc_num_rows($rs);


//Verificar se existe mais do que zero ou seja, pelo menos uma linha se sim executa.
	if($num > 0)
		{

			//Retorna os dados da bd e cria vars
				$rst = odbc_fetch_array($rs);
				$id = $rst["id"];
				$user 	= $rst["user"];

			//Inicia a sessão 
				session_start();

			//Regista os dados do user na sessão		
				$_SESSION["id"] 	= $id;
				$_SESSION["user"] 	= $user;

			//Encerra a ligação com a bd
				odbc_close($conn);

			//Redireciona para a pagina pretendida
				header("Location:anuncios.php");
				}else{

			//Encerra a ligação com a bd	
				odbc_close($conn);

			//Caso não exista linhas da alerta
					echo "<b> O utilizador ou palavra-passe errados!</b>";		
					echo "<meta http-equiv='refresh' content='3;URL=login.php'>";

		} ?>

Não consigo compreender o que falhei :s se alguem me souber explicar agradecia...

eu tenho outros ficheiros de front office que estao a funcionar perfeitamente porque nao teem login. Agora este ficheiro nao ta a funcionar :S e nao tou a compreender o porquê :S


<?PHP echo "Bo0m"; ?>

Share this post


Link to post
Share on other sites
yyajsayy

Já verificas-te se o variável $num toma um valor?

Caso não consigas seguir essa filosofia tenta algo assim:


                //criar comando que faz a pesquisa pela BD    vai-te retornar 1 se o registo for valido
                $sql = "SELECT count(id_utilizador)  FROM utilizador WHERE user = '$login' AND pass = '$senha'";
        
                //Executar query
                $rs = odbc_exec($conn, $sql);
        
         
              $num=odbc_fetch_array($rs);


              $id=$num['id_utilizador'];  
              //ou $id=$num[0];

              if($id >0) {

             //executas todos os passos



"If it don't work the first time, rename it to version 1.0."

http://seguranca-informatica.pt

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×

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.