Jump to content


Ricardo.SEP

Member Since 28/02/2007
Offline Last Active 07/01/2009, 15:26
-----

Topics I've Started

Servidor Ldap E Php

05/03/2008, 08:25

Pessoal, estou com um novo desafio pela frente que é integrar um login de um sistema feito em PHP c/ um servidor LDAP. A questão é a seguinte, temos um sistema e agora vamos programar nesse sistema um login que usa um servidor LDAP na rede para se logar. Caso o usuário esteja cadastrado no LDAP, é feito o login sem problemas.

Mas o problema é que nunca mexi com PHP+LDAP, somente programei em JAVA+LDAP. Assim, não tenho sei por onde começar para programar esse login.

Assim, se vocês tiverem algum site, tutorial ou saberem por onde eu começo a ver isso, eu agradeço.

Outra informação que talvez ajude é que o LDAP que temos é o AD (Active Directory), da Microsoft.

Valeu!

Não Consigo Tratar Um Erro De Query No Mysql

23/02/2008, 13:44

Olá pessoal,

Estou desenvovendo um sisteminha simples em PHP e estou tendo uma dificuldade em tratar um erro em especial.

Bom, eu tenho uma classe DAO onde efetua uma busca por ID. Assim sendo, essa busca somente pode retornar 1 registro ou nenhum caso não encontre esse registro. O problema é que eu consigo efetuar a busca quando existem registros e ocorre um erro quando tento fazer uma busca pelo registro que não existe. Para ficar mais fácil o entendimento de vocês segue os códigos.

JogoDAO.php
Essa classe é o DAO da classe jogo. Contém as instruções CRUD e também irá ter diferentes tipos de buscas. Está nessa classe busca por ID.
<?php

require("conn.php");

class jogoDAO {

	public function inserirJogo(Jogo $jogo) {
		...
	}

	public function updateJogo(Jogo $jogo, $idjogo) {
		...
	}

	public function deleteJogo($id_jogo) {
		...
	}

	public function getJogosByID($id_jogo) {
		//Abrindo conexão
		$conn = Conn::AbrirConn();

		$sql = "SELECT * FROM jogos WHERE id_jogo = $id_jogo";

		$result = mysql_query($sql, $conn);

		//Criando o objeto jogo
		while($row = mysql_fetch_array($result)) {
			$Jogo = new Jogo();
			$Jogo->setIdJogo($row["id_jogo"]);
			$Jogo->setTimeCasa($row["time_casa"]);
			$Jogo->setTimeVisitante($row["time_visitante"]);
			$Jogo->setPlacarCasa($row["placar_casa"]);
			$Jogo->setPlacarVisitante($row["placar_visitante"]);
			$Jogo->setDataHoraJogo($row["datahora_jogo"]);
			$Jogo->setNarrador($row["narrador"]);
			$Jogo->setCidade($row["cidade"]);
			$Jogo->setEstadio($row["estadio"]);
			$Jogo->setEstado($row["estado"]);
			$Jogo->setRodada($row["rodada"]);
			$Jogo->setCampeonato($row["campeonato"]);
		}

		return $Jogo;
	}
}

jogoDAO_teste.php
Nesse arquivo fica os testes que eu faço com o DAO.
<?php
/**
 * Teste consulta por ID
 */
 require("../pojo/jogo.php");
 require("../dao/jogoDAO.php");

 $JogoDAO = new JogoDAO();
 $jogo = $JogoDAO->getJogosByID(1);

 echo("ID do Jogo: " . $jogo->getIdJogo() . "<br>");
 echo("Mandante: " . $jogo->getTimeCasa() . "<br>");
 echo("Visitante: " . $jogo->getTimeVisitante() . "<br>");
 echo("Placar Casa: " . $jogo->getPlacarCasa() . "<br>");
 echo("Placar Visitante: " . $jogo->getPlacarVisitante() . "<br>");
 echo("Data Hora: " . $jogo->getDataHoraJogo() . "<br>");
 echo("Narrador: " . $jogo->getNarrador() . "<br>");
 echo("Estádio: " . $jogo->getEstadio() . "<br>");
 echo("Cidade: " . $jogo->getCidade() . "<br>");
 echo("Estado: " . $jogo->getEstado() . "<br>");
 echo("Rodada: " . $jogo->getRodada() . "<br>");
 echo("Campeonato: " . $jogo->getCampeonato() . "<br>");
/**
 * Fim dos testes de consulta
 */
?>

Explicando mais uma vez o problema. No meu teste do DAO (postado logo acima) se eu coloco o ID como 3 (em $jogo = $JogoDAO->getJogosByID(1);) e esse ID existe no banco, tudo funciona perfeito. Uma beleza, porém se eu coloco um ID que não existe no banco ocorre um erro que eu gostaria de tratar. A mensagem de erro que aparece é essa:

Fatal error: Call to a member function getIdJogo() on a non-object in C:\testes\jogoDAO_teste.php on line 92


Gostaria de tratar esse erro para exibir uma mensagem mais amigável.
A linha 92 é essa: $jogo = $JogoDAO->getJogosByID(1);

Se tiverem dúvidas com relação ao meu problema, podem perguntar.

Grato pela ajuda.

IPB Skin By Virteq