Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

rexmage

LOGIN PHP @ ODBC

Mensagens Recomendadas

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"; ?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.