Php oop + $_POST

11 respostas
R

Boa noite pessoal, estou estudando php e optei por usar programação orientada a objetos, porém estou com um problema que eu não consegui resolver e até o momento não encontrei nada referente a isso no google.

Eu estou montando uma página para receber os dados de um formulário e enviar uma auto resposta para o usuário.
Na programação estruturada eu uso o seguinte código para receber o conteúdo:

$emailEnviar = "[email removido]"; $nome = $_POST["nome"]; $email = $_POST["email"]; $assunto = $_POST["assunto"]; $mensagem = $_POST["mensagem"];

Até aqui sem problemas, funciona tudo, porém ao tentar colocar esse mesmo código dentro de uma class, o Aptana indica que há um erro de sintax na linha 5 e 6, porém eu não sei como resolver:

<?php class Enviar{ private $emailEnviar = "[email removido]"; private $nome = $_POST["nome"]; private $email = $_POST["email"]; private $assunto = $_POST["assunto"]; private $mensagem = $_POST["mensagem"]; }

Desde já obrigado

11 Respostas

perdeu

não é melhor fazer uns get/set do q atribuir diretamente valor as propriedades?

drsmachado
R

Vocês tem algum exemplo de como eu posso estar usando o get/set para receber os valores do método $_POST e atribuir esses valores aos meus atributos?

Em java eu sei, porém no php eu estou apanhando um pouco.

perdeu

é a mesma coisa

<?php
class Pessoa{
	private $nome;
	private $idade;
	/**
	 * @return the $nome
	 */
	public function getNome() {
		return $this->nome;
	}

	/**
	 * @return the $idade
	 */
	public function getIdade() {
		return $this->idade;
	}

	/**
	 * @param field_type $nome
	 */
	public function setNome($nome) {
		$this->nome = $nome;
	}

	/**
	 * @param field_type $idade
	 */
	public function setIdade($idade) {
		$this->idade = $idade;
	}


}
$pessoa = new Pessoa();

$pessoa->setNome($_POST['nome']);
$pessoa->setIdade($_POST['idade']);

ou faz os set’s no contrutor.

R

Pessoal, obrigado pela ajuda até agora, eu já consegui resolver parte do problema, já consegui pegar os dados do form perfeitamente, porém na hora de mandar o email da erro, vocês podem dar uma olhada e ver se acham algum erro?

Obs: quando eu uso programação estruturada funciona certinho.

<?php
class Contato{
	private $emailEnviar = '[email removido]';
	private $nome;
	private $email;
	private $assunto;
	private $mensagem;
	
	private $ip;
	private $data;
	private $hora;
	
	public function __construct($nome, $email, $assunto, $mensagem, $ip, $data, $hora){
		$this->nome = $nome;
		$this->email = $email;
		$this->assunto = $assunto;
		$this->mensagem = $mensagem;
		
		$this->ip = $ip;
		$this->data = $data;
		$this->hora = $hora;
	}		
}
	//Recebendo os dados do formulário
	$dados = new Contato($_POST['nome'], $_POST['email'], $_POST['assunto'], $_POST['mensagem'], $_SERVER['REMOTE_ADDR'], date('d/m/y'), date('H:i'));
	
	//Função para enviar o email
	mail('$dados->getEmailEnviar()','$dados->getAssunto()','$dados->getMensagem()','$dados->getEmail()');	
	
	//Conferindo valor das variaveis
	//echo $dados->getNome().'<br />'.$dados->getEmailEnviar().'<br />'.$dados->getAssunto().'<br />'.$dados->getMensagem().'<br />'.$dados->getEmail();
	
?>
perdeu
mail('$dados->getEmailEnviar()','$dados->getAssunto()','$dados->getMensagem()','$dados->getEmail()');

tira as aspas dai

R

perdeu:
mail('$dados->getEmailEnviar()','$dados->getAssunto()','$dados->getMensagem()','$dados->getEmail()');

tira as aspas dai

Já tentei sem aspas e não funcionou, no outro código que eu fiz (estruturado) funcionou com as aspas, vou tentar fazer algumas mudanças aqui pra ver no que da.

perdeu

da alguma mensagem de erro?

R

Não da erro algum, apenas não envia.

Porém se eu uso o código abaixo ele funciona perfeitamente:

$emailEnviar	= "[email removido]";
$nome			= $_POST["nome"];
$email			= $_POST["email"];
$assunto		= $_POST["assunto"];
$mensagem		= $_POST["mensagem"];


mail ("$emailEnviar",                       //email aonde o php vai enviar os dados do form
      "$assunto",
      "Nome: $nome \nE-mail: $email\nMensagem: $mensagem",
      "From: $email"
     );

Vou dar uma olhada com mais calma hoje a noite, deve ser algo simples.

perdeu

vc tem o dominio?

R

Sim, estou testando diretamente no domínio. Vou dar uma fuçada no código agora pra ver se encontro o porque o email não é enviado quando uso OOP

Criado 4 de maio de 2012
Ultima resposta 8 de mai. de 2012
Respostas 11
Participantes 3