это моя первая попытка использования классов php, никогда не делала этого раньше, мне очень нравится этот процесс.php отправить класс электронной почты - первая попытка
Код может быть немного грязным, если у вас есть предложения, я буду очень признателен!
О проблеме, я пытаюсь echo "$asd->getData()"
и результат немного странно и я не могу объяснить результат:
Array ([0] => нома [1] => email [2] => telemovel [3] => loja [4] => assunto [5] => mensagem [6] => localidade [7] => nserie [nome] => holder [email] => ээээ [telemovel] => 913582837 [Лоха] => Braga [Assunto] => [сообщение] => [localidade] => [nserie] =>)
Я смотрю г для следующего результата:
Array ([нома] => MyName [электронная почта] => emailHotmail [telemovel] => cellphone_here [Лоха] => STORE_NAME [Assunto] => subject_here [сообщение] = > Message_here [localidade] => Местоположение [nserie] => SERIAL_NUMBER)
Почему число массива/ключи появляются?
<?php
class Email{
private $data;
function Email(){
$this->data=array();
}
public function setData($d){
$this->data = $d;
}
public function valida(){
$verifica = true;
foreach ($this->data as $campo) {
$this->data[$campo] = $_GET[$campo];
if(!isset($_GET[$campo]) || empty($_GET[$campo])){
$verifica=true;
}
}
return $verifica;
}
public function getData(){
print_r($this->data);
}
public function sendEmail($data){
$to = ($this->data['loja']=="braga") ? "[email protected]" : "[email protected]";
$subject = $this->data['assunto'];//$campos[4];
$nserie = ($this->data['nserie']) ? '\r\n nº de série:'.$this->data['nserie'] : "";
$localidade = ($this->data['localidade']) ? '\r\n Localidade:'.$this->data['localidade'] : "";
$messages = $this->data['mensagem'];//$campos[5];
$message = $messages.$nserie.$localidade;
$message = htmlspecialchars_decode($message,ENT_QUOTES);//optional - I use encoding to POST data
$name = $this->data['nome'];
$from = $this->data['email'];//$campos[1];
$headers = "From:".$name." <".$from.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit";
return mail($to, "=?utf-8?B?".base64_encode($subject)."?=", $message, $headers);
}
}
$asd = new Email();
$campos = array('nome','email','telemovel','loja','assunto','mensagem','localidade','nserie');
$asd->setData($campos);
$asd->sendEmail($data);
echo ($asd->valida($data)) ? "sent<br/>" : "not sent<br/>";
echo "<br/>".$asd->getData()."<br/>";
?>