1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Backoffice teimoso

Discussão em 'Web Development' iniciada por white_devil, 14 de Março de 2008. (Respostas: 9; Visualizações: 1140)

  1. 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
     
    Última edição: 20 de Abril de 2008
  2. slack_guy

    slack_guy Power Member

    Se as mensagens de erro foram criadas por ti, deves saber o que significam.
     
  3. 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...
     
  4. slack_guy

    slack_guy Power Member

    vê os logs do Apache.
     
  5. mascker

    mascker Power Member

    Boas,

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

    Altera isto

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

    PHP:
    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
     
  6. Boas,

    Fiz o que o mascker 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
     
  7. SHZR

    SHZR Power Member

    comentário é /* blabla */ e não \* ... *\

    Parece ser isso.
     
  8. mascker

    mascker Power Member

    Boas,

    Mostra a query toda que estas a tentar inserir.

    Suadações,
     
  9. ja estive a correr o codigo e nao enkontro o erro k ele diz k esta a enkontrar...

    Conteudo do Ficheiro CLIENTES_CLASS.PHP:

    Código:
    <?
    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...
     
    Última edição pelo moderador: 21 de Abril de 2008
  10. 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.
     

Partilhar esta Página