View Full Version : Backoffice teimoso


white_devil
14-03-2008, 20:53
boas ppl,

estou a desenvolver um backoffice que depois vai ser usado para gestao de todos os recursos existentes numa eskola. O backoffice esta praticamente feito. mas este esta a dar uns erros esquesitos com mensagens de erro que predefeni. por kausa disso nao posso avançar kom o meu projecto e estou escrevendo na esperança que alguem me possa ajudar
disponiblizo o codigo fonte php e a base de dados mysql (com a respectiva pass e login) num arquivo zip.

http://www.filefactory.com/file/b79859/


Agradeço desde ja a atençao e espero mesmo k alguem me ajude...

Abraço

slack_guy
14-03-2008, 21:06
dar uns erros esquesitos com mensagens de erro que predefeni.
Se as mensagens de erro foram criadas por ti, deves saber o que significam.

white_devil
14-03-2008, 23:32
sim sei... mas tipo: PROBLEMA A INSERIR DADOS NA TABELA, mas eu sei e professores meus dizem k o kodigo esta bem escrito e nao sabem pk faz akilo e é ai k preciso de ajuda...

slack_guy
14-03-2008, 23:46
vê os logs do Apache.

mascker
15-03-2008, 16:01
Boas,

A primeira coisa que tens que fazer é melhorar o teu debug.

Altera isto

if (mysql_query($sql))
{
$this->message = "Apagado com sucesso!";
}
else
{
$this->message = "Problema ao apagar registo!";
}
}para:

if (mysql_query($sql))
{
$this->message = "Apagado com sucesso!";
}
else
{
$this->message = "Problema ao apagar registo! ERRO: ".mysql_error();
}
}

Já vais ter uma informação mais precisa do erro.

Altera em todos os if de queries

Saudações

white_devil
20-04-2008, 20:10
Boas,

Fiz o que o mascker (http://www.techzonept.com/member.php?u=15936) sugeriu e de facto o backoffice diz que existe erro de origem sql.
Por exemplo:
- Na tabela clientes quando tento inserir um novo registo da agora o seguinte erro: Problema a tentar inserir o novo registo! Erro: You have an error in your SQL syntax near \'; \' at line 8

Resumindo: erro sql na linha 8 ou 7 com o caracter \ ---> pelo que acho, tem algo a haver com os comentarios que tenho junto com o codigo... alguem me pode dar mais uma ajudinha? apenas queria o backoffice a funcionar 5*, pois como criei o backoffice do zero, agora tou a ficar um pouco farto por causa destes erros misseraveis... :S

Obrigado pela atenção :D

shazEr
20-04-2008, 20:12
comentário é /* blabla */ e não \* ... *\

Parece ser isso.

mascker
20-04-2008, 20:16
Boas,

Mostra a query toda que estas a tentar inserir.

Suadações,

white_devil
20-04-2008, 20:28
ja estive a correr o codigo e nao enkontro o erro k ele diz k esta a enkontrar...

Conteudo do Ficheiro CLIENTES_CLASS.PHP:

<?
Class clientes
{
// variaveis que correspondem aos campos da tabela clientes
var $Cod_Cliente;
var $Nome_Contacto;
var $Departamento;
var $Telefone;
var $Extensao;
var $Email;
var $Notas;
// $message contendo o resultado da execucao das operacoes
var $message;

function clientes()
{
$this->Cod_Cliente = -1;
// Informacoes da coneccao do utilizador
$host = "localhost";
$user = "easypc";
$password = "sporting";
// Base de dados utilizada
$database_name = "Recursos";
// Coneccao mysql
$connexion = mysql_connect($host, $user, $password) or die (mysql_error());
// Seleccao da Base de Dados
$db = mysql_select_db($database_name, $connexion) or die(mysql_error());
}

// pesquisa na tabela
function getClientes($Cod_Cliente)
{
// procura
$sql = "SELECT * ";
$sql .= "FROM clientes ";
$sql .= "WHERE Cod_Cliente = '$Cod_Cliente';";
// Execucao
$rsql = mysql_query($sql);
// Resultado
if (mysql_num_rows($rsql) == 0)
{
// Caso de erro
$this->Cod_Cliente = -1;
}
else
{
// Caso de sucesso
$this->Cod_Cliente = mysql_result($rsql, 0, "Cod_Cliente");
$this->Nome_Contacto = mysql_result($rsql, 0, "Nome_Contacto");
$this->Departamento = mysql_result($rsql, 0, "Departamento");
$this->Telefone = mysql_result($rsql, 0, "Telefone");
$this->Extensao = mysql_result($rsql, 0, "Extensao");
$this->Email = mysql_result($rsql, 0, "Email");
$this->Notas = mysql_result($rsql, 0, "Notas");
}
}

// Afixar pelo critério especificado de todas as gravações

// A escrita da variável $whereCriterio pode ser como segue:
// criterio1 E (criterio2 OU criterio3)

// A escrita da variável $orderCriterio pode ser como se segue:
// criterio1, criterio2, criterio3

function getAllClientes($whereCriterio='', $orderCriterio='')
{
// procura
$sql = "SELECT * ";
$sql .= "FROM clientes ";
if($whereCriterio)
{
$sql .= "Where $whereCriterio ";
}
if($orderCriterio)
{
$sql .= "Order by $orderCriterio ";
}
/*if($criterio)
{
$sql .= "Where $criterio ";
}
$sql .= "Order by Cod_Cliente";*/
// Execucao
$rsql = mysql_query($sql);
// Resultado
if (mysql_num_rows($rsql) == 0)
{
// Caso de erro
$this->Cod_Cliente = -1;
}
else
{
// Caso de sucesso
$ret = array();
while($line=mysql_fetch_object($rsql))
{
$ret[] = $line;
}
return $ret;
}

}

// Novo Registo
function setClientes()
{
// procura
$sql = "INSERT INTO clientes (`Nome_Contacto`, `Departamento`, `Telefone`, `Extensao`, `Email`, `Notas`, `Cod_Cliente`) ";
$sql .= "VALUES (
'".$this->formatData($this->Nome_Contacto)."',
'".$this->formatData($this->Departamento)."',
'".$this->formatData($this->Telefone)."',
'".$this->formatData($this->Extensao)."',
'".$this->formatData($this->Email)."',
'".$this->formatData($this->Notas)."',
'".$this->getNewId()."'); ";
// Execucao e resultado
if (mysql_query($sql))
{
$this->message = "Novo registo inserido com sucesso!";
}
else
{
$this->message = "Problema a tentar inserir o novo registo! Erro: ".mysql_error();
}
}

// Alteracao de registos
function updateClientes($Cod_Cliente)
{
$sql = "UPDATE clientes SET ";
$sql .= "`Nome_Contacto` = '".$this->formatData($this->Nome_Contacto)."', ";
$sql .= "`Departamento` = '".$this->formatData($this->Departamento)."', ";
$sql .= "`Telefone` = '".$this->formatData($this->Telefone)."', ";
$sql .= "`Extensao` = '".$this->formatData($this->Extensao)."', ";
$sql .= "`Email` = '".$this->formatData($this->Email)."', ";
$sql .= "`Notas` = '".$this->formatData($this->Notas)."', ";
$sql .= "`Cod_Cliente` = '$Cod_Cliente' ";
$sql .= "WHERE `Cod_Cliente` = '$Cod_Cliente';";
// Execucao e resultado
if(mysql_query($sql))
{
$this->message = "Alteracao efectuada com sucesso!";
}
else
{
$this->message = "Problema com a alteracao de registo! Erro: ".mysql_error();
}
}

// Apagar registos
function deleteClientes($Cod_Cliente)
{
// procura
$sql = "DELETE FROM clientes WHERE Cod_Cliente = '$Cod_Cliente';";
// Execucao e resultado
if (mysql_query($sql))
{
$this->message = "Apagado com sucesso!";
}
else
{
$this->message = "Problema ao apagar registo! Erro: ".mysql_error();
}
}

// criacao de um novo ID para incrementacao
function getNewId()
{
$sql = mysql_query(" select max(Cod_Cliente) from clientes ");
$line = mysql_fetch_row($sql);
$newId = $line[0]+1;
return $newId;
}

// Formatacao dos dados para evitar os problemas possíveis que podem ser causados pelos caracteres interpretados por PHP, por Mysql ou por HTML (acentuados ou especiais)
function formatData($d)
{
return (htmlentities($d, ENT_QUOTES));
}
}
?>

Conteudo do ficheiro CLIENTES_SQL.PHP:

<?
require_once('clientes_class.php');
$newClientes = new clientes();

if(isset($_REQUEST['cmd_submit']))
{
// escolha da operacao
switch ($_REQUEST['action'])
{

// Novo Registo
case 'Novo Registo':
$newClientes->Nome_Contacto = $_REQUEST['txt_Nome_Contacto'];
$newClientes->Departamento = $_REQUEST['txt_Departamento'];
$newClientes->Telefone = $_REQUEST['txt_Telefone'];
$newClientes->Extensao = $_REQUEST['txt_Extensao'];
$newClientes->Email = $_REQUEST['txt_Email'];
$newClientes->Notas = $_REQUEST['txt_Notas'];
$newClientes->setClientes();
break;

// Caso alterar
case 'Alterar':
$newClientes->Nome_Contacto = $_REQUEST['txt_Nome_Contacto'];
$newClientes->Departamento = $_REQUEST['txt_Departamento'];
$newClientes->Telefone = $_REQUEST['txt_Telefone'];
$newClientes->Extensao = $_REQUEST['txt_Extensao'];
$newClientes->Email = $_REQUEST['txt_Email'];
$newClientes->Notas = $_REQUEST['txt_Notas'];
$newClientes->updateClientes($_REQUEST['txt_Cod_Cliente']);
break;

// Caso Apagar
case 'Apagar':
$newClientes->deleteClientes($_REQUEST['txt_Cod_Cliente']);
break;
}

// Redireccionamento + resultado da operacao
header('Location: '.$_REQUEST['redirect'].'?message='.$newClientes->message);
}
?>--------------------------------------------------------------------------------------------

Qual koisa tentem mesmo usar o backoffice e experimentem voces mesmo... LINK Actualizado :S

nao encontro mesmo o caracter que a mensagem diz que esta a causar o erro...

white_devil
09-06-2008, 14:30
Boas...

O Backoffice ja se encontra a funcionar a 100%. agora vem a parte em que eu nao entendo nada (admito) em que tenho que criar relacões entre as tabelas e fazer com que um cliente que faça uma marcação no meu site e que este verifique automaticamente se o recurso esta disponivel ou nao. tambem tenho que criar um sistema de login no site com diferentes tipos de direitos. exemplo: alguns utilizadores so poderão fazer marcações mas nao podem apagar nem editar as marcações.

Espero que me possam ajudar e agradeço desde ja a atenção.