Ir ao conteúdo

Posts recomendados

Postado

Pessoal, 

Comecei a aprender PHP, mas estou super perdida.

Preciso entregar um trabalho da faculdade na segunda feira. O trabalho consiste em pegar dados do formulário usando método POST e inserir no banco,

O codigo deve ter os arquivos PHP: banco, Cadastrar pessoa e classe pessoa.

Porém não insere os dados no banco e não dá nenhum erro.

Segue abaixo o codigo completo, se puderem me ajudar agradeço

<!DOCTYPE html>
<html>
    <head>
        <title>MAPA</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel= stylesheet href="estilo.css" type="text/css">
    </head>
    <body>
        <div class="topo">
            <h1 align="center">MAPA</h1>
            <h3 align="center">Material de Avaliação Prática de Aprendizagem</h3>
        </div> 
        
        <div class="corpo">
            <form method="POST" action="cadastrarPessoa.php">
                <p>    
                <fieldset>
                    <legend>Formulário de cadastro</legend>
                    <table>
                        <tr>
                            <td><label for="cpf">CPF:</label></td>
                            <td><input name="cpf" id="cpf" type="text" placeholder="Digite o CPF" style="width: 400px"/></td>
                        </tr>
                        <tr>
                            <td><label>Nome: </label></td>
                            <td><input name="nome" id="nome" type="text" placeholder="Digite o nome" style="width: 400px"/></td>
                        </tr>
                        
                        <tr>
                            <td><label>E-mail:</label></td>
                            <td><input name="email" id="email" type="text" placeholder="Digite o e-mail" style="width: 400px"/></td>
                        </tr>
                    </table>
                    
                    <p>
                        <input type="submit" value="Cadastrar"/>
                        <input type="reset" value="limpar">
                    </p>
                </fieldset>        
                </p>
            </form>
        </div>
        
        <div class="rodape">
            <h6>Desenvolvido por Jana Moura. 2016</h6>
        </div>
        
    </body>
</html>

-------- arquivo banco--------------------

<?php
            class Banco{
                
                //parametros de configuração de banco
                
                protected static $servidor = "localhost";
                protected static $usuario = "root";
                protected static $senha = "root";
                protected static $esquema = "mapa";
            
            //conexao com banco
                
                public function conectar(){
                    
                    $db = mysqli_connect(self:: $servidor, self:: $usuario, self:: $senha, self::$esquema);
                    echo ("<p>conectado</p>");
                    if(!$db){
                        die ('Não foi possivel conectar: '.  mysqli_error());
                    }  
                    return $db;
                    
                }// fim function conectar

            //desconexão com banco
                
                public function desconectar($db){
                    
                    mysqli_close($db);
                    
                    echo ("<p>Banco desconectado</p>");
                    
                }//fim function desconectar
                
            
            //SELECT
                
                public function selecionar($id){
                    
                    $sql = "SELECT * FROM  ".  get_class($this)." WHERE id = ". $id;
                    $db = $this ->conectar();
                    $res = mysqli_query($db, $sql);
                    
                    if (!res){
                        die ('Query inválida: '.  mysqli_error());
                    }
                    
                    $data = mysqli_fetch_object($res, get_class($this));
                    $this -> desconectar($db);
                    return $data;
                    
                }// fim function selecionar

                //INSERT
                
               public function salvar(){
                    
                    $campos = get_object_vars($this);
                    $sqlI = "INSERT INTO ".  get_class($this) . "(";
                    $sqlF = ") VALUES (";
                    foreach ($campos as $key => $value){
                        $sqlI .= $key .",";
                        if(!is_object($campos[$key])){
                            $sqlF .= "'" .$value. "',";
                        }else{
                            $sqlF .= "'" .$campos[$key] -> getId(). "',";
                        }                       
                    }//fim foreach
                    $sql = substr($sqlI, 0, strlen($sqlI)-1).substr($sqlF, 0, strlen($sqlF)-1). ")";
                    $db = $this ->conectar();
                    $res = mysqli_query($db, $sql);
                    if(!$res){
                    die ('Query inválida: '.mysqli.error($db));   
                    }
                    echo ("Inseriu");
                    $id = mysqli_insert_id($db);
                    $this ->desconectar($db);
                    return $id;
                    
                }//fim function salvar

            //DELETE
                
            public function deletar(){
                
                $sql = "DELETE FROM" .get_class($this) . "WHERE id= " .$this->getId();
                $db = $this ->conectar();
                $res = mysqli_query($db, $sql);
                $this ->desconectar($db);
                
            }// fim function deletar

            //UPDATE
                
            public function atualizar(){
                
                $campos = get_object_vars($this);
                $sql = "UPDATE" .get_class($this). "SET";
                
                foreach ($campos as $key => $value){
                    $sql .= $key. "= '$value',";
                }//fim foreach
                
                $sql = substr($sql, 0, strlen($sql)-1);
                $sql .= "WHERE id " .$this -> getId();
                $db = $this ->conectar();
                $res = mysqli_query($db, $sql);
                
                if (!res){
                    die ('Query inválida: '. mysqli_error());
                }
                $this ->desconectar($db);
                
            }// fim function atualizar
                
            //LISTAR
            
            public function listar(){
                
                $sql = "SELECT * FROM" .get_class($this);
                $db = $this ->conectar();
                $res = mysqli_query($db, $sql);
                $this ->desconectar($db);
                
                while($linha = mysqli_fetch_object($res, get_class($this))){
                    $linhas[] = $linha;
                }//fim while
                
                mysqli_free_result($res);
                return ($linhas);
                
            }
    
//fim function listar
            
            
            }//fim class banco

------- arquivo cadastrar pessoa-------------

<?php

include_once './classePessoa.php';
include_once './banco.php';
    class CadastrarPessoa extends ClassePessoa{
        
        private $id;
        public $cpf;
        public $nome;
        public $email;
        private $ClassePessoa;
    
        
        public function selecionar($id) {
            $data = parent::selecionar($id);
            $campos = get_object_vars($data);
            
            foreach ($campos as $key => $value) {
                $this ->$key = $data -> $key;
            }//fim foreach
        }//fim function selecionar
        
        public function salvar() {
            $this -> id = parent:: salvar();
                    
        }//fim functions salvar
        
        public function getId(){
            return $this -> id;
        }
    public function setClassePessoa() {
         if (!is_object($this->ClassePessoa)) {
            $classePessoa = New ClassePessoa();
            $classePessoa->selecinar($this->ClassePessoa);
            $this->ClassePessoa = $classePessoa;
        }
    }
    
    public function listar() {
        $this -> id=parent::listar();
        
    }
    
    
}//fim classe CadastrarPessoa
         
            
?>

-------------- arquivo ClassePessoa------------

<?php
include_once ('./banco.php');
include_once ('./cadastrarPessoa.php');
class ClassePessoa extends Banco {
    private $id;
    public $cpf;
    public $nome;
    public $email;
    //verificar se é isso mesmo    
    public function __construct() {
        if ($this->CadastrarPessoa != 0) {
            $this->setCadastrarPessoa();
        }
    }//fim construtor
    public function selecionar($id) {
        $data = parent::selecionar($id);
        $campos = get_object_vars($data);
        foreach ($campos as $key => $value) {
            $this->$key = $data->$key;
        }
        $this->setCadastrarPessoa();
    }//fim function selecionar
    public function salvar() {
        $this->id = parent::salvar();
    }//fim function salvar
    public function atualizar() {
        parent::atualizar();
    }//fim function atualizar
    public function getId() {
        return $this->id;
    }//fim function getId
    public function setCadastrarPessoa() {
        if (!is_object($this->cadastrarPessoa)) {
            $cadastrarPessoa = New CadastrarPessoa();
            $cadastrarPessoa->selecinar($this->CadastrarPessoa);
            $this->CadastrarPessoa = $cadastrarPessoa;
        }
    }//fim function setCadastrarPessoa
}//fim classePessoa
?>

 

Postado

Obrigada por responder

Agora insere registro no banco, mas não os dados.

o log (PHP_error_log) não gera nada

Segue o log do apache ()error_log, mas sem erro:

[Fri Mar 18 20:21:13.108094 2016] [ssl:warn] [pid 3640:tid 596] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Mar 18 20:21:13.273303 2016] [core:warn] [pid 3640:tid 596] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Fri Mar 18 20:21:13.608087 2016] [ssl:warn] [pid 3640:tid 596] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Mar 18 20:21:13.656652 2016] [mpm_winnt:notice] [pid 3640:tid 596] AH00455: Apache/2.4.18 (Win32) OpenSSL/1.0.2e PHP/7.0.2 configured -- resuming normal operations
[Fri Mar 18 20:21:13.656652 2016] [mpm_winnt:notice] [pid 3640:tid 596] AH00456: Apache Lounge VC14 Server built: Dec  9 2015 10:17:39
[Fri Mar 18 20:21:13.656652 2016] [core:notice] [pid 3640:tid 596] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Fri Mar 18 20:21:13.656652 2016] [mpm_winnt:notice] [pid 3640:tid 596] AH00418: Parent: Created child process 5620
[Fri Mar 18 20:21:17.137854 2016] [ssl:warn] [pid 5620:tid 544] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Mar 18 20:21:18.641053 2016] [ssl:warn] [pid 5620:tid 544] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Mar 18 20:21:18.708136 2016] [mpm_winnt:notice] [pid 5620:tid 544] AH00354: Child: Starting 150 worker threads.
 

 

 

 

Postado

Entendi, não tem erros, o código está incompleto. Você está enviando campos do formulário para 

cadastrarPessoa.php

porém o mesmo só tem funções e classes, você precisa chamar uma classe alimentando-a com os valores do formulário, caso o contrário o servidor irá processar nada, pois você não está chamando nenhuma função.

 

Você precisa alimentar as variáveis:

 

public $cpf = $_POST['cpf'];

e assim por diante.

 

e chamar pela classe

CadastrarPessoa

que aparentemente é o que irá inserir seu form no banco de dados. Porém como a mesma tem funções dentro, você deve escolher qual função chamar:

$obj = new CadastrarPessoa();
$obj->salvar();

não tenho muito tempo para resolver esse problema mas o norte é esse, alimentar a classe com os dados enviados do form e chamar a função que irá inserir tudo isso no db.

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...